|NO.Z.00097|——————————|^^ 升级 ^^|——|KuberNetes&二进制升级.V08|——|kubernetes组件|coredns.v.1.7.0——>v.1.8.4|

一、升级kubernetes.coredns
### --- coredns官方coredns官方GitHub:源码地址

~~~     https://github.com/coredns/coredns.git
### --- 下载coredns的版本包

~~~     git clone https://github.com/coredns/deployment.git
### --- coredns升级说明

~~~     若是集群中使用的是kube-dns插件,直接使用    ./deploy.sh | kubeclt apply -f -
~~~     然后再把kube-dns的deployment删除掉即可:kubectl delete --namespace=kube-system deployment kube-dns
~~~     coredns做了一个脚本,直接替换kube-dns服务
~~~     若是没有使用kube-dns;此环境使用的就是coredns;直接使用-s参数;直接跳过从kube-dns转化coredns的配置
二、备份coredns;升级coredns:v1.7.0——>v1.8.4
### --- 获取coredns:1.8.4的版本包
~~~     获取coredns版本包

[root@k8s-master01 coredns]# pwd
/root/upgrade/coredns
[root@k8s-master01 coredns]# git clone https://github.com/coredns/coredns.git
### --- 备份coredns配置资源
~~~     # 查看coredns的配置资源

[root@k8s-master01 ~]# kubectl get configmap -n kube-system -owide
NAME                                           DATA   AGE
configmap/coredns                              1      54d
[root@k8s-master01 ~]# kubectl get deployment -n kube-system -owide
NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS                IMAGES                                                           SELECTOR
deployment.apps/coredns                   1/1     1            1           54d   coredns                   registry.cn-beijing.aliyuncs.com/dotbalo/coredns:1.7.0           k8s-app=kube-dns
~~~     # 备份coredns配置文件

[root@k8s-master01 ~]# mkdir upgrade/coredns.bak
[root@k8s-master01 ~]# kubectl get configmap coredns -n kube-system -oyaml > upgrade/coredns.bak/coredns-cm.yaml
[root@k8s-master01 ~]# kubectl get deployment coredns -n kube-system -oyaml > upgrade/coredns.bak/coredns-dp.yaml
~~~     # 查看coredns的ClusterRole 和clusterrolebinding

[root@k8s-master01 ~]# kubectl get clusterrole system:coredns
NAME             CREATED AT
system:coredns   2021-05-10T12:37:55Z
[root@k8s-master01 ~]# kubectl get clusterrolebinding system:coredns
NAME             ROLE                         AGE
system:coredns   ClusterRole/system:coredns   54d
~~~     # 备份coredns的ClusterRole和ClusterRoleBinding

[root@k8s-master01 ~]# kubectl get clusterrole system:coredns -oyaml > upgrade/coredns.bak/cr.yaml
[root@k8s-master01 ~]# kubectl get clusterrolebinding system:coredns -oyaml > upgrade/coredns.bak/crb.yaml
三、升级coredns版本
### --- 查看coredns的版本

[root@k8s-master01 ~]# kubectl get po -n kube-system -owide
NAME                                       READY   STATUS    RESTARTS   AGE   IP               NODE           NOMINATED NODE   READINESS GATES
coredns-867d46bfc6-r9g28                   1/1     Running   2          53d   172.18.195.37    k8s-master03   <none>           <none>
[root@k8s-master01 ~]# kubectl get po -n kube-system coredns-867d46bfc6-r9g28 -oyaml | grep image
    image: registry.cn-beijing.aliyuncs.com/dotbalo/coredns:1.7.0
### --- 升级coredns

[root@k8s-master01 kubernetes]# pwd
/root/upgrade/coredns/deployment/kubernetes
~~~     # 查看coredns.deploy的配置文件
[root@k8s-master01 kubernetes]# ./deploy.sh -s

~~~     # 升级coredns
[root@k8s-master01 kubernetes]# ./deploy.sh -s | kubectl apply -f -
[root@k8s-master01 ~]#  kubectl get po -n kube-system -owide
NAME                                       READY   STATUS              RESTARTS   AGE     IP              NODE           NOMINATED NODE   READINESS GATES
coredns-746fcb4bc5-p9r7r                   0/1     ContainerCreating   0          15s     <none>          k8s-master02   <none>           <none>
### --- 查看coredns更新后版本

[root@k8s-master01 ~]# kubectl get po coredns-746fcb4bc5-p9r7r -n kube-system -oyaml | grep image
    image: coredns/coredns:1.8.4
四、验证coredns是否升级成功
### --- 验证一:coredns通过pod验证是否正常解析
~~~     # 验证一:通过容器访问测试是否正常解析

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS    RESTARTS   AGE   IP               NODE           NOMINATED NODE   READINESS GATES
demo-nginx-6bdcdcc585-rzdwf   2/2     Running   0          33m   172.16.122.129   k8s-master02   <none>           <none>
~~~     # 注:443端口是通的,说明是可以正常解析的

[root@k8s-master01 ~]# kubectl exec -ti demo-nginx-6bdcdcc585-rzdwf -- bash
root@demo-nginx-6bdcdcc585-rzdwf:/# curl kubernetes:443
Client sent an HTTP request to an HTTPS server.
### --- 验证二:使用宿主机测试是否正常解析
~~~     # 进入容器查看resolv.conf文件的配置信息

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS    RESTARTS   AGE   IP               NODE           NOMINATED NODE   READINESS GATES
demo-nginx-6bdcdcc585-rzdwf   2/2     Running   0          33m   172.16.122.129   k8s-master02   <none>           <none>
[root@k8s-master01 ~]# kubectl exec -ti demo-nginx-6bdcdcc585-rzdwf -- bash
~~~     # 查看添加的resolve.conf配置文件信息
~~~     注:每个添加的pod会自动添加一个resolv.conf文件
~~~     注:把resolv.conf配置到宿主机上,宿主机就可以解析到kubernetes中的service

root@demo-nginx-6bdcdcc585-rzdwf:/# cat /etc/resolv.conf 
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
~~~     # 在宿主机上配置kubernetes容器的resolve.conf文件
~~~     注:其它的配置注释掉

[root@k8s-master01 ~]# vim /etc/resolv.conf
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
~~~     # 查看service信息并解析
~~~     注:telnet正常解析,说明coredns升级完成后是可用的。

[root@k8s-master01 ~]# kubectl get svc --all-namespaces
NAMESPACE              NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
kube-system            kube-dns                             ClusterIP      10.96.0.10       <none>          53/UDP,53/TCP,9153/TCP       53d
[root@k8s-master01 ~]# telnet kube-dns.kube-system 53
Trying 10.96.0.10...
Connected to kube-dns.kube-system.
Escape character is '^]'.

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on 2022-03-29 13:54  yanqi_vip  阅读(91)  评论(0)    收藏  举报

导航