安装了好几天,感觉网上大佬都是骗人的,后来又发现大佬们并没有骗人,只不过一些详细的地方没有细说,走了好多弯路啊o(╥﹏╥)o,后来慕课网找了视频才进入了正道,接下来搞个简单版本的部署步骤供大家参考,后面的路还很长,大家一起✊!!!
一、环境准备
我这里是半成品的环境,不太适合参考o(╥﹏╥)o ,但基本也是最新的,关于环境问题大家可以网上查一下
版本 | 命令 | |
系统 | 7.5 | uname -a或 cat /etc/redhat-release自己网络查询进行比对其它系统的版本 |
docker | 20.10.7 | docker version |
kubernetes(k8s) | 1.23.0 | 这个是自己指定的,这个版本也比较新了 |
因为安装了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.yaml4.3然后手动去拉取镜像 ,用阿里的镜像源:registry.aliyuncs.com
/google_containers(在master上执行)
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 --pod-network-cidr=10.244.0.0/16 --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 查看是否加入成功 三、安装网络插件(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然后重新初始化
操作中大家也多翻翻其他人的文档,多多参考,好多文档中多了一些不必要的步骤大家可以忽略后续慢慢研究,小白一个不喜勿喷,后续还会补充一些内容
参考文档包含: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的集成,看就完了)
标签:kubectl,K8s,rvf,master,版本,卸载,kubeadm,kube,pod From: https://www.cnblogs.com/dkzou/p/17039566.html