城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

kubeadmFlannel基于公网IP搭建K8s集群

5月9日 先锋客投稿
  CentOS7。6系统主机3台,基于公网IP搭建1主2从的Kubernetes集群一、准备工作1。版本信息
  Docker
  20。10。21
  Kubernetes
  1。21。00
  Flannel
  0。20。22。集群角色规划
  3台CentOS7。6主机,集群角色规划如下
  Master
  Worker01
  Worker02
  公网IP
  139。196。219。92
  1。116。156。102
  121。37。169。103
  内网IP
  172。21。253。164
  10。0。4。15
  192。168。0。89
  服务器厂商
  阿里云
  腾讯云
  华为云3。修改hosts文件
  设置master主机的hostname为msudohostnamectlsethostnamem
  分别设置2台worker主机的hostnamesudohostnamectlsethostnamew1sudohostnamectlsethostnamew2
  分别修改3台主机的hosts文件,这里配置的是公网IP。因为云服务器厂商不同,无法搭建局域网K8s集群vimetchosts139。196。219。92m1。116。156。102w1121。37。169。103w24。创建虚拟网卡
  3台主机分别填写对应的公网IP打开文件vimetcsysconfignetworkscriptsifcfgeth0:1填入内容NAMEeth0:1DEVICEeth0:1TYPEEthernetONBOOTyesBOOTPROTOstaticNETMASK255。255。255。0IPADDRpublicip重启网络systemctlrestartnetwork。service
  创建虚拟网卡前,查看eth0〔rootw1networkscripts〕ipagrepeth02:eth0:BROADCAST,MULTICAST,UP,LOWERUPmtu1500qdiscmqstateUPgroupdefaultqlen1000inet10。0。4。1522brd10。0。7。255scopeglobaleth0
  创建虚拟网卡后,查看eth0,可以发现多了一条记录eth0:1〔rootw1〕ipagrepeth02:eth0:BROADCAST,MULTICAST,UP,LOWERUPmtu1500qdiscmqstateUPgroupdefaultqlen1000inet10。0。4。1522brd10。0。7。255scopeglobaleth0inet1。116。156。10224brd1。116。156。255scopeglobaleth0:1
  华为云主机通过上述方式添加虚拟网卡时失败,改为使用Tunctl安装虚拟网卡,参考这篇文章:CentOS7Tunctl安装虚拟网卡tom。ma的博客CSDN博客tunctl
  但需要注意的是,需要将这篇文章中的tap0改为eth0:1,命名与其他主机保持一致5。云服务器安全组设置
  搭建K8s集群需要对云服务器安全组入方向规则进行配置,开启相应的端口
  master节点
  协议
  端口
  作用
  使用者
  TCP
  2379~2380
  etcd客户端API
  kubeapiserver,etcd
  TCP
  6443hrapiserverAPI
  所有组件
  UDP
  8472hrVxLanOverlay网络通信
  Flannel网络插件
  TCP
  10250hrkubeletAPI
  kubelet,ControlPlane组件
  TCP
  10251hrkubescheduler
  kubescheduler
  TCP
  10252hrkubecontrollermanager
  kubecontrollermanager
  worker节点
  协议
  端口
  作用
  使用者
  UDP
  8472hrVxLanOverlay网络通信
  Flannel网络插件
  TCP
  10250hrkubeletAPI
  kubelet,ControlPlane组件
  TCP
  3000032767
  NodePort服务
  所有组件
  二、系统基础配置1。更新并安装依赖
  准备好3台主机后,每台主机均需要更新并安装依赖sudoyumyupdatesudoyuminstallyconntrackipvsadmipsetjqsysstatcurliptableslibseccompsudoyuminstallyyumutils2。基础配置
  关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld
  关闭SELinux(SecurityEnhancedLinux)setenforce0sedisSELINUXenforcingSELINUXpermissiveetcselinuxconfig
  关闭swapswapoffasediswaps(。)1getcfstab
  配置iptables的ACCEPT规则iptablesFiptablesXiptablesFtnatiptablesXtnatiptablesPFORWARDACCEPT
  设置系统参数catEOFetcsysctl。dk8s。confnet。bridge。bridgenfcallip6tables1net。bridge。bridgenfcalliptables1EOFsysctlsystem
  三、安装Docker1。配置阿里云镜像源sudoyumconfigmanageraddrepohttp:mirrors。aliyun。comdockercelinuxcentosdockerce。repo查看DockerCEyumlistgrepdockerce更新yum缓存sudoyummakecachefast2。安装Docker
  安装指定版本20。10。21sudoyuminstallydockerce20。10。21dockercecli20。10。21containerd。io3。启动Docker启动Dockersudosystemctlstartdocker设置开机启动Dockersudosystemctlenabledocker
  四、安装Kubernetes集群所需组件(一)安装kubeadm,kubelete,kubectl1。配置yum源catEOFetcyum。repos。dkubernetes。repo〔kubernetes〕nameKubernetesbaseurlhttp:mirrors。aliyun。comkubernetesyumreposkubernetesel7x8664enabled1gpgcheck0repogpgcheck0gpgkeyhttp:mirrors。aliyun。comkubernetesyumdocyumkey。gpghttp:mirrors。aliyun。comkubernetesyumdocrpmpackagekey。gpgEOF2。开始安装确认yum中是否有指定版本yumlistkubeadmshowduplicatessortr安装1。21。00yuminstallykubeadm1。21。00kubelet1。21。00kubectl1。21。003。Docker和K8s设置为同一个cgroup(1)修改daemon。jsonvimetcdockerdaemon。json设置cgroupexecopts:〔native。cgroupdriversystemd〕(2)重启Dockersystemctlrestartdocker(3)检查kubelet,如果在输出信息中发现Nosuchfileordirectory,说明没问题sediscgroupdriversystemdcgroupdrivercgroupfsgetcsystemdsystemkubelet。service。d10kubeadm。conf4。修改kubelet启动参数
  每台主机都要添加并指定对应的公网IP,然后才能使用公网IP进行集群间通信vimusrlibsystemdsystemkubelet。service。d10kubeadm。conf
  在KUBELETKUBECONFIGARGS后面追加nodeip
  w2节点的改动如下图所示
  修改之后执行daemonreload让修改生效systemctldaemonreload5。启动kubelet重启kubelet
  启动kubeletsystemctlenablekubeletsystemctlstartkubelet
  重启kubeletsystemctlrestartkubelet(二)拉取kubeproxy,scheduler等镜像
  需要通过国内镜像源下载镜像1。查看kubeadm所需镜像kubeadmconfigimageslist
  输出信息如下k8s。gcr。iokubeapiserver:v1。21。14k8s。gcr。iokubecontrollermanager:v1。21。14k8s。gcr。iokubescheduler:v1。21。14k8s。gcr。iokubeproxy:v1。21。14k8s。gcr。iopause:3。4。1k8s。gcr。ioetcd:3。4。130k8s。gcr。iocorednscoredns:v1。8。0
  遗憾的是需要科学上网才能下载这些镜像2。尝试用国内镜像源拉取镜像dockerpullregistry。cnhangzhou。aliyuncs。comgooglecontainerskubeapiserver:v1。21。14
  经过测试,可以正常拉取,因此编写一个Shell脚本,通过国内镜像源拉取kubeadm所需镜像
  切换到一个目录,编写kubeadmimage。sh,用于从阿里云镜像源拉取镜像重新打tag删除原镜像!usrbinenvbash镜像处理过程中,如果遇到错误,立即退出sete版本定义readonlyKUBEVERSIONv1。21。0readonlyPAUSEVERSION3。4。1readonlyETCDVERSION3。4。130readonlyCOREDNSVERSIONv1。8。0readonlyOFFICIALURLk8s。gcr。ioreadonlyALIYUNURLregistry。cnhangzhou。aliyuncs。comgooglecontainers镜像列表imageList(kubeapiserver:{KUBEVERSION}kubecontrollermanager:{KUBEVERSION}kubescheduler:{KUBEVERSION}kubeproxy:{KUBEVERSION}pause:{PAUSEVERSION}etcd:{ETCDVERSION}coredns:{COREDNSVERSION})镜像转换操作forimageItemin{imageList〔〕};do从国内镜像源拉取镜像dockerpullALIYUNURLimageItem给镜像重新打一个标签,命名为kubeadm所需的镜像dockertagALIYUNURLimageItemOFFICIALURLimageItem删除原有镜像dockerrmiALIYUNURLimageItemdonecoredns的镜像比较特殊,单独处理dockertag{OFFICIALURL}coredns:{COREDNSVERSION}{OFFICIALURL}corednscoredns:{COREDNSVERSION}dockerrmi{OFFICIALURL}coredns:{COREDNSVERSION}
  运行脚本sh。kubeadmimage。sh
  五、搭建Kubernetes集群(一)用kubeadm初始化master节点1。执行kubeadminitkubeadminitkubernetesversion1。21。0apiserveradvertiseaddress139。196。219。92podnetworkcidr10。244。0。016v5
  输出日志中出现如下信息时,说明master节点已经初始化成功了
  YourKubernetescontrolplanehasinitializedsuccessfully!
  将末尾的kubeadmjoin信息保存起来,后面的步骤中需要在worker节点执行
  2。集群健康检查
  执行如下命令mkdirpHOME。kubesudocpietckubernetesadmin。confHOME。kubeconfigsudochown(idu):(idg)HOME。kubeconfig
  集群健康检查检查集群状态kubectlclusterinfo健康检查curlkhttps:localhost:6443healthz3。修改kubeapiserver配置
  kubeapiserver添加bindaddress0。0。0。0,确认advertiseaddres公网IPvimetckubernetesmanifestskubeapiserver。yaml
  修改后如下图所示
  (二)安装网络插件Flannel1。当前集群状态kubectlgetpodsnkubesystemkubectlgetnodes
  可以看到,两个coredns还是Pending状态,此时还缺少网络插件2。安装Flannel网络插件
  Kubernetes为了让网络功能更加灵活,制定了CNI规范,由第三方实现网络的细节功能。目前有多种网络插件可供选择,使用较多的是Calico和Flannel,其他的网络插件参考官方文档:https:kubernetes。iodocsconceptsclusteradministrationaddons
  由于公网环境使用Calico网络插件配置比较复杂,也没有调试成功,因此本文使用Flannel网络插件,安装命令如下,在master节点执行进入一个目录,假设为varlocalk8swgethttps:raw。githubusercontent。comcoreosflannelmasterDocumentationkubeflannel。yml
  修改kubeflannel。yml,新增2个配置vimkubeflannel。yml
  第1处containers:name:kubeflannelimage:flannelcniflannel:v0。20。2forppc64leandmips64le(dockerhublimitationsmayapply)image:docker。ioranchermirroredflannelcniflannel:v0。20。2command:optbinflanneldargs:publicip(PUBLICIP)ifaceeth0ipmasqkubesubnetmgr
  第2处env:name:PUBLICIPvalueFrom:fieldRef:fieldPath:status。podIP
  修改后的配置如下
  执行安装命令kubectlapplyfkubeflannel。yml(三)用kubeadm将从节点加入集群
  执行如下命令,将worker节点加入集群kubeadmjoin139。196。219。92:6443tokeno0zxc6。fmmh2sn8wlbt9onmdiscoverytokencacerthashsha256:a52cec58178c402ecaecc74375d49495c1bf13661dd0b25b158e7caf5d619fa6v5
  输出日志中出现如下信息时,说明worker节点已经成功加入集群
  Thisnodehasjoinedthecluster
  将2个从节点都加入集群后,集群状态如下
  可以看到,3个节点都处于可用状态,3个Flannelpod也是绑定的公网IP
  六、自定义Pod测试
  podnginx。ymlapiVersion:appsv1kind:ReplicaSetmetadata:name:mynginxlabels:tier:frontendspec:replicas:6selector:matchLabels:tier:frontendtemplate:metadata:name:mynginxlabels:tier:frontendspec:containers:name:mynginximage:nginxports:containerPort:80apiVersion:v1kind:Servicemetadata:name:mynginxservicespec:type:NodePortports:port:80targetPort:80protocol:TCPnodePort:30992selector:tier:frontend
  执行切换到podnginx。yml所在目录kubectlapplyfpodnginx。yml
  查看mynginx对外暴露的端口查看已暴露的端口kubectlgetservices
  w1节点的公网IP为1。116。156。102,w2节点的公网IP为121。37。169。103,NodePort对外暴露的端口为30992,访问结果如下
  测试通过,K8s集群搭建成功
  七、参考文档
  CentOS7Tunctl安装虚拟网卡
  选择Kubernetes网络插件
  公网环境搭建K8s集群
投诉 评论 转载

kubeadmFlannel基于公网IP搭建K8s集群CentOS7。6系统主机3台,基于公网IP搭建1主2从的Kubernetes集群一、准备工作1。版本信息Docker20。10。21Kubernetes……从柬埔寨西港省转移至国公省,82名外国人涉嫌网赌被抓据柬媒消息,9月21日,国公省警察局突袭凯马拉波明市一家酒店,抓获82名涉嫌网赌的外国人。据悉,上述酒店名为ThannTay。当地警方在现场抓获71名印尼人、9名越……演员海一天,娶小9岁二婚妻子,婚后生一女,一家四口其乐融融文Di编辑小情书2018年7月9日,知名演员海一天在北京举行了婚礼,那时候46岁的他看起来成熟而魅力。一场盛大浪漫的婚礼,也因为上海戏剧学院1993届的同学们……乌克兰是个悲剧2021年前乌克兰对我们的映像是什么?是一个美女如云,农业发达,军事工业先进的国家。我国与乌克兰合作频繁,陆海空军的现代化发展,与乌克兰渊源颇深,比如重型军用卡车底盘,航……在鞍山当高中老师每月大概多少钱?敢问楼主是想要到鞍山当教师吗?还是本就是鞍山人?鞍山我个人认为虽然经济不景气,现在城市发展似乎也不是那么的好,但是薪资待遇在同级别的城市中还算得上可以,消费水平也还能接受……平潭风沙海石塑造的浪漫风情8月19日傍晚,来自贵州的黄小姐和伙伴各骑一辆共享电动自行车,游行于平潭综合实验区的北部生态廊道,一路上观山望海,迷人的滨海风光一览无余,成片的风车田梦幻而浪漫,让人沉醉。……入秋多吃些水三鲜来源:【健康时报】入秋后,菱角、莲藕、茭白水三鲜开始成熟,趁嫩尝一尝。菱角煮点甜品吃广州中医药大学第一附属医院治未病科主任陈瑞芳:据《本草纲目》记载,菱角能补……勒索病毒防不住?动态安全防御关键数据备份两手抓近日,国内某知名财务软件0day漏洞或被大规模勒索利用。短短一天时间,确认来自于同个勒索病毒的攻击案例已超2000余例,且数量正呈不断上升趋势。受灾企业被要求向攻击者支付0。2……1998年,机长袁斌因不满分房,携妻劫机逃往台湾,两人结局如1998年10月28日,35岁的文飞早早地来到北京首都机场,今天他要执飞从北京飞往云南的一架客机。随着舱门得紧闭飞机缓缓进入了跑道,而此次他的搭档是一个二十多岁的小伙子袁斌。……能源危机之下,欧盟翻脸拿波兰开刀,冯德莱恩承诺的350亿不给近年来,波兰和欧盟之间因为司法改革一事没少针锋相对,为了让波兰屈服,欧盟不惜冻结承诺给该国的新冠康复资金。一旦波兰方面不能给欧盟满意的答复,不仅没有钱拿,还要面临高额的罚款。……娱乐圈那些事1。煲仔饭出去偷吃女网红,结果有了孩子,而且他想要留下来的,尤其是后续检查出是一个女娃时,他甚至跑回家与老婆商量了一番,表示反正他们膝下没有女儿,不如留下这个孩子,将其带回家亲……vlog跟着中国有约感受外国人眼中的福州三坊七巷视频加载中。。。中国日报网7月22日电2022中国有约你好福建国际媒体主题采访活动来到了位于福州市中心的三坊七巷,三坊七巷占地面积约39。81公顷,起源于晋,形成于唐,至……
孟晚舟2段婚姻4个孩子,现任丈夫1000多个日夜不离不弃网曝梁洛施有新恋情,对方是60岁王杰!网友吐槽娱记没有底线!LOL英雄联盟谁才是上单霸主?古代怎么审讯女囚犯?一类人用刑要等100天,一种人衙役最喜欢如果岳云鹏现在退出德云社,对德云社来说是不是毁天灭地的打击?阿根廷获得5200万奖金,队员能有多少呢?海参队估计是看不上星爷的电影带来什么意义?接下来他还会创造票房奇迹吗?最难忘的一次中秋节云南省发改委严格落实减税降费政策稳步推进增值税留抵退税据说角膜塑形镜控制近视增长很有效,真的吗?lol这个游戏是不是没落了?藩王没有儿子有多悲剧?看一看大明正统年间这三位无嗣除国的亲王

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找