在之前的k8s实践中,我们使用minikube搭建了k8s环境,为了更真实的展示生产级别的k8s,本节课采用kubeadm来搭建master+worker集群,实现k8s集群,master、worker在虚拟机上来执行,中间遇到了超级多的坑,在这里系统的总结一下,分上下两篇进行讲解。
一共有3台虚拟服务器主机,上篇主要介绍,kubeadm安装前的准备,kubeadm安装,下篇主要介绍使用Flannel 把Master、worker节点链接在k8s的同一个网络中,安装k8s的模拟环境是一切实践k8s的基础条件。
master IP: 192.168.88.134worker IP: 192.168.88.139console IP: 192.168.88.136pod-network-cidr 可以给定默认的10.244.0.0,这样安装flannel网络插件的时候就会方便了。 image-repository registry.aliyuncs.com/google_containers 这句是自动安装kubernetes需要的指定的docker镜像。
(资料图片仅供参考)
sudo kubeadm init \ --pod-network-cidr=10.244.0.0/16 \ --apiserver-advertise-address=192.168.88.134 \ --kubernetes-version=v1.23.3kubeadm versionkubectl version --client或者你可以先执行一下下载镜像的脚本:
#!/bin/bash# stark @ 2022-04# kubeadm config images list --kubernetes-version v1.23.3# k8s.gcr.io/kube-apiserver:v1.23.3# k8s.gcr.io/kube-controller-manager:v1.23.3# k8s.gcr.io/kube-scheduler:v1.23.3# k8s.gcr.io/kube-proxy:v1.23.3# k8s.gcr.io/pause:3.6# k8s.gcr.io/etcd:3.5.1-0# k8s.gcr.io/coredns/coredns:v1.8.6# use ali registry to speed uprepo=registry.aliyuncs.com/google_containersfor name in `kubeadm config images list --kubernetes-version v1.23.3`;do # remove prefix src_name=${name#k8s.gcr.io/} src_name=${src_name#coredns/} docker pull $repo/$src_name # rename to fit k8s docker tag $repo/$src_name $name docker rmi $repo/$src_namedone# flannel imagesfor name in `grep image flannel.yml |grep -v "#image" | sed "s/image://g" -`;do docker pull $namedone# checkdocker images如果初始化失败,可以使用 sudo kubeadm reset -f进行重置:
安装完成以后这个才是最最最重要的地方!!!!
我解释一下提示的意思,这个地方在加入worker节点的时候也是重点需要理解的地方,非root用户执行下面的命令。
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configroot用户添加全局变量:
export KUBECONFIG=/etc/kubernetes/admin.conf有的时候就会遇见 The connection to the server localhost:8080 was refused - did you specify the right host or port? 这个傻逼问题,这个可能是初始化准备的时候有问题,就得重试!用 sudo kubeadm reset进行重试,如果你没有遇到,恭喜你那你是幸福的!
这个问题我回头会专门回答这个问题,已经知道原因了,我们先安装。
sudo rm $HOME/.kubesudo rm -rf /etc/cni/net.dsudo ipvsadm --cleargit 网址 https://github.com/flannel-io/flannel/,底下有提示:
# For Kubernetes v1.17+# If you use custom podCIDR (not 10.244.0.0/16) you first need to download the above manifest and modify the network to match your one.kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.20.2/Documentation/kube-flannel.yml到此,master节点已经安装好了
stark@master:~$ kubectl get nodeNAME STATUS ROLES AGE VERSIONmaster Ready control-plane,master 35m v1.23.3Worker 节点的准备工作和Master的一样,可以把Worker上准备好的sh脚本,在worker的服务器上在执行一遍:
把在master上kubeadm初始化成功的 kubeadm join 找到,在worker上执行,这个意思是加入到master的k8s集群中,如果找不到了,就执行kubeadm token create --print-join-command
kubeadm join 192.168.88.134:6443 --token k0yau8.mimrb35spiho0whw \--discovery-token-ca-cert-hash sha256:a26bf3d3da3cd4b09fc35cc29bf2170ea8fe43f99f7c2c18ad4634f011bb2c61scp -r stark@192.168.88.134:~/sh ~复制k8s文件,执行之前的命令:
sudo scp -r stark@192.168.88.134:/etc/kubernetes/admin.conf /etc/kubernetes/admin.confmkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config执行kubectl get nodes命令,worker节点安装完毕:
worker@worker:~$ kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster Ready control-plane,master 67m v1.23.3worker Ready 4m41s v1.23.3 添加一个pod,测试,已经ok了。
kubectl run ngx --image=nginx:alpinekubectl get pod -o wideworker@worker:~$ kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESngx 1/1 Running 0 49s 10.244.1.2 worker Console就非常简单了,把文件直接从Master主机上scp过来就好了。做一个补充,先下载kubectl的文件:
#下载:curl -LO https://dl.k8s.io/release/v1.23.3/bin/linux/arm64/kubectl# 安装sudo install kubectl /usr/local/bin/kubectl# 从master节点复制文件sudo scp stark@192.168.88.134:/etc/kubernetes/admin.conf /etc/kubernetes/admin.conf执行一下刚才执行的:
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config至此,kubeadm的,master + worker + console 的环境搭建完成了。
在之前的k8s实践中,我们使用minikube搭建了k8s环境,为了更真实的展示生产级别的k8s,本节课采用kubead...
1、材料:葛根10克、木瓜10克、薏仁5克、茯苓3克、魔芋5克、扁豆3克、芸豆3克、糙米5克、芡实3克、枸杞2...
买房是很多人奋斗多年的目标,一般是要通过中介来看房买房的,尤其是二手房,近日有人爆料谢娜张杰买房...
调查显示,自认目前“经济独立”的女性劳工比例达69 3%,高于去年的67 8%;平均薪资为39056元(新台币...
贝壳研究院近日表示,预计3月租赁市场成交量环比略有减少,仍将保持较高活跃度。
截至2023年2月末,我国外汇储备规模为31332亿美元,较1月末下降513亿美元,降幅为1 61%。
1、(reverseosmosisRO)指的是在半透膜的原水一侧施加比溶液渗透压高的外界压力,原水透过半透膜时,只允许
1、过氧化氢异丙苯,一种化学品,分子式C9H12O2。2、用于乙烯裂解汽油脱砷和ABS接枝聚合引发剂。文章到...
工作总结自我提高计划第1篇20__年对我来讲是印象深刻的一年,我来采购部整整一年,一切都是从零开始的。...
江西南丰:多彩活动迎接“三八”国际妇女节
本文转自【央视新闻客户端】;3月7日,巴州—铁干里克—若羌750千伏输变电工程在新疆巴音郭楞蒙古自治州...
3月7日14点25分,血氧仪板块指数报967 622点,跌幅达2%,成交19 99亿元,换手率1 31%。板块个股中,...
1、首先观察热水瓶有一个透明的洞,洞上面有塞子。有些上面甚至写着排气这个词。2、用剪刀的尖端打开这...
2 自然价格也不便宜。预售期间,此枪价格为388Q币,外加30天令狐,5张幻影卡,30天玫瑰手雷。后来因为...
3月5日,普定县黄桶街道12个村(社区)新时代文明实践站、新时代文明实践志愿服务分队组织辖区青少年、...
今年38岁的蒋华是清镇市卫城镇犀牛村黔耘农机合作社的负责人,也是清镇市卫城镇开展农机耕种服务的“排...
1、《星级酒店常用英语》是星级酒店管理实务系列之一,《星级酒店常用英语》理念新颖,可操作性强。2、...
1、陈永淘,台湾客家语歌手,以民谣风格为主。2、1956年出生于新竹县关西镇,1979年毕业于世新大学编导...
1、处暑是炎热离开的意思,它属于二十四节气之一,在每年公历的8月23日,处暑即为出署,代表暑天的结束...
2023年世界青年冰壶锦标赛近日在德国富森落幕。中国队小伙子们表现出色,在决赛中以8比7险胜东道主,为...
1、三月初三吃荠菜煮鸡蛋农历三月初三有吃荠菜煮鸡蛋的习俗,老人们说,吃了可以一年当中腰腿不疼、头不...
1、散瞳剂,眼科用药,能使瞳孔散大和血管收缩,房水生成减少,亦有降低眼内压作用。2、用于成人(40岁以...
过去一周(2月27日至3月5日),跨境电商行业发生哪些动态?行业一览合肥跨境电商2022年实现交易额196 25...
汇顶科技:关于注销部分股票期权的公告
众所周知,自从中国女排北仑集训开展以来,已有一个多月的时间,姑娘们经过这段日子的磨合,彼此间的默...
X 关闭
X 关闭