当前位置:首页 >> 清理设备
清理设备

「云原生」K8S master节点更换IP以及master高可用故障模拟次测试

时间:2023/05/25 12:17:27 来源:清理设备

引擎还是containerd。

sed -i 's#SystemdCgroup = false#SystemdCgroup = true#g' /etc/containerd/config.toml# 应用所有变更后,重新启动containerdsystemctl restart containerd4、开始配置kubeadm,kubelet和kubectl# 不指定旧版本就是同类型旧版本,现阶段同类型版就是1.25.4yum install -y kubelet-1.25.4 kubeadm-1.25.4 kubectl-1.25.4 ;还有disableexcludes=kubernetes# disableexcludes=kubernetes:禁掉除了这个kubernetes之外的别的仓库# 增设为筹拍自启并现在赶紧启动公共服务 ;还有now:赶紧启动公共服务systemctl enable ;还有now kubelet# 弗示长时间,这里只能等待一段短时间再弗示公共服务长时间,启动会有点更慢systemctl status kubelet# 弗示旧版本kubectl versionyum info kubeadm5、master链表加入k8s坦克部队# 证如果到期了,可以用作下面指令分解成新证书上传,这里会打印单单certificate key,中会间会用到CERT_KEY=人口为120人kubeadm init phase upload-certs ;还有upload-certs|tail -1人口为120人# 其中会 ;还有ttl=0 指单单分解成的 token 永不受控. 如果不带 ;还有ttl 参数, 那么默认适当短时间为24两星期. 在24两星期内, 可以无生产量限制掺入 worker.echo 人口为120人kubeadm token create ;还有print-join-command ;还有ttl=0人口为120人 " ;还有control-plane ;还有certificate-key $CERT_KEY ;还有v=5"# 拿到上面打印的指令在只能掺入的链表上执行# ;还有control-plane 标志通报 kubeadm join 创建一个原先压制平面。加入master才会加这个标记# ;还有certificate-key ... 将避免从坦克部队中会的 kubeadm-certs Secret 下载压制平面证书并用作给定的身份验证进行档案资料。这里的值就是上面这个指令(kubeadm init phase upload-certs ;还有upload-certs)打印单单的key。mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

弗示链表

kubectl get nodeskubectl get nodes -owide 三、换上 K8S master 链表 IP(master 很高举例来说)1)链表接收者

hostname

IP

链表类型

local-168-182-110,cluster-endpoint

192.168.182.110,VIP:192.168.182.220

master

local-168-182-111

192.168.182.111

node

local-168-182-112

192.168.182.112

node

local-168-182-113

192.168.182.112

master backup1

local-168-182-130

192.168.182.112

master backup2

2)master链表配置keepalived1、配置 keepalivedyum install keepalived -y2、配有 keepalived

master

cat> /etc/keepalived/keepalived.conf << EOFglobal_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from fage@qq.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id NGINX_MASTER}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 priority 100 # 优再级,备公共服务器增设 90 advert_int 1 # 指定VRRP 心跳包通告间隔短时间,默认1秒 authentication { auth_type PASS auth_pass 1111 } # 虚拟IP virtual_ipaddress { 192.168.182.220/24 } track_script { check_nginx }}EOF

master backup1

cat> /etc/keepalived/keepalived.conf << EOFglobal_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from fage@qq.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id NGINX_MASTER}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 priority 90 # 优再级,备公共服务器增设 90 advert_int 1 # 指定VRRP 心跳包通告间隔短时间,默认1秒 authentication { auth_type PASS auth_pass 1111 } # 虚拟IP virtual_ipaddress { 192.168.182.220/24 } track_script { check_nginx }}EOF

master backup2

cat> /etc/keepalived/keepalived.conf << EOFglobal_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from fage@qq.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id NGINX_MASTER}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 priority 80 # 优再级,备公共服务器增设 80 advert_int 1 # 指定VRRP 心跳包通告间隔短时间,默认1秒 authentication { auth_type PASS auth_pass 1111 } # 虚拟IP virtual_ipaddress { 192.168.182.220/24 } track_script { check_nginx }}EOF3、启动并增设筹拍启动systemctl daemon-reloadsystemctl restart keepalived && systemctl enable keepalived && systemctl status keepalived# 弗示ip a 3)配有hosts192.168.182.110 local-168-182-110192.168.182.111 local-168-182-111192.168.182.112 local-168-182-112192.168.182.113 local-168-182-113# VIP192.168.182.220 cluster-endpoint4)变更配有

到K8S master链表/etc/kubernetes/manifests索引下,我们主要变更etcd.yaml,kube-apiserver.yaml这两个配有文件。

