概述
在之前的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.136
安装 Master 节点
pod-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.3
kubeadm 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/config
root用户添加全局变量:
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 --clear
安装 Flannel 网络插件
git 网址 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.3
安装 Worker 节点
Worker 节点的准备工作和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:a26bf3d3da3cd4b09fc35cc29bf2170ea8fe43f99f7c2c18ad4634f011bb2c61
scp -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
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 的环境搭建完成了。
关键词: Kubernetes Bash Bash
-
快资讯丨微服务 - 搭建k8s(kubeadm)模拟复杂的生产环境(下篇)
在之前的k8s实践中,我们使用minikube搭建了k8s环境,为了更真实的展示生产级别的k8s,本节课采用kubeadm来搭建master+worker集群,
-
环球短讯!重庆巴川中学
1、重庆市巴川中学创办于2002年,是重庆市铜梁区政府举办,新鸥鹏集团投资的民办完全中学。2、校园占地面积320亩,学校
-
全球快资讯丨今日全智贤体重身高_全智贤身高
1、全智贤身高174厘米全智贤,1981年10月30日出生于首尔,韩国女演员。2、1997年,他在模特界出道。3、199
-
观天下!求穿越成三清或三清兄弟的小说
《洪荒之太上剑圣》、作者:无赖天骄。《清蒙天下》、作者:冷风吹来屁屁凉。《洪荒之长耳定光仙》、作者:望天邀明月。《重生慈航普度》、作
-
今日快看!契税和维修基金和首付一起交_契税和维修基金怎么算
1 契税的计算公式为:税额*税率;维修基金的计算公式为:建筑面积每平方米成本价*比例*面积。2 契税的税率和我们买的房子
-
环球快看:我是特种兵第二部叫什么
我是特种兵第二部叫《我是特种兵之利刃出鞘》,《我是特种兵之利刃出鞘》是南京军区政治部电视艺术中心出品,刘猛执导,吴京、赵荀、徐佳等人
-
世界资讯:盛新锂能2022年净利55.52亿 同比增长541% 董事长周祎税前报酬总额381.92万
挖贝网3月6日,盛新锂能(002240)近日发布2022年年度报告,报告期内营业收入12,039,233,744 51元,同比增长299 03%;归属于上市公司
-
世界速看:向雷锋学习 与文明同行——潍坊临朐各地第60个学雷锋纪念日活动综述
大众网·海报新闻记者记者刘贝贝通讯员刘明志刘瑞华今年3月5日,是第60个学雷锋纪念日。“如果你是一滴水,你是否滋
-
全球播报:pp1069
1、王树刚:男,大连理工大学建筑环境与设备工程专业负责人,大连理工大学教授。2、博士生导师,硕士生导师,毕业于上海交通大
-
世界百事通!95后代表任子威:建议具备条件的高等院校建设冰雪项目高水平运动队
95后代表任子威:建议具备条件的高等院校建设冰雪项目高水平运动队作者:孟佩佩中国青年报客户端讯(中青报·中青网记者孟佩佩)“政府工作报
-
环球动态:电动工具
1、1895年。2、德国泛音制造出世界上第一台直流电钻。本文到此结束,希望对大家有所帮助。
-
环球时讯:关于第十三届中国中学生击剑锦标赛复赛的通知
中国中学生体育协会会员单位:经研判全国新冠疫情形势,中国中学生体育协会计划于2023年3月30日至4月2日有序推进第十三届中国中学生击剑锦标赛
-
环球今亮点!地震后松毛虫大规模入侵土耳其 密恐症请谨慎点击
原标题:密密麻麻……土耳其震后,被这种虫大规模“入侵大地震过后,土耳其舍尔纳克省遭遇前所未有的松毛虫侵袭。数以百万计的松毛虫爬满庄稼
-
天天观速讯丨含有绿字意思的成语
含有绿字意思的成语有青翠欲滴、绿草如茵、郁郁葱葱、绿意盎然、青山绿水、碧波荡漾、暗绿稀红、愁红惨绿、穿红着绿、惨绿愁红、惨绿年华、惨
-
全球快看点丨银保监会:进一步做好联合授信试点工作
新华社北京3月6日电(记者姚均芳、李延霞)中国银保监会日前发布《关于进一步做好联合授信试点工作的通知》,引导银行业金融机构进一步加强授信
-
天天新消息丨1米8的床四件套大小_1 8米床四件套尺寸
1、北美四件套件的规格:是标准通用国际标准的规格,比如:适用1 5米床的规格为床单式床单245*245cm,被套
-
【全球独家】海天盛筵_说一说海天盛筵的简介
夏弥来为大家解答以下的问题,海天盛筵,说一说海天盛筵的简介,现在让我们一起来看看吧!1、海天盛筵事件。2、指在2013年
-
观点:网游小说主角素独行侠
《网游之复活》,作者:网络黑侠;《琥珀之剑》,作者:绯炎;《网游之天地》,作者:隐为者;《网游之血色梦游》,作者:孤僻男生;《网游之
-
环球即时:水调歌头苏轼_说一说水调歌头苏轼的简介
夏弥来为大家解答以下的问题,水调歌头苏轼,说一说水调歌头苏轼的简介,现在让我们一起来看看吧!1、《水调歌头·明月几时有》
-
即时:从公司理财的角度看_公司理财的环境从宏观和微观角度分析包括哪些内容 很急 请回答
今天小编肥嘟来为大家解答以上的问题。从公司理财的角度看,公司理财的环境从宏观和微观角度分析包括哪些内容很急请回答相信很多小伙伴还不知