溫馨提示×

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

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

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

發(fā)布時(shí)間:2020-06-27 16:19:33 來(lái)源:網(wǎng)絡(luò) 閱讀:233 作者:IT人故事 欄目:云計(jì)算

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
原文鏈接地址:『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

上次講了k8s的理論部分,從這次開(kāi)始實(shí)踐部分。從環(huán)境搭建的實(shí)際操作中,深入了解k8s的組件和它的架構(gòu)設(shè)計(jì)。對(duì)于新手來(lái)說(shuō),搭建一個(gè)完整的k8s的環(huán)境真心困難啊,至少我在中級(jí)搭建的時(shí)候感覺(jué)很麻煩,如果你科學(xué)上網(wǎng)的話,可以通過(guò)kubernetes-admin的方式,但是相信大部分的老鐵,還是綠色的上網(wǎng)環(huán)境,特別k8s的服務(wù)器,根本不具備科學(xué)上網(wǎng)能力的,對(duì)于這個(gè)問(wèn)題,社區(qū)也推出來(lái)了很多自研的部署方案,經(jīng)過(guò)迭代也踴躍了很多種的方案。都不太適合新手來(lái),雖然好解決,但是安裝節(jié)點(diǎn)對(duì)你來(lái)說(shuō)還是個(gè)黑盒,這些方案的學(xué)習(xí)成本都非常的高,有的不夠靈活,想特殊配置的。源碼:https://github.com/limingios/msA-docker swarm分支 vagrant/k8s 和
https://github.com/limingios/kubernetes-starter

參考高手總結(jié)的k8s的安裝

https://github.com/limingios/kubernetes-starter

  1. 綠色網(wǎng)絡(luò)情況下愉快的安裝網(wǎng)絡(luò)集群
  2. 安裝的過(guò)程加深對(duì)k8s的深入理解

盡量讓部署變的簡(jiǎn)單,第一次安裝,剝離了認(rèn)證和授權(quán)部分,非必須安裝的放在最后,從整體上把握k8s的運(yùn)行機(jī)制。最后加上認(rèn)證授權(quán)。k8s的難點(diǎn)就是認(rèn)證和授權(quán),加入進(jìn)去后會(huì)讓人感覺(jué)整個(gè)過(guò)程,讓人感覺(jué)非常非常的復(fù)雜,所以在這里第一次安裝的時(shí)候做了剝離。

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

  • 腳本gen-config.sh

    腳本非常的簡(jiǎn)單,就是幫助各位老鐵生成一些配置文件,因?yàn)閗8s涉及到的腳本也非常多,不可能手動(dòng)一點(diǎn)一滴的去敲,配置寫(xiě)成了模板,通過(guò)腳本生成適應(yīng)自己環(huán)境的配置文件。比如你的機(jī)器的hostname,ip,文件的存放路徑各有不同。

預(yù)先環(huán)境準(zhǔn)備

  • 虛擬機(jī)介紹和安裝

    3臺(tái)虛擬機(jī)還是通過(guò)vagrant來(lái)生成對(duì)應(yīng)的虛擬機(jī)。vagrant已經(jīng)安裝了 對(duì)應(yīng)的docker。

系統(tǒng)類(lèi)型 IP地址 節(jié)點(diǎn)角色 CPU Memory Hostname
Centos7 192.168.66.101 master 1 2G server01
Centos7 192.168.66.102 worker 1 1G server02
Centos7 192.168.66.103 worker 1 1G server03

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

  • 三臺(tái)機(jī)器接受所有ip的數(shù)據(jù)包轉(zhuǎn)發(fā)
$ vi /lib/systemd/system/docker.service

#找到ExecStart=xxx,在這行上面加入一行,內(nèi)容如下:(k8s的網(wǎng)絡(luò)需要)
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

  • 三臺(tái)機(jī)器啟動(dòng)服務(wù)
    $ systemctl daemon-reload
    $ service docker start

    『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

系統(tǒng)設(shè)置(所有節(jié)點(diǎn))

