k8s操作手册资料_第1页
k8s操作手册资料_第2页
k8s操作手册资料_第3页
k8s操作手册资料_第4页
k8s操作手册资料_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

k8s操作手册

前言:

1.蓝色字体表示命令行命令,止式执行时不要复制前面的#号,#号只是提示应该使用root

权限操作

2.绿色字体表示注释,有时注释太多就不用绿色表示了

3.注意:本文档的所有操作请先在在测环境进行实践,请不要直接在真实的服务器中操作!

版权声明:

本文档以开源的形式发布,所有条款如下:

1.无担保:作者不保证文档内容的准确无误,亦不承担由于使用此文档所导致的任何后果

2.自由使用:任何人可以出于任何目的而自由地阅读/槌接/打印/转教/引用/出创作此文档,无需任何附加条件

若您阅读/链接/打印/转载/引用/再创作本文档,则说明接受以上2个条款。

作者:李茂福

更新日期:2023-02-23

第。章、K8s集群搭建准备工作

①k8s对系统要求,linux内核在3.10及以上,服务器规格2核cpu,2G内存及以上,可以

装在虚拟机里,也可以装在实体机上

②规划主机名及ip

k8s的服务器使用固定ip地址,配置主机名,要求能解析相应的主机名(master结点)到对

应的ip地址,可以使用内网集群的dns服务器或写入/etc/host$文件里。如:

主机名ip地址

k8s-masterl1

k8s-master22

k8s-master33

k8s-node011

k8s-node022

规划Pod网络:/16

规划Service网络:/16

#hostnamectlset-hostnamek8s-masterl#设置主机名称

#cat»/etc/hosts«EOF

1k8s-masterl

2k8s-master2

3k8s-master3

EOF

③关闭seLinux,若不会配置selinux,则可关闭

#sed-i7ASELINUX/s/enforcing/disabled/'/etc/selinux/config

#setenforce0

®ulimit设置

#cat»vi/etc/security/limits.conf«EOF

*softnofile10C0000

*hardnofile10C0000

*softcoreuniiirited

*hardcoreuniinited

*softmemlockuniimited

*softmemlockuniimited

*softnproc40960

*hardnproc40960

EOF

#要重启系统才生效

⑤关闭swap

#cat»/etc/sysctl.conf«EOF

vm.swappiness=0

EOF

#swapon-s#查看swap挂载情况,如果有swap挂载,则需要去/etc/fstab里取消挂载

@NTP服务需要开启,使用集群内的ntpserver,确保集群时间的一致性

⑦设置网络参数

#cat»/etc/sysctl.conf«EOF

net.bridge,bridge-nf-eall-ip6tables=1

net.bridge,bridge-nf-cal1-iptables=1

net.bridge.bridge-nf-cal1-arptables=1

net.ipv4.ip_forward=1

EOF

#前3行表示bridge设备在二层转发时也去调用iptables配置的三层规则(包含conntrack)

#sysctl-p#加载配置

⑧防火墙放行端口

TCP:6443,2379,2380.10250~10252,30000~32767

UDP:8285,8472

★最好是允许整个k8s的node网段以及pod网段入站

#firewall-cmd-add-rich-rule='rulefamily="ipv4"sourceaddress="/24"accept'

#firewall-cmd--add-rich-rule='rulefamily="ipv4"sourceaddress="/16"accept'

#firewall-cmd-runtime-to-permanent

★如果有硬件交换机做acl或基于云的安全组做访问控制,则可关闭服务器上的防火墙软件

#firewall-cmd--list-all

⑨加载ipvs模块

#cat»/etc/rc.d/rc.local«EOF

modprobe-ip_vs

modprobe-iD_vs_sh

modprobe-ipvsrr

modprobe-ip_vs_wrr

modprobe-nf_conntrack_ipv4

EOF

#chmod+x/etc/rc.d/rc.local#添加可执行权限

⑩安装docker-ce并设置为systemd去管理服务

#yuminstalldocker-cedocker-ce-clicontainerd.io-y

[root@localhost-]#yuminstalldocker-cedocker-ce-clicontainerd.io

#systemctlenabledocker

