网络插件calico升级
确认当前版本
执行以下命令确认当前 calico 版本
kubectl describe deployment calico-kube-controllers -n kube-system
输出结果如下所示:
Name: calico-kube-controllers
Namespace: kube-system
CreationTimestamp: Tue, 30 Mar 2021 09:06:33 +0800
Labels: k8s-app=calico-kube-controllerskubernetes.io/cluster-service=true
Annotations: deployment.kubernetes.io/revision: 1kubectl.kubernetes.io/last-applied-configuration:{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"k8s-app":"calico-kube-controllers","kubernetes.io/clus...
Selector: k8s-app=calico-kube-controllers,kubernetes.io/cluster-service=true
Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType: Recreate
MinReadySeconds: 0
Pod Template:Labels: k8s-app=calico-kube-controllerskubernetes.io/cluster-service=trueService Account: calico-kube-controllersContainers:calico-kube-controllers:Image: calico/kube-controllers:v3.7.3Port: Host Port: Limits:cpu: 100mmemory: 256MRequests:cpu: 30mmemory: 64MReadiness: exec [/usr/bin/check-status -r] delay=0s timeout=1s period=10s #success=1 #failure=3Environment:ETCD_ENDPOINTS: https://192.168.63.90:2379,https://192.168.63.91:2379,https://192.168.63.93:2379ETCD_CA_CERT_FILE: /etc/calico/certs/ca_cert.crtETCD_CERT_FILE: /etc/calico/certs/cert.crtETCD_KEY_FILE: /etc/calico/certs/key.pemMounts:/etc/calico/certs from etcd-certs (ro)Volumes:etcd-certs:Type: HostPath (bare host directory volume)Path: /etc/calico/certsHostPathType:Priority Class Name: system-cluster-critical
Conditions:Type Status Reason---- ------ ------Available True MinimumReplicasAvailableProgressing True NewReplicaSetAvailable
OldReplicaSets:
NewReplicaSet: calico-kube-controllers-6bd4d89584 (1/1 replicas created)
Events:
清理已有安装
如上所示,calico镜像是 v3.7.3,要清理已有 calico 安装,执行命令:
# 如果版本号是 v3.7.3 或者 v3.7.x,则删除命令如下
kubectl delete -f calico-3.7.yaml
安装新版本
执行命令查看kubeadmin的配置
kubeadm config view
输出结果如下所示:
apiServer:certSANs:- kubernetes- kubernetes.default- kubernetes.default.svc- kubernetes.default.svc.cluster.local- 172.20.0.1- localhost- 127.0.0.1- master01- master02- master03- lb.kubesphere.local- 192.168.63.96- 192.168.63.90- 192.168.63.91- 192.168.63.92extraArgs:allow-privileged: "true"anonymous-auth: "True"apiserver-count: "3"authorization-mode: Node,RBACbind-address: 0.0.0.0enable-aggregator-routing: "False"endpoint-reconciler-type: leasefeature-gates: CSINodeInfo=true,VolumeSnapshotDataSource=true,ExpandCSIVolumes=true,RotateKubeletClientCertificate=trueinsecure-port: "0"kubelet-preferred-address-types: InternalDNS,InternalIP,Hostname,ExternalDNS,ExternalIPprofiling: "False"request-timeout: 1m0sruntime-config: ""service-node-port-range: 30000-32767storage-backend: etcd3extraVolumes:- hostPath: /etc/pki/tlsmountPath: /etc/pki/tlsname: etc-pki-tlsreadOnly: true- hostPath: /etc/pki/ca-trustmountPath: /etc/pki/ca-trustname: etc-pki-ca-trustreadOnly: truetimeoutForControlPlane: 5m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/ssl
clusterName: cluster.local
controlPlaneEndpoint: lb.kubesphere.local:8443
controllerManager:extraArgs:bind-address: 0.0.0.0configure-cloud-routes: "false"experimental-cluster-signing-duration: 87600hfeature-gates: CSINodeInfo=true,VolumeSnapshotDataSource=true,ExpandCSIVolumes=true,RotateKubeletClientCertificate=truenode-cidr-mask-size: "24"node-monitor-grace-period: 40snode-monitor-period: 5spod-eviction-timeout: 5m0sprofiling: "False"terminated-pod-gc-threshold: "12500"
dns:imageRepository: corednsimageTag: 1.6.0type: CoreDNS
etcd:external:caFile: /etc/ssl/etcd/ssl/ca.pemcertFile: /etc/ssl/etcd/ssl/node-master02.pemendpoints:- https://192.168.63.90:2379- https://192.168.63.91:2379- https://192.168.63.93:2379keyFile: /etc/ssl/etcd/ssl/node-master02-key.pem
imageRepository: kubesphere
kind: ClusterConfiguration
kubernetesVersion: v1.16.7
networking:dnsDomain: cluster.localpodSubnet: 172.20.64.0/18serviceSubnet: 172.20.0.0/18
scheduler:extraArgs:bind-address: 0.0.0.0feature-gates: CSINodeInfo=true,VolumeSnapshotDataSource=true,ExpandCSIVolumes=true,RotateKubeletClientCertificate=true
useHyperKubeImage: true
执行以下命令,安装 calico 3.8.4,请注意,下面的 POD_SUBNET 环境变量来自于上面的输出结果:(输出结果中,podSubnet字段可能为空,这说明集群安装集群时使用了默认的配置,升级时,请仍然保留空值。)
# 命令行中环境变量 POD_SUBNET 的取值 172.20.64.0/18 来自于上一个命令的输出结果
export POD_SUBNET=172.20.64.0/18
wget https://kuboard.cn/install-script/calico/calico-3.8.yaml
sed -i "s#10\.233\.64\.0/18#${POD_SUBNET}#" calico-3.8.yaml
kubectl apply -f calico-3.8.yaml
此时可执行命令检查 calico 的版本:
kubectl describe deployment calico-kube-controllers -n kube-system
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
