Kubernetes(k8s)集羣部署(k8s企業級Docker容器集羣管理)系列之自籤TLS證書及Etcd集羣部署(二)

0、前言

總體架構目錄:ASP.NET Core分佈式項目實戰-目錄html

k8s架構目錄:Kubernetes(k8s)集羣部署(k8s企業級Docker容器集羣管理)系列目錄node

1、服務器設置


 

一、把每個服務器的selinux 設置爲 disabled

設置方式:linux

vi  /etc/selinux/configgit

將 SELINUX=disabled,而後保存,而後 執行命令: setenforce 0,使之生效。github

 

二、同步每一臺服務器的時間(此步驟很重要,會影響後面的軟件環境運行)

三、每一臺服務器 關閉防火牆 firewall

 

2、安裝docker


 

 一、CentOS7 安裝docker請參考以前文章:Docker系列之CentOS7安裝Docker(一)

 

 

3、自籤TLS證書


 

操做服務器:master1-151 服務器 docker

 

一、安裝證書生成工具cfssl:

執行命令:json

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 瀏覽器

 

注:若是上述命令沒法再Centos7中執行,請用瀏覽器打開下載後上傳到服務器上,而後在執行下面的命令服務器

 

給cfssl加入可執行權限:微信

chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64

 

而後把文件移動到此位置:

mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo

 

二、生成證書

k8s組件中證書使用狀況

 

在服務器中建立一個文件夾,樓主我是在  mkdir /home/ssl  建立ssl文件,而後執行 證書 生成命令文件(此文件須要入QQ羣找羣主獲取,QQ羣號在下面)

 

注:在執行 文件中的  server-csr.json 時 須要把裏面的IP地址修改完本身服務器的地址,以下圖所示:

 

 命令所有執行完後會生成以下的證書文件,後綴爲 pem的證書文件。(此處僅看後綴爲pem的文件,其餘文件後面會將到)

 

 到此步,證書生成OK了。

 

4、部署Etcd集羣


 

操做服務器:master1-151 服務器 

一、在此處我把 master一、node一、node2這個三個服務器作成etcd 集羣部署。

二、首先先獲取etcd 二進制 安裝包:能夠在 此連接處 下載  https://github.com/coreos/etcd/releases/tag/v3.2.12

三、把文件上傳到 master 服務器上,羣主建立了一個文件夾專門存放文件   如: mkdir /home/file

而後解壓 包

tar xzvf  報名

解壓後會獲得 文件夾 

四、在各個服務器上我統一建立了目錄,用來存在 證書、可執行命令文件、配置文件,以下:

命令:mkdir /opt/kubernetes/{bin,cfg,ssl}

ssl:用來存放證書

bin:放執行文件

cfg:配置文件

 

五、把第三步解壓出來的文件夾中的 etcd、etcdctl 複製到 /opt/kubernetes/bin  中。

六、在 cfg  文件夾中建立etcd的配置文件

命令:  vi /ops/kubernetes/cfg/etcd  ,而後把下面的內容複製進去,此處畫紅色圈的要特別注意,由於如今是在master1上面操做,所以 etcd_name 須要些 etcd01 與下面的cluster中的配對,IP地址要寫master1的地址。若是是node節點則name須要修改對應的。

 

 七、建立一個文件用來啓動 etcd

vi /usr/lib/systemd/system/etcd.service

而後添加如下內容

 

八、把以前生成的證書複製到 /ops/kubernetes/ssl 中

cp server*pem ca*pem /opt/kubernetes/ssl

 

九、啓動 etcd

systemctl start etcd

systemctl enable etcd

 

查看etcd 的狀態:ps -ef |grep etcd
查看日誌的命令:journalctl -u etcd

查看這個linux 信息(tail:命令-只查看文件末端內容) :tail /var/log/messages -f

 

十、而後node節點中也按上面配置。

所有配置完成後,我在master 服務器中把/ops/kubernetes/bin 添加到環境變量中的,由於後期須要常用此bin文件中的執行文件。

步驟一:在master上編輯 文件
vi /etc/profile

而後在文件中添加變量,而後保存
PATH=$PATH:/opt/kubernetes/bin

步驟二:source /etc/profile ,這樣便可。

 

十一、切換到 cd /home/ssl 文件中,執行如下命令,來檢查etcd是否部署成功

命令:

/opt/kubernetes/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379" cluster-health

發現都啓動成功。若是出現錯誤,請自行查看etcd 日誌。若是在啓動 etcd 時 發現 命令一直卡在那邊,不用擔憂,etcd 已經啓動,直接 按 ctrl+c  便可。查看etcd 的狀態:ps -ef |grep etcd

 

 十二、此處已經把tls證書和etcd部署成功,下篇就將部署flanneld 網絡

爲何須要部署flanneld呢?須要進行服務器互相通訊,防止IP重複,致使衝突等。請聽下回分解。


 

 

 

asp.net Core 交流羣:787464275 歡迎加羣交流
若是您認爲這篇文章還不錯或者有所收穫,您能夠點擊右下角的【推薦】按鈕精神支持,由於這種支持是我繼續寫做,分享的最大動力!

做者:LouieGuo
聲明:原創博客請在轉載時保留原文連接或者在文章開頭加上本人博客地址,如發現錯誤,歡迎批評指正。凡是轉載於本人的文章,不能設置打賞功能,若有特殊需求請與本人聯繫!

微信公衆號:歡迎關注                                                 QQ技術交流羣: 歡迎加羣

                

相關文章
相關標籤/搜索