#systemctlstartdocker

#dockerinfo

★配置docker服务使用systend去管理(以及信任本地镜像仓库)

#vi/etc/docker/daemon.json

{

“data-root”:*/docker_data*,

*registry-mirrors*:[”:5443”],

“insecure-registries":["cofTee.com:5443”],

*exec-opts*:[*native.cgroupdriver=systemd*]

#保存

#mkdir-p/etc/systemd/system/docker.service.d

#dockerinfo

NativeOverlayDiff:true

LoggingDriver:json-file

©docker会修改防火墙规则,导致pod网络不通

#vi/usr/lib/systemd/system/dccker.service

在[Service]下的ExecStart=/usr/bin/dockerd-Hfd:〃这行下面添加一行:

ExecStartPost=/usr/sbin/iptables-PFORWARDACCEPT

#保存,

#systemctldaemon-reload

#systemctlrestartdocker

★默认还加了DOCKER-USER这个forward链,默认全部return,导致不通,也得放开,具体

的看下iptables规则)

#cat»/etc/rc.d/rc.local«EOF

sleep60

/usr/sbin/iptables-IDOCKER1-s/0-jACCEPT

/usr/sbin/iptables-1DOCKER-USER1-s/0-jACCEPT

/usr/sbin/iptables-IDOCKER-ISOLATION-STAGE-11-sO.O.O.O/O-jACCEPT

/usr/sbin/iptables-IDOCKER-ISOLATION-STAGE-21-sO.O.O.O/O-jACCEPT

EOF

★最后重启服务器

#init6

#Ismod|grep-eip_vs-enf_conntrack#检查是否已加载ip_vs模块

[root0k8s-master1Ismod|grep-eip_vs-enf_conntrack

ip_vs_wrr126970

ip_vs_rr126000

ip_vs_sh126880

ip_vs1454586ip_vs_rr,ip_vs_sh,ip_vs_wrr

nf_conntrack_netlink363960

nf_conntrack_ipv6189357

nf_defrag_ipv6351041nf_conntrack_ipv6

nf_conntrack_ipv4150537

nf_defrag_ipv4127291nf_conntrack_ipv4

nfconntrack1392649ipvs,nfnatrnfnatipv4rnfnatipv6,xtconntrac

ntracknetlink,nfconntrackipv4,nfconntrackipv6

nfnetlink145193ip_set,nf_conntrack_netlink

libcrc32c126444xfs,ip_vs,nf_nat,nf_conntrack

第1章、master结点安装k8s组件

k8s的组件有部分是以二进制文件形式安装在服务器上的,如kubectl,kubeadm,

kubelet,kubernets-cni之类的,k8s官方已打包为rpm软件包,可配置国内的yum源去安装,

而其他的组件则做成了docker镜像包了,先安装二进制rpm软件包,再dockerpull下较当

前k8s版本需要的镜像包

①安装k8s二进制组件

#cat»/etc/yum.repos.d/k8s-ali.repo«EOF

[k8s-ali]

name=k8s-a)i

baseurl=

enabled=l

gpgcheck=O

EOF

#或者使用google的源:

#cat»/etc/yum.repos.d/k8s-google.repo«EOF

[k8s-google]

name=k8s-goog1e

baseur1=

enabled=l

gpgcheck=O

EOF

#yuminstallkubeletkubeadmkubectlkubernetes-cni-y#安装k8s二进制组件

#systemctlenablekubelet

#systemctlstartkubelet

②k8s集群初始化

#kubeadmversion#先查看k8s版本

(rooc9k8s-mA9terl-]IIrubeadmversion__________

