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 歡迎加群交流
如果您認為這篇文章還不錯或者有所收獲,您可以點擊右下角的【推薦】按鈕精神支持,因為這種支持是我繼續寫作,分享的最大動力!
微信公眾號:歡迎關注 QQ技術交流群: 歡迎加群