關(guān)閉、禁用防火墻(讓所有機(jī)器之間都可以通過(guò)任意端口建立連接)
systemctl stop firewalld
systemctl disable firewalld
#查看狀態(tài)
systemctl status firewalld

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

####設(shè)置系統(tǒng)參數(shù) - 允許路由轉(zhuǎn)發(fā),不對(duì)bridge的數(shù)據(jù)進(jìn)行處理

#寫(xiě)入配置文件
$ cat <<EOF > /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

#生效配置文件
$ sysctl -p /etc/sysctl.d/k8s.conf

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

配置host文件
#配置host,使每個(gè)Node都可以通過(guò)名字解析到ip地址
$ vi /etc/hosts
#加入如下片段(ip地址和servername替換成自己的)
192.168.66.101 server01
192.168.66.102 server02
192.168.66.103 server03

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

準(zhǔn)備二進(jìn)制文件(所有節(jié)點(diǎn))

kubernetes的安裝有幾種方式,不管是kube-admin還是社區(qū)貢獻(xiàn)的部署方案都離不開(kāi)這幾種方式:

  • 使用現(xiàn)成的二進(jìn)制文件

    直接從官方或其他第三方下載,就是kubernetes各個(gè)組件的可執(zhí)行文件。拿來(lái)就可以直接運(yùn)行了。不管是centos,ubuntu還是其他的linux發(fā)行版本,只要gcc編譯環(huán)境沒(méi)有太大的區(qū)別就可以直接運(yùn)行的。使用較新的系統(tǒng)一般不會(huì)有什么跨平臺(tái)的問(wèn)題。

  • 使用源碼編譯安裝

    編譯結(jié)果也是各個(gè)組件的二進(jìn)制文件,所以如果能直接下載到需要的二進(jìn)制文件基本沒(méi)有什么編譯的必要性了。

  • 使用鏡像的方式運(yùn)行

    同樣一個(gè)功能使用二進(jìn)制文件提供的服務(wù),也可以選擇使用鏡像的方式。就像nginx,像mysql,我們可以使用安裝版,搞一個(gè)可執(zhí)行文件運(yùn)行起來(lái),也可以使用它們的鏡像運(yùn)行起來(lái),提供同樣的服務(wù)。kubernetes也是一樣的道理,二進(jìn)制文件提供的服務(wù)鏡像也一樣可以提供。

從上面的三種方式中其實(shí)使用鏡像是比較優(yōu)雅的方案,容器的好處自然不用多說(shuō)。但從初學(xué)者的角度來(lái)說(shuō)容器的方案會(huì)顯得有些復(fù)雜,不那么純粹,會(huì)有很多容器的配置文件以及關(guān)于類(lèi)似二進(jìn)制文件提供的服務(wù)如何在容器中提供的問(wèn)題,容易跑偏。
所以我們這里使用二進(jìn)制的方式來(lái)部署。二進(jìn)制文件已經(jīng)這里備好,大家可以打包下載,把下載好的文件放到每個(gè)節(jié)點(diǎn)上,放在哪個(gè)目錄隨你喜歡,放好后最好設(shè)置一下環(huán)境變量$PATH,方便后面可以直接使用命令。(科學(xué)上網(wǎng)的老鐵也可以自己去官網(wǎng)找找)
####[下載地址(kubernetes 1.9.0版本)] (https://pan.baidu.com/s/1bMnqWY)

  • 三臺(tái)機(jī)器mac開(kāi)通遠(yuǎn)程登錄root用戶下
    #設(shè)置 PasswordAuthentication yes
    vi /etc/ssh/sshd_config
    sudo systemctl restart sshd

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

  • 將下載的k8s上傳到linux服務(wù)器上

    密碼都是vagrant

scp kubernetes-bins.tar.gz root@192.168.66.101:~
scp kubernetes-bins.tar.gz root@192.168.66.102:~
scp kubernetes-bins.tar.gz root@192.168.66.103:~

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)
『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)
『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)
『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

  • 解壓k8s,改名

    解壓后,改名成bin就是為了不在配置環(huán)境變量

