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


0、前言

整體架構目錄:ASP.NET Core分布式項目實戰-目錄

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

一、服務器設置


 

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

設置方式:

vi  /etc/selinux/config

將 SELINUX=disabled,然后保存,然后 執行命令: setenforce 0,使之生效。

 

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

3、每一台服務器 關閉防火牆 firewall

 

二、安裝docker


 

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

 

 

三、自簽TLS證書


 

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

 

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

執行命令:

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

 

2、生成證書

k8s組件中證書使用情況

 

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

 

注:在執行 文件中的  server-csr.json 時 需要把里面的IP地址修改完自己服務器的地址,如下圖所示:

 

 命令全部執行完后會生成如下的證書文件,后綴為 pem的證書文件。(此處僅看后綴為pem的文件,其他文件后面會將到)

 

 到此步,證書生成OK了。

 

四、部署Etcd集群


 

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

1、在此處我把 master1、node1、node2這個三個服務器做成etcd 集群部署。

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

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

然后解壓 包

tar xzvf  報名

解壓后會得到 文件夾 

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

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

ssl:用來存放證書

bin:放執行文件

cfg:配置文件

 

5、把第三步解壓出來的文件夾中的 etcd、etcdctl 復制到 /opt/kubernetes/bin  中。

6、在 cfg  文件夾中創建etcd的配置文件

命令:  vi /ops/kubernetes/cfg/etcd  ,然后把下面的內容復制進去,此處畫紅色圈的要特別注意,因為現在是在master1上面操作,因此 etcd_name 需要些 etcd01 與下面的cluster中的配對,IP地址要寫master1的地址。如果是node節點則name需要修改對應的。

 

 7、創建一個文件用來啟動 etcd

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

然后添加以下內容

 

8、把之前生成的證書復制到 /ops/kubernetes/ssl 中

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

 

9、啟動 etcd

systemctl start etcd

systemctl enable etcd

 

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

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

 

10、然后node節點中也按上面配置。

全部配置完成后,我在master 服務器中把/ops/kubernetes/bin 添加到環境變量中的,因為后期需要經常使用此bin文件中的執行文件。

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

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

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

 

11、切換到 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

 

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

為什么需要部署flanneld呢?需要進行服務器互相通信,防止IP重復,導致沖突等。請聽下回分解。


 

 

 

asp.net Core 交流群:787464275 歡迎加群交流
如果您認為這篇文章還不錯或者有所收獲,您可以點擊右下角的【推薦】按鈕精神支持,因為這種支持是我繼續寫作,分享的最大動力!

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

微信公眾號:歡迎關注                                                 QQ技術交流群: 歡迎加群

                


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM