微服务 - 搭建k8s(kubeadm)模拟复杂的生产环境(下篇)

概述

在之前的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 的环境搭建完成了。

关键词:

5月国民经济多项指标出炉 城镇调查失业率出现小幅下降

6月15日,5月国民经济多项指标出炉。数据显示,5月份受疫情影响,消费业态承压明显,但同时,城镇调查失业率出现小幅下降,工业生产由降转

北京商报 2022-06-20

各行业工资单出炉!IT类最赚钱,还有这些钱景喜人

  中新经纬11月24日电 (张澍楠)虽说三百六十行,行行出状元,但行业之间的差距,仍然很大。究竟什么行业“最香”?被视为“高富帅”的金

2021-11-24

“狗咬人”事件当事人被撤职 多名干部被问责

  新华社郑州11月23日电(记者冯大鹏)在“狗咬人”舆情发酵后,23日晚,河南安阳通报了对涉“狗咬人”事件责任单位和责任人的处理决定。 

2021-11-24

北京朝阳区来广营华贸城7号院6号楼解除管控

  11月23日晚,朝阳区来广营地区清苑路第五社区华贸城7号院6号楼正式解除管控。  11月23日,华贸城7号院6号楼583户管控居民进行了第四

2021-11-24

大连市将4个中风险地区调整为低风险地区

  11月23日大连市新冠肺炎疫情防控总指挥部发布,大连市严格落实新冠肺炎疫情防控各项措施,至2021年11月23日24时,大连市庄河市城关街道

2021-11-24

云南哀牢山4名遇难地质队员遗体已移交其所在单位

  根据云南省普洱市哀牢山 "11·15 "联合指挥部通报,2021年11月23日21时50分,4名遇难人员遗体已移交其所在单位。 【编辑:叶攀】

2021-11-24

宁夏10年为农村创业妇女发放创业担保贷款超138亿元

  中新网银川11月23日电 (李佩珊 姚舒玲)“在宁夏,每6个农村妇女中就有1个接受过创业担保贷款项目的资金支持。”11月23日,宁夏妇联党

2021-11-24

5月国民经济多项指标出炉 城镇调查失业率出现小幅下降

6月15日,5月国民经济多项指标出炉。数据显示,5月份受疫情影响,消费业态承压明显,但同时,城镇调查失业率出现小幅下降,工业生产由降转

北京商报 2022-06-20

各行业工资单出炉!IT类最赚钱,还有这些钱景喜人

  中新经纬11月24日电 (张澍楠)虽说三百六十行,行行出状元,但行业之间的差距,仍然很大。究竟什么行业“最香”?被视为“高富帅”的金

2021-11-24

“狗咬人”事件当事人被撤职 多名干部被问责

  新华社郑州11月23日电(记者冯大鹏)在“狗咬人”舆情发酵后,23日晚,河南安阳通报了对涉“狗咬人”事件责任单位和责任人的处理决定。 

2021-11-24

云南哀牢山4名遇难地质队员遗体已移交其所在单位

  根据云南省普洱市哀牢山 "11·15 "联合指挥部通报,2021年11月23日21时50分,4名遇难人员遗体已移交其所在单位。 【编辑:叶攀】

2021-11-24

宁夏10年为农村创业妇女发放创业担保贷款超138亿元

  中新网银川11月23日电 (李佩珊 姚舒玲)“在宁夏,每6个农村妇女中就有1个接受过创业担保贷款项目的资金支持。”11月23日,宁夏妇联党

2021-11-24

第三届拉萨市旅游行业服务技能大赛决赛举行

  中新网拉萨11月23日电 (记者 冉文娟)第三届拉萨市旅游行业服务技能大赛决赛11月23日精彩举行。百余名选手经过层层选拔,经历初赛、网

2021-11-24

聚焦解决人兽冲突 东北虎豹国家公园启动专项行动

  中新网长春11月23日电 (郭佳 吴林锡)东北虎豹国家公园23日全面启动2021-2022年今冬明春清山清套·打击乱捕滥猎专项行动。该行动旨在

2021-11-24
x 广告
x 广告
x 广告

Copyright   2015-2022 北冰洋仓储网版权所有  备案号:沪ICP备2020036824号-3   联系邮箱:562 66 29@qq.com