tar -xvf kubernetes-bins.tar.gz 
mv kubernetes-bins/ bin

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

準(zhǔn)備配置文件(所有節(jié)點(diǎn))

上一步我們下載了kubernetes各個(gè)組件的二進(jìn)制文件,這些可執(zhí)行文件的運(yùn)行也是需要添加很多參數(shù)的,包括有的還會(huì)依賴一些配置文件。現(xiàn)在我們就把運(yùn)行它們需要的參數(shù)和配置文件都準(zhǔn)備好。

下載配置文件
#安裝git
yum -y install git
#到home目錄下載項(xiàng)目
git clone https://github.com/limingios/kubernetes-starter.git
#看看git內(nèi)容
cd ~/kubernetes-starter && ll

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

文件說(shuō)明
  • gen-config.sh

    shell腳本,用來(lái)根據(jù)每個(gè)老鐵自己的集群環(huán)境(ip,hostname等),根據(jù)下面的模板,生成適合大家各自環(huán)境的配置文件。生成的文件會(huì)放到target文件夾下。

  • kubernetes-simple

    簡(jiǎn)易版kubernetes配置模板(剝離了認(rèn)證授權(quán))。
    適合剛接觸kubernetes的老鐵,首先會(huì)讓大家在和kubernetes初次見(jiàn)面不會(huì)印象太差(太復(fù)雜啦~~),再有就是讓大家更容易抓住kubernetes的核心部分,把注意力集中到核心組件及組件的聯(lián)系,從整體上把握kubernetes的運(yùn)行機(jī)制。

  • kubernetes-with-ca

    在simple基礎(chǔ)上增加認(rèn)證授權(quán)部分。大家可以自行對(duì)比生成的配置文件,看看跟simple版的差異,更容易理解認(rèn)證授權(quán)的(認(rèn)證授權(quán)也是kubernetes學(xué)習(xí)曲線較高的重要原因)

  • service-config

    這個(gè)先不用關(guān)注,它是我們?cè)?jīng)開(kāi)發(fā)的那些微服務(wù)配置。
    等我們熟悉了kubernetes后,實(shí)踐用的,通過(guò)這些配置,把我們的微服務(wù)都運(yùn)行到kubernetes集群中。

3臺(tái)機(jī)器生成配置

這里會(huì)根據(jù)大家各自的環(huán)境生成kubernetes部署過(guò)程需要的配置文件。
在每個(gè)節(jié)點(diǎn)上都生成一遍,把所有配置都生成好,后面會(huì)根據(jù)節(jié)點(diǎn)類(lèi)型去使用相關(guān)的配置。

#cd到之前下載的git代碼目錄
cd ~/kubernetes-starter
#編輯屬性配置(根據(jù)文件注釋中的說(shuō)明填寫(xiě)好每個(gè)key-value)
vi config.properties
#生成配置文件,確保執(zhí)行過(guò)程沒(méi)有異常信息

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

#生成簡(jiǎn)易版本
 ./gen-config.sh simple
#查看生成的配置文件,確保腳本執(zhí)行成功
 find target/ -type f

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

執(zhí)行g(shù)en-config.sh常見(jiàn)問(wèn)題:

  1. gen-config.sh: 3: gen-config.sh: Syntax error: "(" unexpected
    • bash版本過(guò)低,運(yùn)行:bash -version查看版本,如果小于4需要升級(jí)
    • 不要使用 sh gen-config.sh的方式運(yùn)行(sh和bash可能不一樣哦)
  2. config.properties文件填寫(xiě)錯(cuò)誤,需要重新生成
    再執(zhí)行一次./gen-config.sh simple即可,不需要手動(dòng)刪除target

PS:下一步將一步一步的使用這些文件,到那個(gè)時(shí)間說(shuō)說(shuō)每個(gè)文件的功能。里面有寫(xiě)錯(cuò)的,192.168.1.101.2379 改成192.168.1.101:2379

『高級(jí)篇』docker之kubernetes環(huán)境搭建與預(yù)先環(huán)境準(zhǔn)備(32)

向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