溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么構(gòu)建生產(chǎn)環(huán)境可用的高可用kubernetes集群

發(fā)布時(shí)間:2021-08-30 11:20:08 來(lái)源:億速云 閱讀:144 作者:chen 欄目:云計(jì)算

這篇文章主要講解了“怎么構(gòu)建生產(chǎn)環(huán)境可用的高可用kubernetes集群”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么構(gòu)建生產(chǎn)環(huán)境可用的高可用kubernetes集群”吧!

kubernetes集群三步安裝

構(gòu)建生產(chǎn)環(huán)境可用的高可用kubernetes集群 | sealos項(xiàng)目地址

特性

  • [x] 支持任意節(jié)點(diǎn)的etcd集群自動(dòng)構(gòu)建,且etcd集群使用安全證書(shū),通過(guò)static pod方式啟動(dòng),這樣可以通過(guò)監(jiān)控pod來(lái)監(jiān)控etcd集群健康狀態(tài)

  • [x] 支持多master節(jié)點(diǎn),允許任意一臺(tái)master宕機(jī)集群功能不受影響

  • [x] calico使用etcd集群,配置安全證書(shū),網(wǎng)絡(luò)管控?cái)?shù)據(jù)無(wú)單點(diǎn)故障

  • [x] 包含dashboard, heapster coreDNS addons, coreDNS雙副本,無(wú)單點(diǎn)故障

  • [x] 使用haproxy負(fù)載master節(jié)點(diǎn),同樣是用static pod,這樣可通過(guò)統(tǒng)一監(jiān)控pod狀態(tài)來(lái)監(jiān)控haproxy是否健康

  • [x] haproxy節(jié)點(diǎn)使用keepalived提供虛擬IP,任意一個(gè)節(jié)點(diǎn)宕機(jī)虛擬IP可實(shí)現(xiàn)漂移,不影響node連接master

  • [x] node節(jié)點(diǎn)與kube-proxy配置使用虛擬IP

  • [ ] 集群健康檢測(cè)功能

  • [ ] promethus 監(jiān)控功能,一鍵安裝,無(wú)需配置

  • [ ] EFK 日志收集功能

  • [ ] 分布式HA模式,不用keepalived,減少集群構(gòu)建出錯(cuò)概率,無(wú)VIP切換時(shí)間

  • [x] istio 微服務(wù)支持

ship on docker

你必須已經(jīng)有了sealyun kubernetes離線安裝包 (默認(rèn)支持kubernetes版本v1.12.x,針對(duì)特殊版本的適配會(huì)切分支處理)

針對(duì)后續(xù)高版本會(huì)有更多優(yōu)化

大概原理是為了減少大家搭建ansible和sealos的環(huán)境,客戶端的東西都放到docker里,把安裝包掛載到容器中,然后ansible腳本會(huì)把包分發(fā)到你在hosts文件中配置的所有服務(wù)器

所以大概分成三步:

  1. 配置免密鑰,把docker里的公鑰分發(fā)給你所有的服務(wù)器

  2. 配置ansible playbook的hosts文件

  3. 執(zhí)行ansible

下面逐一說(shuō)明:

啟動(dòng)ansible容器與免密鑰設(shè)置

找臺(tái)宿主機(jī)如你的PC,或者一臺(tái)服務(wù)器,把下載好的離線包拷貝到/data目錄,啟動(dòng)sealos容器,把離線包掛載進(jìn)去:

docker run --rm -v /data/kube1.12.0.tar.gz:/data/kube1.12.0.tar.gz -it -w /etc/ansible fanux/sealos:v1.12.0-beta bash

在容器里面執(zhí)行:

mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa

ssh public key:

cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7fTirP9zPcx7wIjhsF+Dyu0A2sV5llC8jsmp/xtiyuJirE3mclpNEqgrzHC26f+ckfzwoE0HPU0wDPxbWFl3B0K89EwJSBsVZSZ0VLYnZp0u2JgwCLZzZzKfY0018yoqoL9KHz/68RpqtG2bWVf0/WSj+4hN7xTRpRTtXJHBOQRQBfqVSIcfMBSEnO15buUbDaLol/HvQd0YBrWwafQtMacmBlqDG0Z6/yeY4sTNRVRV2Uu5TeaHfzgYgmY9+Nxt***8Td6tgZtq7cVU//kSsbzkUzDSD8zsh8kPUm4yljT5tYM1cPFLGM4m/zqAjAZN2YaEdFckJFAQ7TWAK857d root@8682294b9464

這樣公鑰就生成了

在其它所有要安裝k8s的服務(wù)器上執(zhí)行:

cd ~/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7fTirP9zPcx7wIjhsF+Dyu0A2sV5llC8jsmp/xtiyuJirE3mclpNEqgrzHC26f+ckfzwoE0HPU0wDPxbWFl3B0K89EwJSBsVZSZ0VLYnZp0u2JgwCLZzZzKfY0018yoqoL9KHz/68RpqtG2bWVf0/WSj+4hN7xTRpRTtXJHBOQRQBfqVSIcfMBSEnO15buUbDaLol/HvQd0YBrWwafQtMacmBlqDG0Z6/yeY4sTNRVRV2Uu5TeaHfzgYgmY9+Nxt***8Td6tgZtq7cVU//kSsbzkUzDSD8zsh8kPUm4yljT5tYM1cPFLGM4m/zqAjAZN2YaEdFckJFAQ7TWAK857d root@8682294b9464" >> authorized_keys

這樣公鑰分發(fā)工作完成了,所有的機(jī)器直接ssh無(wú)需輸入密碼即可登錄

修改配置

Config your own hosts

# cd /etc/ansible
# vim hosts

配置說(shuō)明:

[k8s-master]
10.1.86.204 name=node01 order=1 role=master lb=MASTER lbname=lbmaster priority=100
10.1.86.205 name=node02 order=2 role=master lb=BACKUP lbname=lbbackup priority=80
10.1.86.206 name=node03 order=3 role=master 

[k8s-node]
10.1.86.207 name=node04 role=node

[k8s-all:children]
k8s-master
k8s-node

[all:vars]
vip=10.1.86.209   # 同網(wǎng)段未被占用IP
k8s_version=1.12.0  # kubernetes版本
ip_interface=eth.*
etcd_crts=["ca-key.pem","ca.pem","client-key.pem","client.pem","member1-key.pem","member1.pem","server-key.pem","server.pem","ca.csr","client.csr","member1.csr","server.csr"]
k8s_crts=["apiserver.crt","apiserver-kubelet-client.crt","ca.crt", "front-proxy-ca.key","front-proxy-client.key","sa.pub", "apiserver.key","apiserver-kubelet-client.key",  "ca.key",  "front-proxy-ca.crt",  "front-proxy-client.crt" , "sa.key"]

注意role=master的會(huì)裝etcd與kubernetes控制節(jié)點(diǎn),role=node即k8s node節(jié)點(diǎn),配置比較簡(jiǎn)單,除了改IP和版本,其它基本不用動(dòng)

啟動(dòng)安裝

# ansible-playbook roles/install-all.yaml

uninstall all

# ansible-playbook roles/uninstall-all.yaml

感謝各位的閱讀,以上就是“怎么構(gòu)建生產(chǎn)環(huán)境可用的高可用kubernetes集群”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么構(gòu)建生產(chǎn)環(huán)境可用的高可用kubernetes集群這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI