安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

云原生K8Smaster节点更换IP以及master高可用故

4月12日 藏于心投稿
  一、前言
  根据小伙伴提的问题,这里专门出一篇文章分析master节点挂了不可用的场景分析,希望这篇文章对小伙伴有用;其实VIP的方案实现高可用,还有更可靠的方案,也是我们目前生成环境在使用的高可用方案,后面也会分享出来,请小伙伴耐心等待二、配置多个master节点
  如果直接部署单master或者多masterk8s环境,可以参考我这篇文章:云原生Kubernetes(k8s)最完整版环境部署(V1。24。1)
  1)节点信息
  hostname
  IP
  节点类型
  local168182110,clusterendpoint
  192。168。182。110,VIP:192。168。182。220
  master
  local168182111
  192。168。182。111
  node
  local168182112
  192。168。182。112
  node
  local168182113
  192。168。182。112
  masterbackup1
  local168182130
  192。168。182。112
  masterbackup21)安装docker或containerd配置yum源cdetcyum。repos。d;mvCentOSLinuxbakcentos7wgetOetcyum。repos。dCentOSBase。repohttp:mirrors。aliyun。comrepoCentos7。repocentos8wgetOetcyum。repos。dCentOSBase。repohttp:mirrors。aliyun。comrepoCentos8。repo安装yumconfigmanager配置工具yumyinstallyumutils设置yum源yumconfigmanageraddrepohttp:mirrors。aliyun。comdockercelinuxcentosdockerce。repo安装dockerce版本yuminstallydockerce启动systemctlstartdocker开机自启systemctlenabledocker查看版本号dockerversion查看版本具体信息dockerversionDocker镜像源设置修改文件etcdockerdaemon。json,没有这个文件就创建添加以下内容后,重启docker服务:catetcdockerdaemon。jsonEOF{registrymirrors:〔http:hubmirror。c。163。com〕}EOF加载systemctlreloaddocker查看systemctlstatusdockercontainerd2)安装kubeadm,kubelet和kubectl1、配置k8syum源catetcyum。repos。dkubernetes。repoEOF〔k8s〕namek8senabled1gpgcheck0baseurlhttps:mirrors。aliyun。comkubernetesyumreposkubernetesel7x8664EOF2、修改sandboximage镜像源导出默认配置,config。toml这个文件默认是不存在的containerdconfigdefaultetccontainerdconfig。tomlgrepsandboximageetccontainerdconfig。tomlsedisk8s。gcr。iopauseregistry。aliyuncs。comgooglecontainerspausegetccontainerdconfig。toml或者sedisregistry。k8s。iopauseregistry。aliyuncs。comgooglecontainerspausegetccontainerdconfig。toml检查grepsandboximageetccontainerdconfig。toml3、配置containerdcgroup驱动程序systemd
  kubernets自1。24。0后,就不再使用docker。shim,替换采用containerd作为容器运行时端点。因此需要安装containerd(在docker的基础下安装),上面安装docker的时候就自动安装了containerd了。这里的docker只是作为客户端而已。容器引擎还是containerd。sedisSystemdCgroupfalseSystemdCgrouptruegetccontainerdconfig。toml应用所有更改后,重新启动containerdsystemctlrestartcontainerd4、开始安装kubeadm,kubelet和kubectl不指定版本就是最新版本,当前最新版就是1。25。4yuminstallykubelet1。25。4kubeadm1。25。4kubectl1。25。4disableexcludeskubernetesdisableexcludeskubernetes:禁掉除了这个kubernetes之外的别的仓库设置为开机自启并现在立刻启动服务now:立刻启动服务systemctlenablenowkubelet查看状态,这里需要等待一段时间再查看服务状态,启动会有点慢systemctlstatuskubelet查看版本kubectlversionyuminfokubeadm5、master节点加入k8s集群证如果过期了,可以使用下面命令生成新证书上传,这里会打印出certificatekey,后面会用到CERTKEYkubeadminitphaseuploadcertsuploadcertstail1其中ttl0表示生成的token永不失效。如果不带ttl参数,那么默认有效时间为24小时。在24小时内,可以无数量限制添加worker。echokubeadmtokencreateprintjoincommandttl0controlplanecertificatekeyCERTKEYv5拿到上面打印的命令在需要添加的节点上执行controlplane标志通知kubeadmjoin创建一个新的控制平面。加入master必须加这个标记certificatekey。。。将导致从集群中的kubeadmcertsSecret下载控制平面证书并使用给定的密钥进行解密。这里的值就是上面这个命令(kubeadminitphaseuploadcertsuploadcerts)打印出的key。mkdirpHOME。kubesudocpietckubernetesadmin。confHOME。kubeconfigsudochown(idu):(idg)HOME。kubeconfig
  查看节点kubectlgetnodeskubectlgetnodesowide
  三、更换K8Smaster节点IP(master高可用)1)节点信息
  hostname
  IP
  节点类型
  local168182110,clusterendpoint
  192。168。182。110,VIP:192。168。182。220
  master
  local168182111
  192。168。182。111
  node
  local168182112
  192。168。182。112
  node
  local168182113
  192。168。182。112
  masterbackup1
  local168182130
  192。168。182。112
  masterbackup22)master节点安装keepalived1、安装keepalivedyuminstallkeepalivedy2、配置keepalived
  mastercatetckeepalivedkeepalived。confEOFglobaldefs{notificationemail{acassenfirewall。locfailoverfirewall。locsysadminfirewall。loc}notificationemailfromfageqq。comsmtpserver127。0。0。1smtpconnecttimeout30routeridNGINXMASTER}vrrpinstanceVI1{stateMASTERinterfaceens33virtualrouterid51VRRP路由ID实例,每个实例是唯一的priority100优先级,备服务器设置90advertint1指定VRRP心跳包通告间隔时间,默认1秒authentication{authtypePASSauthpass1111}虚拟IPvirtualipaddress{192。168。182。22024}trackscript{checknginx}}EOF
  masterbackup1catetckeepalivedkeepalived。confEOFglobaldefs{notificationemail{acassenfirewall。locfailoverfirewall。locsysadminfirewall。loc}notificationemailfromfageqq。comsmtpserver127。0。0。1smtpconnecttimeout30routeridNGINXMASTER}vrrpinstanceVI1{stateMASTERinterfaceens33virtualrouterid51VRRP路由ID实例,每个实例是唯一的priority90优先级,备服务器设置90advertint1指定VRRP心跳包通告间隔时间,默认1秒authentication{authtypePASSauthpass1111}虚拟IPvirtualipaddress{192。168。182。22024}trackscript{checknginx}}EOF
  masterbackup2catetckeepalivedkeepalived。confEOFglobaldefs{notificationemail{acassenfirewall。locfailoverfirewall。locsysadminfirewall。loc}notificationemailfromfageqq。comsmtpserver127。0。0。1smtpconnecttimeout30routeridNGINXMASTER}vrrpinstanceVI1{stateMASTERinterfaceens33virtualrouterid51VRRP路由ID实例,每个实例是唯一的priority80优先级,备服务器设置80advertint1指定VRRP心跳包通告间隔时间,默认1秒authentication{authtypePASSauthpass1111}虚拟IPvirtualipaddress{192。168。182。22024}trackscript{checknginx}}EOF3、启动并设置开机启动systemctldaemonreloadsystemctlrestartkeepalivedsystemctlenablekeepalivedsystemctlstatuskeepalived查看ipa
  3)配置hosts192。168。182。110local168182110192。168。182。111local168182111192。168。182。112local168182112192。168。182。113local168182113VIP192。168。182。220clusterendpoint4)修改配置
  到K8Smaster节点etckubernetesmanifests目录下,我们主要修改etcd。yaml,kubeapiserver。yaml这两个配置文件。这里使用sed批量替换cdetckubernetes先查greprn192。168。182替换ipsedis192。168。182。110192。168。182。220ggreprl。替换域名sedislocal168182110clusterendpointggreprl。检查grepr192。168。182
  5)生成新的admin用config文件cdetckubernetesmvadmin。confadmin。confbak使用如下命令生成新的admin。confkubeadminitphasekubeconfigadminapiserveradvertiseaddress192。168。182。220clusterendpoint》192。168。182。220sedis192。168。182。220clusterendpointgadmin。conf6)删除旧的证书,生成新证书cdetckubernetespki先备份mvapiserver。keyapiserver。key。bakmvapiserver。crtapiserver。crt。bak使用如下命令生成kubeadminitphasecertsapiserverapiserveradvertiseaddress192。168。182。220apiservercertextrasans192。168。182。220,clusterendpointapiservercertextrasans192。168。182。220,clusterendpoint:设置了这个,之后加入节点验证证书阶段就不会报错了。
  7)重启docker或者containerd,kubeletsystemctlrestartdockercontainerdkubelet查看,可以看到master节点现在已经起来了cdetckuberneteskubectlgetnodeskubeconfigadmin。conf修改配置,后续可以使用kubectlgetnodes查看K8S集群状态了cdetckubernetescpadmin。conf。kubeconfigkubectlgetnodes
  8)查看ETCD查看etcdpodkubectlgetpodsnkubesystemgrepetcd登录PODNAMEkubectlgetpodsnkubesystemgrepetcdhead1awk{print1}kubectlexecitPODNAMEnkubesystemsh配置环境aliasetcdctletcdctlendpointshttps:127。0。0。1:2379cacertetckubernetespkietcdca。crtcertetckubernetespkietcdserver。crtkeyetckubernetespkietcdserver。key查看etcd集群成员列表etcdctlmemberlist9)解决node节点NotReady状态1、从master节点拷贝ca。crt到node节点对应的目录scpetckubernetespkica。crtlocal168182111:etckubernetespkiscpetckubernetespkica。crtlocal168182112:etckubernetespki2、修改node节点的kubelet。conf
  把server:https:local168182110:6443修改为现在master节点的地址server:https:clusterendpoint:6443sedislocal168182110clusterendpointgetckuberneteskubelet。conf3、重启docker或者containerd,kubeletsystemctlrestartdockercontainerdkubelet四、故障模式测试1)模拟VIP漂移将master节点上的keepalived停掉systemctlstopkeepalived
  查看节点信息kubectlgetnodes
  从上图可知VIP已经漂移到masterbackup1节点了,不影响集群,接下来恢复故障。将master节点上的keepalived启动systemctlstartkeepalived
  【结论】master节点故障恢复后,VIP会从新漂移回到原先的master节点。
  查看节点信息kubectlgetnodes
  2)节点故障测试(一台master故障)
  模拟master节点故障(手动关机)关机192。168。182。110showdownhnow在192。168。182。113backupmaster节点查看集群节点状态kubectlgetnodes
  【结论】一台master故障,不影响集群。3)master节点故障模拟(两台master故障)
  2、模拟master节点故障(手动关机)关机192。168。182。113showdownhnow在192。168。182。130backupmaster节点查看集群节点状态kubectlgetnodes
  【错误】Theconnectiontotheserverclusterendpoint:6443wasrefuseddidyouspecifytherighthostorport?
  发现两个master节点,挂了一个master节点是不可用的。原因:当两个master节点还是需要2个节点可用。只有大于2个master节点才允许挂master节点,我们可以查一下允许的容器。会发现apiserver的容器一直在重启或者直接挂了,小伙伴也可以去查看一下日志。stackoverflow答案crictlps2devnull
  【建议】所以我们部署多master高可用节点数量必须大于等于3,这样才能保证挂一个master节点,集群不会受影响。
  K8Smaster节点更换IP以及master高可用故障模拟测试就先到这里,有任何疑问欢迎给我留言,后续会持续更新【云原生大数据】相关的文章
