K8s之安装、部署与卸载(简单版本)

安装了好几天,感觉网上大佬都是骗人的,后来又发现大佬们并没有骗人,只不过一些详细的地方没有细说,走了好多弯路啊o(╥﹏╥)o,后来慕课网找了视频才进入了正道,接下来搞个简单版本的部署步骤供大家参考,后面的路还很长,大家一起✊!!!
一、环境准备
我这里是半成品的环境,不太适合参考o(╥﹏╥)o ,但基本也是最新的,关于环境问题大家可以网上查一下
 
版本
命令
系统
7.5
uname -a或
cat /etc/redhat-release自己网络查询进行比对其它系统的版本
docker
20.10.7
docker version
kubernetes(k8s)
1.23.0
这个是自己指定的,这个版本也比较新了
 
 
 
 
 
 
 
修改服务器的hostname
vi /etc/hostname   修改完重启服务器即可
修改服务器的名称接下来需要修改各个服务器上的hosts每个机器上都需要维护上所有机器的信息
vi /etc/hosts 
因为安装了docker 这里就不进行讲解了,请自行百度
二、安装kubectl、kubelet、kubeadm(注意在哪个节点执行)
1、关闭防火墙(master 与 node 都需要执行)
systemctl stop firewalld
systemctl disable firewalld
2、关闭swap(master 与 node 都需要执行)
swapoff -a
3、启用 bridge-nf-call-iptables 预防网络问题(master 与 node 都需要执行)
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
4、安装kubectl、kubelet、kubeadm(master 与 node 都需要执行)
 yum install -y --nogpgcheck kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
4.1获取init-config文件(在master上执行)
kubeadm config print init-defaults > init-config.yaml
4.2查看需要安装的镜像(在master上执行)
grep image init-config.yaml

4.3然后手动去拉取镜像 ,用阿里的镜像源:registry.aliyuncs.com/google_containers(在master上执行)

docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.0(直接把上面的镜像拉一遍)
4.4拉取下来之后再改一下镜像的名称(在master上执行)
docker tag  registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.0 k8s.gcr.io/kube-apiserver:v1.23.0(全部改一遍)
4.5进行kubeadm 初始化(在master上执行)
kubeadm init --kubernetes-version v1.23.0 --apiserver-advertise-address=XX.XX.XX.XX  --control-plane-endpoint=10.14.40.166  --pod-network-cidr=10.244.0.0/16 --experimental-upload-certs --ignore-preflight-errors=ImagePull(这里因为提示有镜像拉不下来,实际上该有的镜像都有了所以直接忽略此报错就可以)
4.6成功后会出现截图中信息,接下来执行截图中上半部分的命令
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
此时master节点初始完成,接下来只需要进行node节点加入到master节点中即可
5、node节点检查依赖包(Node节点执行)

没有的根据master节点的步骤进行安装下,然后执行截图中的命令加入到master节点

kubeadm join xx.xx.xx.xx:xxxx --token yoegk7.7mox6lo93zbg78o9 \
--discovery-token-ca-cert-hash sha256:94d11d3bd358e922fdd36d5b4ed1c850ddaacb245c705d7561925b9cbc6d6d77
加入后可在master节点进行检查,kubectl get nodes 查看是否加入成功
6.如果重新加入到master节点和清除重置加入信息
重新生成token 命令
kubeadm token create --print-join-command
如果提示已经加入过k8s,提示/etc/kubernetes/kubelet.conf already exists 和 /etc/kubernetes/pki/ca.crt already exists
需要在node节点上执行
在node节点执行kubeadm reset
三、安装网络插件(master节点执行)
1、我这里选择的时kube-flannel 插件,最早用calico没搞定。。。。。后续我还会尝试的,当时一直提示pod初始化中,几天几夜都这样。。。。
这个东东我这里不好下载,博客这里没法插入附件啊,后续我单独写一个随笔共大家复制吧,具体执行命令如下:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
2、获取到文件后,在执行如下命令即可
kubectl apply -f kube-flannel.yml
3、这里需要注意下,这个插件安装完后可以在docker images 里查看安装了两个 flannel 镜像,时间比较长大家不要着急,这时候需要看下pod 状态
kubectl get pod -n kube-system
4、这时候的 coredns pod 会报错我们可以查看下报错原因
kubectl describe pod $这里需要podname -n kube-system
5、有的需要安装相关的包,有的可能提示网络的问题,具体问题具体分析哈,如果时网络的问题就执行pod,自动重建即可
kubectl delete pod $这里需要podname -n kube-system
6、这时候基本就完成了,再次查看nodes 与 pod 的状态
kubectl get nodes            状态应该是ready
kubectl get pod -n kube-system   状态应该是running
四、卸载K8s
关于下载大家不要有什么心里压力,想卸载就卸载,想重新安装就安装,就是依赖镜像的版本需要注意下,别还了版本忘了换以来镜像

kubeadm reset -f

yum -y remove kubelet kubeadm kubectl
rm -rvf $HOME/.kube
rm -rvf ~/.kube/
rm -rvf /etc/kubernetes/
rm -rvf /etc/systemd/system/kubelet.service.d
rm -rvf /etc/systemd/system/kubelet.service
rm -rvf /usr/bin/kube*
rm -rvf /etc/cni
rm -rvf /opt/cni
rm -rvf /var/lib/etcd
rm -rvf /var/etcd

实际测试清理的比较干净,然后可以继续重新安装啦
五、常用小技巧
1、当修改主机名称的时候,具体的配置文件忘了,需要重启kubeadm
kubeadm reset  然后需要重新初始化 kubeadm init
2、重新初始化后需要执行如下命令
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
3、重新生成token 命令
kubeadm token create --print-join-command
4、修改node 需要修改/etc/kubernetes/kubelet.conf 中的name然后重新初始化
操作中大家也多翻翻其他人的文档,多多参考,好多文档中多了一些不必要的步骤大家可以忽略后续慢慢研究,小白一个不喜勿喷,后续还会补充一些内容
5、部署后还需要查看证书年限 ,同时进行修改

可以参考:https://blog.csdn.net/fzqdyyd/article/details/127340860

 

 

 

参考文档包含:https://www.jb51.net/article/256486.htm
       https://blog.csdn.net/weixin_44280843/article/details/126853486
       还有慕课网的视频:Jenkins+K8s实现持续集成:https://www.imooc.com/learn/1112(这个简单易懂,而且还加了jenkins的集成,看就完了)

         https://blog.csdn.net/fzqdyyd/article/details/127340860

 
 
posted @ 2023-01-10 16:21  dkzou  阅读(1188)  评论(0编辑  收藏  举报