升级Kubernetes版本至1.18
时代,要看的比其他人至少早两年
继上篇我的博文升级Postman:https://blog.csdn.net/dong19891210/article/details/106458776,这次计划升级Kubernetes,要跟上时代,看这个明显落伍了
发现和官网的相差十个多等级
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。我就一一记录下升级步骤
1. 更改yum源
切换到
cd /etc/yum.repos.d
然后删除里面的默认yum配置,不放心的话可以备份,然后执行下载yum源配置
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo #dokcer yum源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
最后记得执行以下命令,让新yum源生效:
yum clean all && yum makecache
2. 升级docker
先看下老版本的docker
请先卸载老版本的docker,要不然会出现
执行以下命令
yum list installed | grep docker
看装的docker列表
删除它们
yum remove -y docker*.x86_64
此时再次执行
yum list installed | grep docker
然后执行docker安装:
yum -y install docker-ce
下载进行中。。。。。。
安装完毕,然后启动docker
systemctl start docker
最后设置docker开机自启动功能
systemctl enable docker
很熟悉,spring生态里有很多@Enable开头的注解,也是表示启用某功能的意思
至此,docker也已升级完毕!!!
顺便修改下机器主机名
hostnamectl set-hostname master
再次打开一个窗口就能看的主机名已被改了
3 .升级Kubernetes
前提跟docker类似,记得卸载老版本的kubernetes
配置阿里yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
然后再次生成yum信息·
yum clean all && yum makecache
然后执行命令
yum list kubelet --showduplicates | sort -r
查看哪个版本的kubernetes可用
有最新的,说明此yum源不错,很齐全
然后执行最新安装命令
yum install -y kubelet-1.18.3-0 kubeadm-1.18.3-0 kubectl-1.18.3-0
设置为开机自启动
systemctl enable kubelet && systemctl start kubelet
执行以下命令列出所需镜像,可以手动下载,也可以不用手动下载,master初始化时会自动下载。
kubeadm --kubernetes-version=v1.18.3 config images list
初始化master节点,执行以下命令
kubeadm init --apiserver-advertise-address=192.168.8.200 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.3 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
那就关掉swap:
swapoff -a
由于之前该机器已装过etcd
目录/var/lib/etcd/既然不空,那就强制删除
然后新建拉去镜像脚本images.sh,键入以下内容
# 下面的镜像应该去除"k8s.gcr.io/"的前缀 images=( kube-apiserver:v1.18.3 kube-controller-manager:v1.18.3 kube-scheduler:v1.18.3 kube-proxy:v1.18.3 pause:3.2 etcd:3.4.3-0 coredns:1.6.7 ) for imageName in ${images[@]} ; do docker pull mirrorgcrio/$imageName docker tag mirrorgcrio/$imageName k8s.gcr.io/$imageName docker rmi mirrorgcrio/$imageName done
然后执行
sh images.sh
慢慢拉镜像
再次执行初始化工作:
kubeadm init --apiserver-advertise-address=192.168.8.200 \
--control-plane-endpoint="192.168.8.200:6443" \ --kubernetes-version v1.18.3 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16 \ --ignore-preflight-errors all
然后按照提示设置普通账户权限
mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config
接着部署网络插件flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
终于升级到了最新版!!!
建议裸机安装,不要像我一样用装过docker和kubernetes旧版本的机器,这老外天天改动,有出入,就像spring新版和老版本并不完全兼容,追人家的永远都受制于人!!!!!!
yum install -y kubelet-1.18.3-0 kubeadm-1.18.3-0 kubectl-1.18.3-0
kubeadm --kubernetes-version=v1.18.3 config images list
kubeadm init --apiserver-advertise-address=192.168.8.200 \
--control-plane-endpoint="192.168.8.200:6443" \ --kubernetes-version v1.18.3 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16 \ --ignore-preflight-errors all [root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml docker tag k8s.gcr.io/kube-apiserver:v1.18.3 registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.3 docker tag k8s.gcr.io/kube-controller-manager:v1.18.3 registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.3 docker tag k8s.gcr.io/kube-scheduler:v1.18.3 registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.3 docker tag k8s.gcr.io/kube-proxy:v1.18.3 registry.aliyuncs.com/google_containers/kube-proxy:v1.18.3 docker tag k8s.gcr.io/pause:3.2 registry.aliyuncs.com/google_containers/pause:3.2 docker tag k8s.gcr.io/etcd:3.4.3-0 registry.aliyuncs.com/google_containers/etcd:3.4.3-0 docker tag k8s.gcr.io/coredns:1.6.7 registry.aliyuncs.com/google_containers/coredns:1.6.7
至此,三大设施(Spring及衍生、postman、kubernetes及组合)全已升级完毕
小结:不建议此种方式安装升级,还是以前源码式安装比较牢靠。
参考:
0. 升级Kubernetes 1.18前,你不得不知的9件事
http://dockone.io/article/9952
1. Kubernetes 1.18: Fit & Finish
https://kubernetes.io/blog/2020/03/25/kubernetes-1-18-release-announcement/
2. Kubernetes 版本及版本倾斜支持策略 https://kubernetes.io/zh/docs/setup/release/
3. 使用kubeadm在Centos8上部署kubernetes1.18 https://www.kubernetes.org.cn/7189.html
4. kubernetes/yum/ https://mirrors.aliyun.com/kubernetes/yum/
5. kubeadm安装kubenetes1.15.4集群 http://www.shangdixinxi.com/detail-1301548.html
6 Linux下minikube启动失败(It seems like the kubelet isn't running or healthy)
http://www.luyixian.cn/news_show_73520.aspx
7. Kubernetes使用中发现的问题和错误 https://yq.aliyun.com/articles/679198
9. how to install kubernetes on centos7 or ubuntu18-04 (要 fan qiang) https://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-install-kubernetes-on-centos-7-ubuntu-18-04-16-04-debian-9.html
10. setting up kubernetes cluster single-cp ormultiple-cp(也要fan qiang) https://medium.com/the-tech-inducers/setting-up-kubernetes-cluster-single-cp-or-multiple-cp-a7e8d95b3c0c