投诉 评论 转载

告别伤心之旅!K宝提前回家,粉丝拍照又送花,她是真正的王者2月18日,俄奥队花滑女单名将瓦力耶娃(K宝)在结束花滑后提前返回,此次奥运之旅,她受兴奋性风波,一波三折,最终在质疑面前,崩溃了。最终决赛,六边形战士的她,失误连连,最……CBA三消息辽宁老将续约三年,顾全成为朱芳雨,王哲林防守欠缺爱国篮,爱CBA,我是洛姐,小伙伴们看完记得点赞!辽宁队这个休赛期肯定不会进行大规模的引援操作,毕竟球队现在的球员阵容其实是很合理的,凭借这个球员阵容,辽宁队已经拿到了一……迈克尔杰克逊唯一女儿24岁了,不走寻常路的她到底有多不寻常?4月3日,是已故流行天王迈克尔杰克逊的女儿帕丽斯杰克逊24岁生日。在这个特别的日子,英国《每日星报》细数了帕丽斯多年来彰显个性的瞬间。虽然这位音乐才女对聚光灯并不陌生,但她并没……有趣的状态栏,让你目不转睛手机状态栏总会以最简洁,最直观的姿态出现在屏幕顶端,让你接受最重要的手机设置信息。然而状态栏电池图标怎么设置才会有趣?状态栏通知图标怎么设置才会有趣?状……嫦娥五号数据解密大批月面照片公开,清晰度远超阿波罗登月工程随着嫦娥五号探测数据的解密,一大批月面影像产品得以公开,包括航天迷在内的国人们也因此大饱眼福。不同于以往,嫦娥五号肩负的是月面采样返回专项使命任务,因此没有配置可在月面移……钟南山院士称他为健康食物常吃这些东西完成健康早餐吧1超级水果橙子橙子中含有丰富的果胶、蛋白质、钙、磷、铁及维生素B1、B2、C等多种营养成分,尤其是维生素C的含量最高。中医认为:橙子有生津止渴,舒肝理气、通乳、消食开胃等……NBA综合詹姆斯迎里程碑湖人不敌76人约基奇准绝杀掘金胜魔术常规赛15日上演多场较量,洛杉矶湖人队詹姆斯在当日比赛中达成38000分里程碑,不过球队以112:113不敌费城76人;丹佛掘金队约基奇在最后时刻上演三分准绝杀,帮助球队119……创新纯电动BMWi7上市,宝马抢占旗舰豪华纯电动制高点被誉为豪华车市场行业风向标的宝马集团,正在加速推进电动化攻势。12月9日,宝马集团创新纯电动BMWi7满电上市,这是宝马集团为中国带来的第5款纯电动产品,也是宝马集团纯电……太原新十条发布后的首个周末,重回城市烟火气汾河岸边,感受城市的美好钟楼街上,三五好友相约山西日报新媒体记者卫波报道12月9日,太原发布优化疫情防控新十条。12月10日,疫情防控政策调整后的首个周末,一组图带……助力TWS电源管理,Nothingear(stick)内置三Nothing是一加联合创始人裴宇创办的独立品牌,2021年,Nothing正式发布了其首款产品NothingEar(1)。第二款产品Nothingear(stick)真无线耳……可以出发!去丽江古城可以出发了,就这个冬天去丽江古城。不用再迟疑,不必再等待,重拾自由和勇气,说走就走!山不言,城不语,人,该在路上。为什么去丽江古城?因为,它是心的……云原生K8Smaster节点更换IP以及master高可用故一、前言根据小伙伴提的问题,这里专门出一篇文章分析master节点挂了不可用的场景分析,希望这篇文章对小伙伴有用;其实VIP的方案实现高可用,还有更可靠的方案,也是我们目……
再重复一遍当前要提振的是股市,而不是其它!(经济观察109)陈萌朱小伟婚礼将近!婚房内景曝光有2双婚鞋,选片被偶遇似不熟CBA三消息山东提前续约核心,余嘉豪一周无休,王晗想好好休息iPhone12mini老矣,尚能饭否?北京首钢大清洗,秦晓雯即将下课,四将确定离队,闵鹿蕾或出山都演罚罪哭戏,把傅程鹏林一霆江珊放一起看,差别出来了诗意人生七夕会旅游艾瑞咨询2022年中国新能源汽车换电市场研究报告,63页雷竞技资讯CoreJJ认为北美LCS有机会夺下S冠,成为最强MLXG复盘RNG比赛,对小明赞不绝口,直言12。18就是R养老金7月31日前补发到位!河北省2022年养老金调整方案公初中怎么提高成绩(怎样才能让成绩变好)韩式可爱编发发型DIY教程轻松扮嫩装萌花园春意浓人在征途路在何方安佳消毒柜怎样安佳消毒柜功能介绍详解什么情况下不能喝茶发烧忌喝茶物理工作计划相声:吃西瓜芯片公司买家愿意签长约,保证供应什么是数据库营销数据库营销基础知识扫盲战争与和平读后感巴莱罗劳塔罗已经是世界第五前锋,前面有哈兰德本泽马莱万凯恩

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利