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
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