
k8s卸载与安装
k8s卸载与安装
·
k8s卸载与安装
参考链接
https://blog.csdn.net/weixin_39589455/article/details/129160682
https://blog.csdn.net/LONG_Yi_1994/article/details/127139637
https://blog.csdn.net/weixin_56752399/article/details/123217472
卸载
1、停止相关服务
首先,如果是卸载k8s-1.24以上版本,需要单独卸载containerd
sudo apt-get purge --auto-remove containerd.io
# 注意顺序
systemctl stop kubelet
systemctl stop etcd
systemctl stop docker
2、卸载
kubeadm reset -f
3、删除相关目录
sudo apt-get purge --auto-remove kubernetes-cni
sudo apt-get purge --auto-remove kubeadm
sudo apt-get purge --auto-remove kubectl
sudo apt-get purge --auto-remove kubelet
sudo modprobe -r ipip
sudo rm -rf ~/.kube/
sudo rm -rf /etc/kubernetes/
sudo rm -rf /etc/systemd/system/kubelet.service.d
sudo rm -rf /etc/systemd/system/kubelet.service
sudo rm -rf /usr/bin/kube*
sudo rm -rf /etc/cni
sudo rm -rf /opt/cni
sudo rm -rf /var/lib/etcd
sudo rm -rf /var/etcd
sudo apt clean all
sudo apt remove kube*
利用dpkg命令查看是否还有k8s其他服务
dpkg -l | grep kube
dpkg用于:管理系统的里deb包,可以对其安装、卸载、deb打包、deb解压等操作,
与之相关apt-get工具可以在线下载 deb包 安装
sudo apt-get remove --purge kubernetes-cni
sudo apt-get remove --purge kubeadm
sudo apt-get remove --purge kubectl
sudo apt-get remove --purge kubelet
apt-get remove 会删除软件包而保留软件的配置文件
apt-get purge 会同时清除软件包和软件的配置文件
find / -name kube*
sudo find / -name kube* -delete
sudo find / -name kube* | xargs rm -rf
sudo find / -name kube* | xargs rmdir (1.24版本以上,删除空目录)
安装
参考链接:
https://www.cnblogs.com/xuweiweiwoaini/p/13884112.html
1、初始操作
# 1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 2、关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
# 3、关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
sed -i 's/.*swap.*/#&/' /etc/fstab
swapoff -a # 临时
# 4、开启路由转发
sysctl -w net.ipv4.ip_forward=1
# 关闭完swap后,一定要重启一下虚拟机!!!
# 根据规划设置主机名
hostnamectl set-hostname <hostname>
# 5、在master节点添加
cat >> /etc/hosts << EOF
192.168.16.151 cloud-test-1
192.168.16.152 cloud-test-2
192.168.16.153 cloud-test-3
EOF
# 6、在每个节点配置转发相关参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF
sysctl --system # 生效
2、安装
# 7、 安装 kubeadm、kubelet、kubectl
sudo apt-get install -y --allow-downgrades kubeadm=1.23.17-00 kubelet=1.23.17-00 kubectl=1.23.17-00
## 安装k8s 抛出异常提示Unable to locate package kubectl
## 改为国内的镜像地址
## 执行
echo deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main | sudo tee /etc/apt/sources.list.d/kubernetes.list
## 执行:
apt-get update
## 报错NO_PUBKEY B53DC80D13EDEF05,执行:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B53DC80D13EDEF05(这个值在报错信息里)
## 重新执行:
apt-get update
systemctl enable kubelet
# 8、配置关闭 Docker 的 cgroups,修改 /etc/docker/daemon.json,加入以下内容
"exec-opts": ["native.cgroupdriver=systemd"]
# 重启 docker
systemctl daemon-reload
systemctl restart docker
3、部署master节点
部署k8s的Master节点(192.168.16.151):
在 Master 节点下执行
kubeadm init \
--apiserver-advertise-address=192.168.16.151 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.17 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
# 安装成功后,复制如下配置并执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
4、添加node节点
# 9、加入 Kubernetes Node
sudo kubeadm join 192.168.16.151:6443 --token 95hogq.xwxyt69wc8xdbnfq --discovery-token-ca-cert-hash sha256:8d6c832b6a66caa066785c45299c9f787b9ec374583a0e0b308b5a77a89b04a0
# token 可以通过如下命令获取或者重新申请
# 如果 token 已经过期,就重新申请
kubeadm token create
# token 没有过期可以通过如下命令获取
kubeadm token list
# 获取 --discovery-token-ca-cert-hash 值,得到值后需要在前面拼接上 sha256:
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'
5、部署CNI网络插件
# 在 master 节点上执行
# 下载 calico 配置文件,可能会网络超时
curl https://docs.projectcalico.org/manifests/calico.yaml -O
curl https://calico-v3-25.netlify.app/archive/v3.25/manifests/calico.yaml
-O
# 修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR 配置,修改为与初始化的 cidr 相同
# 修改 IP_AUTODETECTION_METHOD 下的网卡名称
# 删除镜像 docker.io/ 前缀,避免下载过慢导致失败
sed -i 's#docker.io/##g' calico.yaml
kubectl apply -f calico.yaml
6、测试集群
# 创建部署
kubectl create deployment nginx --image=nginx
# 暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看 pod 以及服务信息
kubectl get pod,svc
更多推荐
所有评论(0)