问题标签 [kubelet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
deployment - kubelet 在初始部署后未注册,但需要重新启动
我有一个来自 kubelet 的奇怪行为,在集群启动后不久 kubelet 没有注册到 API 服务器。
有趣的是,如果我重新启动 kubelet 守护程序,它会正确注册并且一切都按预期工作,这让我相信这是一个同步问题?(我正在使用 coreos、云配置和 kubelet 配置为 systemd 单元)
在 Kubernetes 节点部署后不久,Kubelet 日志仅显示以下条目,仅此而已:
如果我重新启动 kubelet,我会看到预期的日志,并且它会按预期注册到 API 服务器。重启后的 kubelet 日志如下:
知道如何解决此类问题吗?
谢谢,戴维德
kubernetes - 测试 kubernetes api-server 时获得“未经授权”
我有 CoreOS alpha (1284.2.0) 的 Container Linux,我尝试在其上安装 kubernetes 1.5.2。
我注意到kube-proxy
pod 失败了,我进行了搜索,发现api-server
清单可能没有正确配置。
我使用https://coreos.com/kubernetes/docs/latest/configure-kubectl.htmlkubectl
上的文档在我的 mac pro 桌面上进行了配置
当我执行kubectl get nodes
我得到error: You must be logged in to the server (the server has asked for the client to provide credentials)
.
所以我尝试用 curl 进行测试。服务器的主机名是coreos-2.tux-in.com
.
这是我的kube-apiserver.yaml
:
这是我的kube-proxy.yaml
:
这是控制器的 kubeconfig 文件controler-kubeconfig.yaml
:
任何有关该问题的信息将不胜感激!
docker - Kubernetes Kubelet 无法访问 Docker
我有一个 5 节点 Kubernetes 集群,其中 1 个是主节点(使用 kubeadm 设置)。当我第一次部署主节点时,我还部署了 kubernetes 仪表板,因此它在同一台机器上运行。之后,我将其他节点加入了集群。
现在,当我使用 YAML 文件部署 pod 时,它保持在该ContainerCreating
状态。所以我描述了 pod 并看到了部署它的机器。我在机器上 SSH 并首先检查docker ps -a
我可以确定图像没有启动,甚至没有被拉取。所以我查看了 kubelet 日志(我没有复制所有内容,但这会给出一个很好的主意):
有很多权限问题。我不知道如何解决这个问题。我已将 root 和用户帐户添加到 docker 组以查看它是否修复它,但它没有。
更新
上面我做了一个kubelet logs
,这就是你收到 uid 消息的原因。当我执行时,sudo kubelet logs
我得到这些结果:
kubernetes - Kubernetes pod 未启动
我有一个有 5 个节点的 Kubernetes 集群。当我添加一个简单的 nginx pod 时,它将被安排到其中一个节点,但它不会启动。它甚至不会拉动图像。
这是 nginx.yaml 文件:
当我描述 pod 时,有一个事件:Successfully assigned busybox to up02
当我登录 up02 并检查是否有任何图像被拉出时,我发现它没有被拉出,所以我手动拉出它(我想也许它需要一些启动; ) )
pod 将始终处于容器创建状态。不仅是这个 pod,问题还在于我尝试添加的任何 pod。
机器上运行了一些 pod,它们是 Kubernetes 运行所必需的:
kubernetes - Kubernetes 入口 IP 设置为 docker0 ip
我正在尝试在没有云提供商的裸机上使用 kubernetes 入口资源。
我创建了一个入口资源:
但是,当我查看入口时,我得到了这个 IP:
该 IP 地址似乎与我所有 kubelet 节点上的 docker0 IP 地址相对应。
有没有办法设置这个IP?我读过的所有教程似乎都有这个 IP 是可路由的。
这是我的 nginx 控制器 yaml:
kubernetes - 当 kube-proxy 处于 iptables 模式时,无法从节点外部访问 Kubernetes 服务
我有一个在 CoreOS 上运行的单节点(master+node)Kubernetes 部署,kube-proxy 在 iptables 模式下运行,flannel 用于容器网络,没有 Calico。
kube-proxy.yaml
我创建了一个部署,然后使用 NodePort 类型的服务公开该部署。
我可以curl
从节点成功(环回和 eth0 IP):
但是,我不能curl
从节点外部。我已经尝试过节点网络外的客户端计算机(具有正确的防火墙规则)和节点专用网络内的计算机,网络的防火墙在两台计算机之间完全打开,但没有运气。
我相当有信心这是一个 iptables/kube-proxy 问题,因为如果我修改 kube-proxy 配置--proxy-mode=iptables
,--proxy-mode=userspace
我可以从两台外部机器访问。此外,如果我绕过 kubernetes 并运行 docker 容器,我对外部访问没有任何问题。
以下是当前的 iptables 规则:
我不确定要在规则中寻找什么...比我更有经验的人可以就故障排除提出一些建议吗?
kubernetes - 有时会在没有网络的情况下创建 pod,这会导致 pod 反复失败并出现 CrashLoopBackOff
有时,我会看到一个问题,即 Pod 将在没有网络连接的情况下启动。因此,pod 进入 CrashLoopBackOff 并且无法恢复。我能够让 pod 再次运行的唯一方法是运行 akubectl delete pod
并等待它重新安排。以下是由于此问题导致的活性探测失败的示例:
Liveness probe failed: Get http://172.20.78.9:9411/health: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
我还注意到,发生这种情况时,pod IP 没有 iptables 条目。当 pod 被删除并重新安排(并且处于工作状态)时,我有 iptables 条目。
如果我关闭容器中的 livenessprobe 并执行它,我确认它没有与集群或本地网络或互联网的网络连接。
想听听关于它可能是什么的任何建议,或者我可以研究什么以进一步解决这种情况。
当前运行:
Kubernetes 版本:
操作系统:
kubernetes - 启动法兰绒时出现 rkt 发现失败错误(Kubernetes 设置)
我们正在尝试按照官方分步文档在 3 个带有 coreos 的节点上设置 Kubernetes 集群 - https://coreos.com/kubernetes/docs/latest/deploy-master.html 服务器位于公司代理后面,并在中定义了代理服务两个都
以下被选中
和
运行 systemctl daemon-reload 和 systemctl start flannel 后,出现以下错误
我们尝试了不同的文档https://www.upcloud.com/support/deploy-kubernetes-coreos/,在启动 kubelet 时出现相同类型的错误。
似乎是公司代理背后的 rkt 和 quay 注册问题。让我们知道我们是否遗漏了什么或配置了错误。
kubernetes - hyperkube 不会从 /etc/kubernetes/manifests 启动任何清单
我在家里的电脑上安装了 CoreOS alpha (1325.1.0) 的 Container Linux。
我用 kubernetes 玩了几个月,但现在在重新安装 ContainerOS 并尝试使用我的 fork 在https://github.com/kfirufk/coreos-kubernetes安装 kubernetes 后,我无法正确安装 kubernetes。
我使用 hyperkube 图像v1.6.0-beta.0_coreos.0
。
问题是 hyperkube 似乎没有尝试从/etc/kubernetes/manifests
. 我将 kubelet 配置为与 rkt 一起运行。
当我journalctl -xef -u kubelet
重新启动 kubelet 后运行时,我得到以下输出:
我的 kubelet.service 内容(我尝试使用 --network-plugin=kubenet 和 cni,没有区别:
我的/var/lib/coreos-install/user_data
文件:
welp..我很迷茫。这是我第一次遇到这种问题。任何有关该问题的信息将不胜感激。
以防万一..这些是/etc/kubernetes/manifests
未执行的清单。rkt list --full
除了常规的 hyperkube 之外,没有显示任何类型的 pod 正在启动。
kube-apiserver.yaml:
kube-controller-manager.yaml:
kube-proxy.yaml:
kube-scheduler.yaml:
kubernetes - kube-dns 不断在 coreos 上使用 kubenetes 重新启动
我在https://github.com/kfirufk/coreos-kubernetes使用我的 coreos-kubernetes 安装脚本的分支,使用 hyperkube v1.5.5_coreos.0 在 Container Linux 上安装了 Kubernetes 。
我有两台 ContainerOS 机器。
- coreos-2.tux-in.com 解析为 192.168.1.2 作为控制器
- coreos-3.tux-in.com 解析为 192.168.1.3 as worker
kubectl get pods --all-namespaces
返回
所以我可以看到它kube-dns-782804071-h78rf
不断重新启动。
kubectl describe pod kube-dns-3675956729-r7hhf --namespace=kube-system
返回:
这表明kubedns-amd64:1.9
在Ready: false
这是我的kude-dns-de.yaml
文件:
这是我的kube-dns-svc.yaml
:
任何有关该问题的信息将不胜感激!
更新
rkt list --full 2> /dev/null | grep kubedns
显示:
journalctl -m _MACHINE_ID=744a45790849b1f5cb05d40f3734
提供:
我试图添加 - --proxy-mode=userspace
,/etc/kubernetes/manifests/kube-proxy.yaml
但结果是一样的。
kubectl get svc --all-namespaces
提供:
kubectl get cs
提供:
我kube-proxy.yaml
的内容如下:
这是我能找到的所有有价值的信息。有任何想法吗?:)
更新 2
在http://pastebin.com/2GApCj0niptables-save
控制器 ContainerOS 上的输出
更新 3
我在控制器节点上运行 curl
意味着它可以正确访问它,我没有添加足够的参数来授权它吗?
更新 4
感谢@jaxxstorm,我删除了印花布清单,更新了他们的 quay/cni 和 quay/node 版本并重新安装了它们。
现在 kubedns 不断重启,但我认为现在 calico 可以工作了。因为它第一次尝试在工作节点而不是控制器节点上安装 kubedns,而且当我rkt enter
安装 kubedns pod 并尝试安装时,wget https://10.3.0.1
我得到:
这清楚地表明存在某种反应。哪个好?
现在kubectl get pods --all-namespaces
显示:
所以.. 4/4 准备好了,但它一直在重新启动。
kubectl describe pod kube-dns-3675956729-ljz2w --namespace=kube-system
在http://pastebin.com/Z70U331G输出
所以它无法连接到http://10.2.47.19:8081/readiness,我猜这是kubedns的ip,因为它使用端口8081。不知道如何继续进一步调查这个问题。
感谢一切!