问题标签 [weave]
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.
kubernetes - weave-net pods 处于挂起状态,调度程序日志出错
我正在尝试建立一个新的 kubernetes 集群,并面临使用 weave 作为网络解决方案的问题。Weave pod 处于挂起状态,并且 kubectl 命令行中没有可用的事件/日志。
作为在线课程的一部分,我正在尝试从头开始设置 kubernetes 集群。我已经设置了主节点——API 服务器、控制器管理器和调度程序启动并运行。以及运行 kubelets 和 kube-proxy 的工作节点。
节点状态:
NAME STATUS ROLES AGE VERSION
worker-1 NotReady <none> 25h v1.13.0
worker-2 NotReady <none> 9h v1.13.0
作为启用网络的下一步,我正在使用 weave。我已经在工作节点上安装并提取了 weave。
现在,当我尝试运行以下命令时:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
我看到 DaemonSet 正在初始化,但创建的 pod 继续处于“待定状态”。
NAME READY STATUS RESTARTS AGE
weave-net-ccrqs 0/2 Pending 0 73m
weave-net-vrm5f 0/2 Pending 0 73m
以下命令:
vagrant@master-1:~$ kubectl describe pods -n kube-system
不返回任何正在进行的事件。
从调度程序服务日志中,我可以看到记录了以下错误。
由于我对kubernetes还很陌生,如果我错过了添加相关信息,请原谅。将立即分享。需要帮助。
为调度程序添加了 kubeconfig:
添加调度器服务定义:
使用以下方式启动调度程序:
组件状态:
docker - Kubernetes:weave 在其中一个工作节点上选择了公共 IP
我有一个 2 master 和 2 worker kubernetes 集群。每个节点都有 192.168.5.X 范围内的私有 IP 和公共 IP。创建 weave 守护程序集后,weave pod 在一个节点上选择了正确的内部 IP,但在另一个节点上它选择了公共 IP。有什么方法可以指示 weave pod 选择节点上的私有 IP?
我通过在本地笔记本电脑上的 Virtual Box 上创建的虚拟机上手动执行所有操作来从头开始创建集群。我参考以下链接
https://github.com/mmumshad/kubernetes-the-hard-way
在工作节点上部署 weave pod 后,其中一个工作节点上的 weave pod 使用如下 NAT ip。
10.0.2.15 是 NAT IP,192.168.5.12 是内部 IP
kubernetes - Kubernetes 部署时 networkPlugin cni 无法设置 pod 问题
我正在尝试将我的示例 Spring Boot 微服务部署到 Kubernetes 集群中。我的每个节点都显示就绪状态。当我尝试部署时,我的 pod 只显示ContainerCreating
.
当我描述 pod 时,我会说 networkPlugin cni failed to set up pod and network unable to allocate IP address
.
我的pod describe
命令结果如下:
当我检查容器编织日志时,我得到如下所示,
当我运行命令 kubectl exec -n kube-system weave-net-fj9mm -c weave -- /home/weave/weave --local status ipam
时,我收到类似“来自服务器的错误(未找到):未找到豆荚“weave-net-fj9mm””的响应
我该如何解决这个问题?
docker - Kubernetes 使用 flannel 创建容器时卡在“ContainerCreating”状态
语境
我Docker
按照此说明安装在我的设备Ubuntu 18.04 LTS (Server)
上,Kubernetes
然后通过kubeadm
. 在初始化 ( kubeadm init --pod-network-cidr=10.10.10.10/24
) 并加入第二个节点后(我一开始有一个双节点集群),我无法让我的coredns以及后来应用的Web UI(仪表板)实际进入状态Running。
作为 pod 网络,我尝试了Flannel ( kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
) 和Weave Net - 没有任何改变。即使经过数小时的等待,它仍然显示状态ContainerCreating:
问题
为什么容器创建没有按预期工作,这可能是什么根本原因?最重要的是:我该如何解决这个问题?
编辑
总结一下我的回答,原因如下:
- 使用 Docker
cgroups
代替systemd
- 我没有
iptables
正确配置 - 我用错了
kubeadm init
,因为法兰绒标准 yaml--pod-network-cidr
需要10.244.0.0/16
kubernetes - Kubernetes网络分配范围
在 Kubernetes 中有没有办法或者有一个网络插件可以限制 IP 分配的范围。例如,我正在尝试使用 weave 并使用子网192.168.16.0/24
。我想将通过 Kubernetes 分配给 Pod 的 IP 限制在192.168.16.10
-的范围内30
。
但是,我的应用程序可能会根据要求使用其余 IP,即我的应用程序可以从中启动一个虚拟 IP 192.168.16.31
-50
但我需要一些机制来确保我指定的 IP 范围不会由 K8s 分配,并且我的应用程序可以使用它.
我需要这样的东西:https ://www.weave.works/docs/net/latest/tasks/ipam/configuring-weave/ 。
kubernetes - 应该在什么公制编织网上发出警报?
以下警报看起来是否正确,可以收到警报?我们应该在这些指标的哪些值上提高警惕以监控编织网的健康状况?
- WeaveNoFastDP weave_flows[5m] > 0
- WeaveIPAMUnreachable weave_ipam_unreachable_percentage > 0
- WeaveIPAMPendingAllocates weave_ipam_pending_allocates > 0
- WeavePendingClaims weave_ipam_pending_claims > 0
- WeaveConnecTerm weave_connection_terminations_total > 300
kubernetes - 将 kubernetes CNI 从 weave 切换到 calico
我最初用 weave 安装了一个kubeadm
v1.17 集群。我想把它改成使用印花布。但是,因为我最初没有安装集群
根据文档,但有一个简单的
我想知道我需要执行哪些步骤才能实现从编织到印花布的过渡?
kubernetes - 如何在 Kubernetes 上摆脱此错误“network: stat /var/lib/calico/nodename: no such file or directory”
我使用以下命令卸载了 calico:'kubectl delete -f calico.yaml'
并使用以下命令安装 weave:'export kubever=$(kubectl version | base64 | tr -d '\n')' 'kubectl apply -f " https://cloud.weave.works/k8s/net?k8s-version= $库贝弗"'
当我部署我的 pod 时,它们保持在“ContainerCreating”状态。当我检查 pod 日志时,我看到以下错误:
'networkPlugin cni 无法设置 pod "saccofrontend-d7444fd6d-998gf_default" 网络:stat /var/lib/calico/nodename:没有这样的文件或目录:检查 calico/node 容器是否正在运行并已挂载 /var/lib/印花布/'
我手动删除了这个文件。重新安装 docker 和 kubeadm 也没有帮助。仍然出现相同的错误。
请告知什么可能促使 kubelet 仍然使用 calico 作为 cni,即使我取消了它。
kubernetes - 来自 Kubernetes (K8S) 集群中的 pod 内部的“nslookup:读取:连接被拒绝”(DNS 问题)
问题
我在基于 Centos 7 的 AWS ec2 上自定义安装了具有 1 个主节点和 1 个节点的 k8s 集群。它使用 Core-DNS(pod 运行良好,日志中没有错误)调用时在节点 pod 内部,例如nslookup google.com
输出是nslookup: write to '10.96.0.10': Connection refused
;; connection timed out; no servers could be reached
例如,在 pod 内部 pingping 8.8.8.8
可以正常工作:
/etc/resolv.conf
在 pod 内,它看起来像:
此命令在节点本身上运行良好nslookup google.com
:
Kubelet 配置kubectl get configmap kubelet-config-1.17 -n kube-system -o yaml
返回
kube 命名空间中的 Podkubectl get pods -n kube-system
如下所示:
更新
如果我这样做,则从 podip route
返回:
来自大师:
从节点:
CoreDNS 配置图kubectl -n kube-system get configmap coredns -oyaml
是:
那么为什么nslookup google.com
不能在吊舱内工作?
kubernetes - 在新的 HA 集群上编织 CrashLoopBackOff
我按照以下指南使用 kubeadm 创建 HA 集群: https ://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/ https://medium.com/faun/configuring-ha- kubernetes-cluster-on-bare-metal-servers-with-kubeadm-1-2-1e79f0f7857b
我已经启动并运行了 ETCD 节点,APIserver 通过 HAproxy 和 keepalive 运行。和 1 个使用 weave-net 网络运行的主节点。
我使用这个子网
但是当我将第二个主节点加入集群时,创建的 weave pod 得到了 CrashLoopBackOff。
我用这一行运行 weave-net 插件:
我还发现 /etc/cni/net.d 在应用 weave conf 时不是由 kubelet 创建的。
主节点
豆荚
主节点中的 IP 路由
在第二个主节点上运行的 weave pod 的描述
日志文件抱怨超时,但那是因为没有网络在运行。
有什么意见或建议吗?
问候。