kubeadmversion:aversion.Info(Major:Minor:"19",GitVersion:QB^SfirGitConmit:"d360454

GoVersion:・g:>l・15.2・,C。叩iler:"gc..Platform:・linux/a»d64.}

#看GitVersion:"vl.l9.4"

#kubeadmconfigimageslist#查看k8s其他组件的docker镜像名,默认用

k8s.gcr.io/的镜像源地址

k8s.ger.io/kube-apiserver:v1.19.4

k8s.ger.io/kube-controllei-manager:vl.19.4

k8s.ger.io/kube-scheduler:vl.19.4

k8s.ger.io/kube-proxy:vl.19.4

k8s.ger.io/pause:3.2

k8s.ger.io/etcd:3.4.13-0

k8s.ger.io/coredns:1.7.0

#可以先下载以上7个镜像,传到每台k8s服务器上,再dockerload导入,或者使用内部registry

仓库

★直接使用命令行方式初始化集群:(以下是非HA模式的master初始化,如果要部署高

可用集群,则参考第3章)

kubeadminit-kubernetes-version=vl.l9.4\

-apiserver-advertise-address=1\#apiserver地it

-pod-network-cidr=/16\#pod容器网段

-service-cidr=/16\#service网段,即clusterip网段

-ignore-preflight-errors=Swap#忽略swap未关闭而导致的检查错误

还可使用以下参数指定使用的镜像源:(指定为集群内部的docker镜像源地址,要提前在

docker的daemon.json文件里配置信任)

-image-repository=":5443/k8s"

★使用配置文件方式去初始化集群(和上面命令行方式二选一)

#kubeadmcontigprintinit-defcults>/etc/kubeadm-init.yaml#榆出初始化配置文件,并编辑

#vi/etc/kubeadm-init.yaml

apiVersion:kubeadm.k8s.ic/vlbeta2

boolstrapTokens:

-groups:

-system:bootstrappers:kubeadm:defau1t-node-token

token:abedef.abedef

ttl:24h0m0s

usages:

-signing

-authentication

kind:InitConfiguration

localAPIEndpoint:

advertiseAddress:10.99.1.51

bindPort:6443

nodeRegistration:

criSocket:/var/run/dockershim.sock

name:k8s-masterl

taints:

:-effect:NoSchcdulc

key:node-role,kubernetes.io/master

apiServer:

timeoutForControlPlane:4m0s

apiVersion:kubeadm.k8s.ic/vlbeta2

certificatesDir:/etc/kubernetes/pki

clusterName:kubernetes

controllerManager:{}

dns:

type:CoreDNS

etcd:

local:

dataDir:/var/1ib/etcd

imageRepository:cof-lee.com:5443/k8s

kind:ClusterConfiguration

kubernetesVersion:vl.19.4

networking:

dnsDomain:cluster,local

serviceSubnet:10.7.0.0/16

podSubnct:10.244.0.0/16

scheduler:{}

apiVersion:kubelet.config.k8s.io/vlbetal

kind:KubeletConfiguration

eg•oupDri\er:systemd

faiISwapOn:False

#保存,(修改参数及新增最后5行)

#kubeadmconfigimageslist-config/etc/kubeadm-init.yaml#查看需要的镜像

cof-lee.com:5443/k8s/kube-apiserver:v1.19.4

cof-lee.com:5443/k8s/kube-controller-manager:vl.19.4

cof-lee.com:5443/k8s/kube-scheduler:vl.19.4

cof-lee.com:5443/k8s/kube-proxy:vl.19.4

cof-lee.com:5443/k8s/pause:3.2

cof-lee.com:5443/k8s/eted:3.4.13-0

#叮见镜像名已由默认的k8s.g”io/换成了配置文件里指定的docker镜像源

#kubeadminit-config/e:c/kubeadm-init.yaml#初始化集群

Tostartusingyourcluster,youneedtorunthefollowingasaregularuser:

mkdir-pSHOME/.kube

sudocp-i/etc/kubernetes/admin.confSHOME/.ktibe/config

sudochown$(id-u):$(id-g)$HOME/.kube/config

Youshouldnowdeployapodnetworktothecluster.

RunMk\ibcc^lapply-£[podnctwork].yamlRwx^honoo£theoptionslisted:

https://kubernetes・io/docs/concepts/cluster-administration/addons/

Thenyoucanjoinanynumberofworkernodesbyrunningthefollowingoneachasroot:

pcubeadmjoin10.99.1.51:6443--tok©n27g2rz.fel9tsn7e6oyt8un\

|—discov❷ry-tok❷n-ca-《❷rF-qashsha256:a2818d9ac38a6bba❷£4220《1498065658f8ad2bo439161

当出现YourKubernetescontro-planehasinitializedsuccessfully!这行时说明初始化k8s成功了

记住最后2行命令,是用来让node结点加入集群的命令(含token)

③k8s认证文件.kube/config

在刚刚安装好的master结点上有操作整个k8s集群的认证文件/etc/kubernetes/admin.conf

把它复制到需要使用kubectl命令的节点上的$1101\/^/.1<此0/目录下并命令为config即可

[root8k8s-master1,*]f

[root0k8s-master111/etc/kubernetes/admin.conf

-rw---------.1rootroot5562Apr3006:45/etc/kubernetes/admin.conf

(root@k8s-masterl-]#mkdir-/.kube

[root@k8s-master1*]#cp/etc/kubernetes/admin.conf*/.kube/config

#mkdir~/.kube

#cp/etc/kubernetes/admin.conf~/.kube/config

[root6k8s-master1*]*

NAMESPACENAMEREAD:tSTATUSRESTARTSAGE

kube-systemcoredns-67bd7b9595-5npsn0/1Ponding06m23s

kube-systemcoredns-67bd7b9595-kkszl0/1Pending06m23s

kube-systemetcd-k8s-masterl-1/1Running06m38s

kube-systemkube-apiserver-k8s-masterl1/1Running06m38s

kube-systemkube-controller-manager-k8s-masterl1/1Running06m386

kube-systemkube-proxy-rssd71/1Running06m23s

kube-systemkubo-schGduler-k8s-mastorl1/1Running06m38s

如果有2个coredns的pod未启动就绪,因为pod网络组件还未部署,部署后再查看,如果

还未用动,则可能是网络不通,防火墙要放通pod容器网段入站。

©service使用ipvs模式

#kubectleditcmkube-proxy-nkube-system#编辑confgMap

找至ljkind:KubeProxyConfiguration这行往下第2行的mode:在""写入ipvs,保存退出

42kind:KubeProxyConfiguration

43metricsBindAddress:""

44mode:Mipvs|j

45nodePortAddresses:null

46oomScoreAdj:null

(前提是在准备工作时已加载ipvs内核模块)

再删除kube-proxy的所有pod(即重启这些pod)

#kubectlgetpod-nkube-system|grepkube-proxy#仓看名为kube-proxy*:J{Jpod

[root@k8s-masterl~】

kube-proxy-rssd71/1Running01

#kubectldeletepodkube-proxy-rssd7-nkube-system#册」除pod

开启了ipvs模式的k8s结点上ipadd会看到名为kube-ipvsO的接口名

voxxdXX.ULUX.DVD1口X.D1.DX.口

4:dummy。:<BROADCAST/NOARP>mtu1500qdiscnoopstateDO

link/etherle:03:Qd:cf:df:59brdff:ff:ff:ff

:IWHWSSB:<BROAD(AST,NOARP>mtu1500qdiscnoopstat

link/etherda:a4::9:9e:ac:78brdff:ff:ff:ff

inet0/32scopeglobalkube-ipvsO

valid_lftforexerpreferred_lftforever

inet/32icopeglobalkube-ipvsO

vaiid_ltttoreverpreferred_lftforever

⑤部署flannel网络插件

flannel源码地址:

flannel使得跨主机的Pod之间能通信,底层实现是使用了vxlan

#wget

#先下载flannel插件的k8s部署yml文件

#vikube-flanneLyml

#将里面的net-conf.json下面的Network网段改为规划的pod网段

Ii.

1263nct-conf.json:|

127i{-------------------------

128"Network":"/16"

1295--•■•Backend":4

130卜•丁•"Type":"vxlan"

131\\}

^■L-}

1QQ一

#默认使用的docker镜像是quay.io/coreos/的仓库,可改为自己集群的docker仓库

168$-name:install-cni

169image:quay,io/coreos/flannel:vO.13.0

170command:

171-cp

172args:

173--f

174-/etc/kube-flannel/cni-conf.json

175-/etc/cni/net.d/10-flannel.conflist

176volumeMounts:

177-name:cni

178mountPath:/etc/cni/net.d

179-name:flannel-cfg

180mountPath:/etc/kube-flannel/

181containers:

182i-name:kube-flannel

183image:quay,io/coreos/flannel:vO.13.0

184command:

保存,退出

#kubectlapply-fkube-flannel.yml#应用flannel配置

[root®k8s-master1kubectlapply-fkube-flannel.yml

podsecuritypolicy.policy/psp.flannel.unprivilegedcreated

clusterrole.rbac.authorization.k8s.io/flannelcreated

clusterrolebinding.rbac.authorization.k8s.io/flannelcreated

serviceaccount/flannelcreated

configmap/kube-flannel-cfgcreated

daemonset.apps/kube-flannel-ds|created|

如果pod启动失败了,查看日志

#kubectllogskube-flannel-ds-24tfm-nkube-system

1043011:16:34.5059521main.go:518]DeterminingIPaddressofdefaultinterface

E043011:16:34.5060621main.go:204]Failedtofindanyvalidinterfacetouse:failedto

getdefaultinterface:Unabletofinddefaultroute

原因是没有找到有效的网卡,因为默认没有在kube-flannel.yml指定vxlan的网卡,所以它根

据iprouteshow去查找defaultvia这行的网卡(有默认路由的网络接口),但我们测试环境

的服务器没有配置网关,所以它找不到默认路由,导致flannel启动失败

110申"plugins":[

111■{

112"type":"flannel1,,

1136"delegateR:{

114"hairpinM^de”:true,

115"isDcfaultGatcwayl":true

1161

解决方法是给服务加个网关(默认路由)或者在kube-flannel.yml里指定vxlan绑定的网K设

备(不建议直接绑定网络接口名,因为不同的服务器接口名不太一样,可匹配ip网段所在

的网络接口)

#kubectldelete-fkube-flannel.yml#先删除III的部署pod

#再在kube-flannel.yml部署配置文件里的-/opt/bin/flanneld下面的

args:这行下面再添加一行配置--iface-regex=10.99.1.*匹配要通信的ip网段

I--2一

X8

13-name:kube-flannel

A8image::5443/k8s/flannel:v0.13.0

XI84

185"command:

A:/gpt/bin/flanneld

±186

8

17

188-----ip-masq

±8

T9-----kube-subnet-mgr

1cI-----iface-regex=10.取L*

1八

#最后重:新部署flannel的deployment文件

#kubectlapply-fkube-flannel.yml

[root@k8s-masterl*]fkubectlgetpod-A

NAMESPACENAMEREADYSTATUSRESTARTSAGE

kube-systemcoredns-67bd7b9595-5npsn0/lRunning049m

kube-systemcoredns-67bd7b9595-kkszl0/lRunning04

kube-systemetcd-k8s-masterll/lRunning049m

kube-systemkube-apiserver-k8s-masterll/lRunning049m

kube-systemkuba-ccn七rc】lar-mAnagar-kHa-mmarlRunning-049m

kxibe-systemJI・—Jo3ml£

----------------

#可见flannel的pod启动了

#ip-dlinkshowflannel.l#查看vxlan信息,默认使用8472/udp端口

(root9k8s-masterl-*]#ip-dlinkshowflannel.1

6:flannel.l:<BROADCASTrMULTICAST,UP,LOWER_UP>mtu1450qdiscnoqueuestateUNKNOWN

:ff:ff:ff:ffproniscuity0

8t1■山小-report00dstport8472nolearningageing

oesumrxaddrgenmodeeui64nimtxqueues1numrxqueues1gso_nax_size65536gso_max_seg:

第2章、Node结点安装k8s组件并加入集群

node结点同master结点一样也要做准备工作,都是第0章的内容

准备工作做好后,安装k8s二进制包

#yuminstallkubeletkubeadmkubectlkubernetes-cni-y#安装k8s.二进制组件

#systemctlenablekubelet

#systemctlstartkubelet

再加入K8S集群(使用安装第一个k8s的master结点时的最后2行命令kubeadmjoinxxx)

不过这命令的token默认是2小时有效期,可重新生成token再去node结点上执行

masteC结点#kubeadmtokengenerate#重新生成token,下面这•半字符

ka8k02.9f2uowba7j21qv0g

masterl结点#kubeadmtokencreateka8k02.9f2uowba7j21qv0g-print-join-command

#生成加入集群的命令

(root!k8s-mastorl*]0卜卷

“043010:24:01.1068563S70Suonnon.go:148]WARNINGzcouldnotobtainAbindAddzossforthoAPXSorvorznodo

faultroutosfoundin"/proc/not/rouzo"or*/proc/n®t/ipvS-routo";using:0.0.0.0

“043010:24:01.2S84423S70Sconfigiot.go:348]WARNING:kuboadmcannotvalidatoconponontconfigsforAPIgrou

p«Ikubolot.confiq.k8c.iokubQproxy.confiq.kBs,io)

Ikuboactaijoin10.99.1.51:6443—tokonka8k02.9f2uowba?j21qv0g—discovory-tokon-ca-cort-hashsha2S6:a2818d9a

|c38a6bba«f4220c849806S6S8f8ad2b04391501220b«3«11006c0f97

kroot・k8ig-asC0r1~】f■

再复制(kubeadmjoinxxxxx)命令到node结点上执行:

node结点执行#kubeadmjoin1039.1.51:5443-xokenka8k02.9f2uowba7j2iqv0g\

••discovery-token-cacert-hashSha256:a2818d9ac38a6bbaef4220cf8ad2bbe3ell006c0f97

出现:Thisnodehasjoinedthecluster:这句提示说明加入成功,再去master结点上查看

[root@k8s-masterlkubectlgetnode#杳看集聚的所有结点

NAMESTATUSROLESAGEVERSION

k8s-masterlReadymaster3h49mvl.19.4

k8s-node01Ready<ncne>16svl.19.4#刚刚加入集群的node结点

★将node结点移出k8s集群

master#kubectltaintnode给点名keyrm:NoExecute也先打上污点,驱逐pod

等几分钟,确认目标node结点上没有工作pod运行后,再删除

master结点上#kubectldeletenodes结点、名#将目标结点从集机里删除

node结点上#kubeadmreset#node结点上重置kubeadm配置

第3章、K8s高可用集群搭建

前面第1章只装了一台master结点,如果它出故障了,则整个k8s集群都不可用了,

需要部署至少3台master结点,准备工作一样都同第0章,只是还要规划一个vip(虚拟ip)

在master的集群初始化这步需要指定control-plane-endpoint地力上为规戈ij的vip,前端的vip

可以使用任何负载工具软件,反向代理到后端的每台master结点的6443/tcp端口即可。

高可用集群拓扑图:

反向转发到

1:6443master1

客户送访问

4:6443

反向转发到

2:6443

VIP设备:监听6449tcp

vip:4

VIP设备本身可有多台,master2

反向转发到

虚拟出一个vip来

3:6443

★先配置HA高可用的反向代理

本例中vip为4(三台masterip为1~53)使用haproxy做反向代理

frontendk8s_api_tcp_6443

bind*:6443

modetcp

default_backendmy_k8s_6443

backendmy_k8s_6443

modetcp

balanceroundrobin

serversi1:6443checkweight1inter2000rise2fall2

servers22:6443checkweight1inter2000rise2fall2

servers33:6443checkweight1inter2000rise2fall2

#如果vip设备就在这3台master结点上,则监听的端口不能为6443,否则冲突了,可改为

其他端口号

★先安装masterl

★使用命令行方式初始化集群

kubeadminit-kubernetes-version=vl.l9.4\

--apiserver-advertise-address=1\#apiserver十也址,masterl的nodeip

--pod-network-cidr=/16\#pod容器网段

-service-cidr=/16\#service网段,即clusterip网段

-image-repository=":5443/k8s"\#指定镜像源

-control-plane-endpoint=4:6443\#指定控制面板vip与端口号

-ignore-preflight-errors=Swap\#忽略swap未关闭而导致的检瓷错误

-upload-certs#在后续执行加入节点时自动分发同步证巾

文件

★使用配置文件方式去初始化集群(和上面命令行方式二选一)

#kubeadmconfigprintinit-defcults>/etc/kubeadm-init.yaml#输出初始化配置文件并编辑

#vi/etc/kubeadm-init.yaml

apiVersion:kubeadm.k8s.ic/vlbeta2

bootstrapTokens:

-groups:

-system:bootstrappers:kubeadm:default-node-token

token:abcdef.abcdef

111:24h0m0s

usages:

-signing

-authenlication

kind:InitConfiguration

localAPIEndpoint:

advertiseAddress:10.99.1.51

bindPort:6443

nodeRegistration:

criSocket:/var/run/dockershim.sock

name:k8s-masterl

taints:

-effect:NoSchedule

key:node-role,kubernetes.io/master

apiServer:

timenutForContro1P1ane:4m0s

apiVersion:kubeadm.k8s.ic/vlbeta2

certificatesDir:/etc/kubernetes/pki

clusterName:kubernetes

contolFUanc:dpoint.10.99.1.54;0443"

conlro11erManager:(}

dns:

type:CoreDNS

ctcd:

local:

dataDir:/var/1ib/etcd

imageRepository:cof-lee.com:5443/k8s

kind:ClustcrConfiguration

kubernetesVersion:vl.19.4

networking:

dnsDomain:cluster,local

serviceSubnet:10.7.0.0/16

podSubnet:10.244.0.0/16

scheduler:{}

apiVersion:kubelet.config.k8s.io/vlbetal

kind:KubeletConfiguraiion

cgroupDriver:systemd

failSwapOn:False

#保存

#kubeadmconfigimageslist-config/etc/kubeadm-init.yaml#杳行需'法的镜像

#kubeadminit--config/e:c/kubeadm-init.yaml--upload-cels#初始化集群

KunKuoectiapply-tipounetworKj.yami-witnoneortneoptionslistedat:

hl【ps://kubpmeles.io/docs/concepts/cluster-adminislration/addons/

Youcannowjoinanynumberofthecontrol-planenoderunningthefollowingcommandoneachasroot:

liscoverjr-token-ca-cert-hashsha.

-control-plane--certificate-key9b77643809b701522a61c109d42d«

Asasjfetujrd,uploaded-certswillbedeletedintwohours;Ifnecessary»youcanuse

Mkubeadminitphaseupload-certs-upload-certsMtoreloadcertsafterward.

Thenyoucanjoinanynumberofworkernodesbyrunningthefollowingoneachasroot:

kubeadmjoin4:6443—tokenabedef.0123456789abcdef\

--discoverj^token-ca-cert-hashsha256:63b5f34842ec20dbl2fl9f6f4ca535b03€498e95842b97b452a04f9dc94bll51

Node结点加入集群时执行的命令

kubeadmjoin4:6443-tokenabcdef.abcdef\

-discovery-token-wcert-hashsha256:63b5f34842ec2Odbl2fl9f6f4ca535bO3e498e95842b97b452aO4f9dc94bU51\

-control-plane--certificate-key9b776438>J9b701522a61cl09d42dcclb93edcd5a2e5d0cbbc0e619

kubeadmjoin4:6443-tokenabcdef.abcdef\

-discovery-token-ca-cert-hashsha256:63b5f34842ec20dbl2fl9f6f4ca535b03e498e95842b97b452a04f9dc94bll51

#mkdir~/.kube

#cp/etc/kubernetes/admin.conf~/.kube/config

★再参考第一章的以下2步:

©service使用ipvs模式

⑤部署flannel网络插件

完成以上配置,再将master2,master3加入集群

#如果执行加入命令时提示certificate-key过期了,执行以下命令更新:

#kubeadminitphaseupload-certs-upload-certs

W050812:00:11.26548839063configset.go:348]WARNING:kubeadmcannot

nfig.k8s.iokubeproxy.config.k8s.io]

[upload-certs]StoringthecertificatesinSecret"kubeadm-certs"inthe

[upload・certs]Usingcertificatekey:

■「rcctaicclhcL■

将新生成的certificatekey替换II」的

#kubectl-nkube-systemgetcmkubeadm-config-oyaml#杳看集群配置

★etcd的配置更新

第3个master加入集群后,其etcd的配置是有3台成员结点,而前面的master!上面只有

一台的信息,ma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论