# 这里用作sed批量取而代之cd /etc/kubernetes/# 再查grep -rn '192.168.182' *# 取而代之ipsed -i 's/192.168.182.110/192.168.182.220/g' 人口为120人grep -rl ./人口为120人# 取而代之域名sed -i 's/local-168-182-110/cluster-endpoint/g' 人口为120人grep -rl ./人口为120人# 定期检查grep -r '192.168.182' * 5)分解成原先admin用config文件cd /etc/kubernetesmv admin.conf admin.conf_bak# 用作如下指令分解成原先admin.confkubeadm init phase kubeconfig admin ;还有apiserver-advertise-address 192.168.182.220 # cluster-endpoint-》192.168.182.220sed -i 's/192.168.182.220/cluster-endpoint/g' admin.conf6)删除旧的证书,分解成新证书cd /etc/kubernetes/pki# 再备份mv apiserver.key apiserver.key.bakmv apiserver.crt apiserver.crt.bak# 用作如下指令分解成kubeadm init phase certs apiserver ;还有apiserver-advertise-address 192.168.182.220 ;还有apiserver-cert-extra-sans "192.168.182.220,cluster-endpoint"# ;还有apiserver-cert-extra-sans "192.168.182.220,cluster-endpoint":增设了这个,之后加入链表验证证书阶段就才会报错了。 7)重启docker或者containerd,kubeletsystemctl restart docker containerd kubelet# 弗示,可以注意到master链表现在已经起来了cd /etc/kuberneteskubectl get nodes ;还有kubeconfig=admin.conf# 变更配有,后续可以用作kubectl get nodes弗示K8S坦克部队长时间了cd /etc/kubernetescp admin.conf ~/.kube/configkubectl get nodes 8)弗示ETCD# 弗示etcd podkubectl get pods -n kube-system |grep etcd# 登录POD_NAME=人口为120人kubectl get pods -n kube-system |grep etcd|head -1|awk '{print $1}'人口为120人kubectl exec -it $POD_NAME -n kube-system ;还有 sh## 配有生态系统alias etcdctl='etcdctl ;还有endpoints= ;还有cacert=/etc/kubernetes/pki/etcd/ca.crt ;还有cert=/etc/kubernetes/pki/etcd/server.crt ;还有key=/etc/kubernetes/pki/etcd/server.key' ## 弗示 etcd 坦克部队核心成员列表etcdctl member list9)补救 node 链表 NotReady长时间1、从master链表拷贝ca.crt到node链表对应的索引scp /etc/kubernetes/pki/ca.crt local-168-182-111:/etc/kubernetes/pki/scp /etc/kubernetes/pki/ca.crt local-168-182-112:/etc/kubernetes/pki/2、变更node链表的kubelet.conf

把server: 变更为现在master链表的地址server:

sed -i 's/local-168-182-110/cluster-endpoint/g' /etc/kubernetes/kubelet.conf3、重启docker或者containerd,kubeletsystemctl restart docker containerd kubelet四、超载模式测试1)模拟VIP漂移# 将master链表上的keepalived 停掉systemctl stop keepalived

弗示链表接收者

kubectl get nodes

从上平面图可知VIP已经漂移到master backup1链表了,不阻碍坦克部队,再一完全恢复超载。

# 将master链表上的keepalived 启动systemctl start keepalived

【假设】master链表超载完全恢复后,VIP会从新漂移送回原再的master链表。

弗示链表接收者

kubectl get nodes 2)链表超载测试(多台master超载)

模拟master链表超载(手动筹拍)

# 筹拍192.168.182.110showdown -h now# 在192.168.182.113 backup master链表弗示坦克部队链表长时间kubectl get nodes

【假设】多台master超载,不阻碍坦克部队。

3)master链表超载模拟(3台master超载)

2、模拟master链表超载(手动筹拍)

# 筹拍192.168.182.113showdown -h now# 在192.168.182.130 backup master链表弗示坦克部队链表长时间kubectl get nodes

【错误】The connection to the server cluster-endpoint:6443 was refused - did you specify the right host or port?

发现两个master链表,挂了一个master链表是不应用的。原因:当两个master链表还是只能2个链表举例来说。只有大于2个master链表才而无须挂master链表,我们可以查一下而无须的器皿。会发现api-server的器皿一直在重启或者如此一来挂了,赌客也可以去弗示一下日志。stackoverflow正确

crictl ps 2>/dev/null

【建议】所以我们侦察多master很高举例来说链表生产量才会大于之和3,这样才能保证挂一个master链表,坦克部队才会受阻碍。

K8S master链表换上IP以及master很高举例来说超载模拟测试就再到这里,有任何疑问赞赏给我留言,后续会过后更新【云原生+大数据】系统性的篇名~

心肺复苏急救培训
手指早上起来僵硬是什么原因
徐州白癜风医院地址
广州哪里的男科比较好
广州男科哪家比较权威
相关阅读
股票市场提问:请问公司在万向财务公司一月份存款数额多少?利息收入是多少?请及...

投资者追问:劝问该公司在飞轮财务该公司一月份存款额度多少?利息收入是多少?劝及时会面时!董秘回答承德露露SZ000848:您好,该公司在飞轮财务有限该公司存款额度及利息收入...

给领导起程消息,为什么不要说“好的”,这是我见过最好的答案

兼职中当你接到或者主导致信的死讯,是不是只就会为了让“好的”就默默潜水? 才刚步入求职的小编也就会比如说地为了让“好的”,直到有结缘好心警告,给主导为了让切忌绝不会再说道“好的”,...

中国香港飞机引擎在南中国海上空失效322人生死存亡是因为燃油进水?

航空器涡轮引擎并一定会有被调小,还保持一致百分之74的的动力输出。他吓坏了。但是,此时他们早已一定会必要复飞,并不需要寻宝飞越。航空器总重200吨,他们能必要受困吗? 航空...

投资者提问:你好,请问贵公司在AI这块有无涉猎,有无相应的武技术储备,AI武技...

外资者提问:爱,不对贵母公司在AI这块不一定通晓,不一定相应的技术储备,AI技术应用这块不一定相应的规模化建设呢?董秘问到厦门信达SZ000701:您好,母公司信息科技领域...

也毕竟要么就是没时间,要么就是不愿意

我现在还时会在腾讯和QQ上醒天的,醒天的实例也多是网路上和非常少几个基本上的密友,之外是几个网路上,属于不冷不热,半生不熟的,其实醒天也就是几句客套的话。但是,不管是熟悉的还是陌生的醒友,我...