docker - kubernetes flannel 网络服务 CrashLoopBackOff
问题描述
我正在运行具有 HA 代理的多主(3 个主节点)的 kubernetes 集群,并且我在这个项目中使用外部 etcd 进行 ssl 生成我正在使用 cfssl(cloudflare)
我在每个主节点中创建 etcd 服务
[Unit]
Description=etcd
Documentation=https://github.com/coreos
[Service]
ExecStart=/usr/local/bin/etcd \
--name 192.168.1.21 \
--cert-file=/etc/etcd/kubernetes.pem \
--key-file=/etc/etcd/kubernetes-key.pem \
--peer-cert-file=/etc/etcd/kubernetes.pem \
--peer-key-file=/etc/etcd/kubernetes-key.pem \
--trusted-ca-file=/etc/etcd/ca.pem \
--peer-trusted-ca-file=/etc/etcd/ca.pem \
--peer-client-cert-auth \
--client-cert-auth \
--initial-advertise-peer-urls https://192.168.1.21:2380 \
--listen-peer-urls https://192.168.1.21:2380 \
--listen-client-urls https://192.168.1.21:2379,http://127.0.0.1:2379 \
--advertise-client-urls https://192.168.1.21:2379 \
--initial-cluster-token etcd-cluster-0 \
--initial-cluster 192.168.1.21=https://192.168.1.21:2380,192.168.1.22=https://192.168.1.22:2380,192.168.1.23=https://192.168.1.23:2380 \
--initial-cluster-state new \
--data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
并使用配置文件运行 kubeadm init
kubeadm init --config config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: stable
controlPlaneEndpoint: "192.168.1.20:6443"
etcd:
external:
endpoints:
- https://192.168.1.21:2379
- https://192.168.1.22:2379
- https://192.168.1.23:2379
caFile: /etc/etcd/ca.pem
certFile: /etc/etcd/kubernetes.pem
keyFile: /etc/etcd/kubernetes-key.pem
之后我的集群准备好了
kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master1 Ready master 25h v1.17.2 192.168.1.21 <none> Ubuntu 16.04.6 LTS 4.4.0-173-generic docker://19.3.5
master2 Ready master 25h v1.17.2 192.168.1.22 <none> Ubuntu 16.04.6 LTS 4.4.0-142-generic docker://19.3.5
master3 Ready master 25h v1.17.2 192.168.1.23 <none> Ubuntu 16.04.6 LTS 4.4.0-142-generic docker://19.3.5
worker1 Ready worker 25h v1.17.2 192.168.1.27 <none> Ubuntu 16.04.6 LTS 4.4.0-142-generic docker://19.3.5
worker2 Ready worker 25h v1.17.2 192.168.1.28 <none> Ubuntu 16.04.6 LTS 4.4.0-142-generic docker://19.3.5
worker3 Ready worker 25h v1.17.2 192.168.1.29 <none> Ubuntu 16.04.6 LTS 4.4.0-142-generic docker://19.3.5
之后我试图用命令应用法兰绒
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
现在我想看看我的问题并帮助我
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6955765f44-246cj 0/1 ContainerCreating 0 51m
kube-system coredns-6955765f44-xrwh4 0/1 ContainerCreating 0 24h
kube-system coredns-7f85fdfc6b-t7jdr 0/1 ContainerCreating 0 48m
kube-system kube-apiserver-master1 1/1 Running 0 25h
kube-system kube-apiserver-master2 1/1 Running 1 25h
kube-system kube-apiserver-master3 1/1 Running 0 25h
kube-system kube-controller-manager-master1 1/1 Running 0 56m
kube-system kube-controller-manager-master2 1/1 Running 0 25h
kube-system kube-controller-manager-master3 1/1 Running 0 25h
kube-system kube-flannel-ds-amd64-6j6lb 0/1 Error 285 25h
kube-system kube-flannel-ds-amd64-fdbxg 0/1 CrashLoopBackOff 14 25h
kube-system kube-flannel-ds-amd64-mjfjf 0/1 CrashLoopBackOff 286 25h
kube-system kube-flannel-ds-amd64-r46fk 0/1 CrashLoopBackOff 285 25h
kube-system kube-flannel-ds-amd64-t8tfg 0/1 CrashLoopBackOff 284 25h
kube-system kube-proxy-6h6k9 1/1 Running 0 25h
kube-system kube-proxy-cjgmv 1/1 Running 0 25h
kube-system kube-proxy-hblk8 1/1 Running 0 25h
kube-system kube-proxy-wdvc9 1/1 Running 0 25h
kube-system kube-proxy-z48zn 1/1 Running 0 25h
kube-system kube-scheduler-master1 1/1 Running 0 25h
kube-system kube-scheduler-master2 1/1 Running 0 25h
kube-system kube-scheduler-master3 1/1 Running 0 25h
解决方案
我明白了我应该在我的 config.yaml 中添加网络响铃的错误
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: stable
apiServerCertSANs:
- 192.168.1.20
controlPlaneEndpoint: "192.168.1.20:6443"
etcd:
external:
endpoints:
- https://192.168.1.21:2379
- https://192.168.1.22:2379
- https://192.168.1.23:2379
caFile: /etc/etcd/ca.pem
certFile: /etc/etcd/kubernetes.pem
keyFile: /etc/etcd/kubernetes-key.pem
networking:
podSubnet: 10.244.0.0/16
apiServerExtraArgs:
apiserver-count: "3"
推荐阅读
- python - 格式化字符串和数字的对齐方式
- google-apps-script - 如何在保持显示格式的同时通过电子邮件发送特定范围的单元格?
- highcharts - 如何使 highchart 蜘蛛图的标题空白消失?
- security - 用户保持变量不变的最佳方法是什么?
- python - 按多个规则排序
- xamarin - 选项卡栏标题和图标空间问题
- docker - Docker 容器的开发标签和运行时标签有什么区别?
- java - 如何从我的 Firebase DDBB 中的对象获取 ID/Key,知道该对象的所有其他数据?
- powerbi - 如何在 Reporting Server 中设置默认页面,以便用户每次打开报告文件时都可以使用指定的过滤器登陆特定页面?
- javascript - 如何在不按控制键的情况下从选择中获取多个选项?