kube-flannel版本从v0.12.0升级到v0.15.1
flannelk8s
1、首先删除已安装的flannel
kubectl delete -f kube-flannel.yml
或者使用安装源的url删除
kubectl delete -f url路径+kube-flannel.yml
2、查看并删除的DaemonSet
kubectl get DaemonSet -n kube-system
kubectl delete DaemonSet kube-flannel-ds -n kube-system
3、查看k8s状态,都是running
kubectl get pod -n kube-system
4、确认kube-flannel.yml使用的镜像
cat kube-flannel.yml |grep image|uniq
image: quay.io/coreos/flannel:v0.15.1-amd64
image: quay.io/coreos/flannel:v0.15.1-arm64
image: quay.io/coreos/flannel:v0.15.1-arm
image: quay.io/coreos/flannel:v0.15.1-ppc64le
image: quay.io/coreos/flannel:v0.15.1-s390x
确认镜像都已经下载。 5、删除flannel.yml时有以下报错,查看kube-flannel.yml中创建使用的版本
unable to recognize "kube-flannel.yml": no matches for kind "ClusterRole" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "kube-flannel.yml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
将其中”rbac.authorization.k8s.io/v1beta1“修改为”rbac.authorization.k8s.io/v1“;也就是将对应报错的ClusterRole、ClusterRoleBinding修改为正式版。 6、重新创建flannel
kubectl apply -f kube-flannel.yml
查看node节点镜像状态:
[root@ ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-7f6cbbb7b8-4tq7b 1/1 Running 1 (10h ago) 3d9h
coredns-7f6cbbb7b8-clmbg 1/1 Running 1 (10h ago) 3d9h
etcd-k8s-master01 1/1 Running 2 (10h ago) 3d9h
kube-apiserver-k8s-master01 1/1 Running 2 (10h ago) 3d9h
kube-controller-manager-k8s-master01 1/1 Running 2 (10h ago) 3d9h
kube-flannel-ds-amd64-qmzdf 1/1 Running 0 61s
kube-flannel-ds-amd64-qq7wq 0/1 Init:0/1 0 61s
kube-flannel-ds-amd64-wkqww 0/1 Init:0/1 0 61s
kube-scheduler-k8s-master01 1/1 Running 2 (10h ago) 3d9h
其中”kube-flannel-ds-amd64-qq7wq“ 一直在初始化状态。 7、kubectl describe pod kube-flannel-ds-amd64-qq7wq -n kube-system
[root@ ~]# kubectl describe pod kube-flannel-ds-amd64-qq7wq -n kube-system
Name: kube-flannel-ds-amd64-qq7wq
Namespace: kube-system
Priority: 0
Node: k8s-node02/192.168.66.21
Start Time: Wed, 17 Nov 2021 09:16:39 +0800
Labels: app=flannel
controller-revision-hash=78bfb54ddf
pod-template-generation=1
tier=node
Annotations: <none>
Status: Pending
IP: 192.168.66.21
IPs:
IP: 192.168.66.21
Controlled By: DaemonSet/kube-flannel-ds-amd64
Init Containers:
install-cni:
Container ID:
Image: quay.io/coreos/flannel:v0.15.1-amd64
Image ID:
Port: <none>
Host Port: <none>
Command:
cp
Args:
-f
/etc/kube-flannel/cni-conf.json
/etc/cni/net.d/10-flannel.conflist
State: Waiting
Reason: ImagePullBackOff
Ready: False
Restart Count: 0
Environment: <none>
Mounts:
/etc/cni/net.d from cni (rw)
/etc/kube-flannel/ from flannel-cfg (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-f8jcm (ro)
Containers:
kube-flannel:
Container ID:
Image: quay.io/coreos/flannel:v0.15.1-amd64
Image ID:
Port: <none>
Host Port: <none>
Command:
/opt/bin/flanneld
Args:
--ip-masq
--kube-subnet-mgr
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Limits:
cpu: 100m
memory: 50Mi
Requests:
cpu: 100m
memory: 50Mi
Environment:
POD_NAME: kube-flannel-ds-amd64-qq7wq (v1:metadata.name)
POD_NAMESPACE: kube-system (v1:metadata.namespace)
Mounts:
/etc/kube-flannel/ from flannel-cfg (rw)
/run/flannel from run (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-f8jcm (ro)
Conditions:
Type Status
Initialized False
Ready False
ContainersReady False
PodScheduled True
Volumes:
run:
Type: HostPath (bare host directory volume)
Path: /run/flannel
HostPathType:
cni:
Type: HostPath (bare host directory volume)
Path: /etc/cni/net.d
HostPathType:
flannel-cfg:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: kube-flannel-cfg
Optional: false
kube-api-access-f8jcm:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: :NoSchedule op=Exists
node.kubernetes.io/disk-pressure:NoSchedule op=Exists
node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/network-unavailable:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists
node.kubernetes.io/pid-pressure:NoSchedule op=Exists
node.kubernetes.io/unreachable:NoExecute op=Exists
node.kubernetes.io/unschedulable:NoSchedule op=Exists
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 2m11s default-scheduler Successfully assigned kube-system/kube-flannel-ds-amd64-qq7wq to k8s-node02
Warning Failed 54s kubelet Failed to pull image "quay.io/coreos/flannel:v0.15.1-amd64": rpc error: code = Unknown desc = Error response from daemon: Get "https://quay.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Warning Failed 54s kubelet Error: ErrImagePull
Normal BackOff 53s kubelet Back-off pulling image "quay.io/coreos/flannel:v0.15.1-amd64"
Warning Failed 53s kubelet Error: ImagePullBackOff
Normal Pulling 38s (x2 over 2m9s) kubelet Pulling image "quay.io/coreos/flannel:v0.15.1-amd64"
192.168.66.21中未能拉取到quay.io/coreos/flannel:v0.15.1-amd64镜像。
手动下载镜像,并导入docker。
8、进入github手动拉取镜像 Releases · flannel-io/flannel · GitHub 我下载的是这些: image: quay.io/coreos/flannel:v0.15.1-amd64 image: quay.io/coreos/flannel:v0.15.1-arm64 image: quay.io/coreos/flannel:v0.15.1-arm image: quay.io/coreos/flannel:v0.15.1-ppc64le image: quay.io/coreos/flannel:v0.15.1-s390x 9、下载完成后,上传到对应报错的服务器上,通过docker load加载镜像
docker load < quay.io/coreos/flannel:v0.15.1-amd64
以此加载完成。 10、执行语句确认,初始化kube-flannel-ds-amd64-qq7wq成功。
[root@~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-7f6cbbb7b8-4tq7b 1/1 Running 1 (10h ago) 3d9h
coredns-7f6cbbb7b8-clmbg 1/1 Running 1 (10h ago) 3d9h
etcd-k8s-master01 1/1 Running 2 (10h ago) 3d9h
kube-apiserver-k8s-master01 1/1 Running 2 (10h ago) 3d9h
kube-controller-manager-k8s-master01 1/1 Running 2 (10h ago) 3d9h
kube-flannel-ds-amd64-qmzdf 1/1 Running 0 9m57s
kube-flannel-ds-amd64-qq7wq 1/1 Running 0 9m57s
kube-flannel-ds-amd64-wkqww 1/1 Running 0 9m57s
kube-scheduler-k8s-master01 1/1 Running 2 (10h ago) 3d9h
更多推荐
所有评论(0)