文章目錄
- 一、基本信息
- 二、服務器初始化操作
- 三、使用Kubeasz部署K8S集群
- 四、驗證集群
一、基本信息
1、部署需要滿足前提條件:
- 注意1:確保各節點時區設置一致、時間同步;
- 注意2:確保在干凈的系統上開始安裝;
- 注意3:關閉防火墻、SElinux限制;
- 注意4:涉及到的主機SSH免密登入。
2、服務器信息如下:
由于僅僅只是演示kubeasz工具快速部署K8S集群,所以本次實驗采用單Master、單Node架構,詳細如下:
序號 | IP地址 | 角色 | 組件信息 |
---|---|---|---|
1 | 16.32.15.116 | K8S 控制節點 | K8S 控制節點相關組件、ETCD |
2 | 16.32.15.200 | K8S 工作節點 | K8S 工作節點相關組件 |
二、服務器初始化操作
1、關閉防火墻
systemctl disable firewalld --now
setenforce 0
sed -i -r 's/SELINUX=[ep].*/SELINUX=disabled/g' /etc/selinux/config
2、時間同步
yum -y install ntpdate
ntpdate ntp1.aliyun.com
添加定時同步 每天凌晨1點自動同步時間:
echo "0 1 * * * ntpdate ntp1.aliyun.com" >> /var/spool/cron/root
crontab -l
3、免密登入
ssh-keygen # 生產密鑰對ssh-copy-id 16.32.15.116
ssh-copy-id 16.32.15.200
三、使用Kubeasz部署K8S集群
1、下載項目源碼、二進制及離線鏡像
export release=3.5.0
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
2、下載離線包到本地(可能受網絡因素影響會很慢,建議下載一份放到/etc/kubeasz目錄下,后續走離線部署)
./ezdown -D
3、容器化運行kubeasz
./ezdown -S
docker exec -it kubeasz ezctl new k8s-01 # 創建新集群 k8s-01
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml # 離線部署方式
4、修改hosts文件
vim /etc/kubeasz/clusters/k8s-01/hosts[etcd]
16.32.15.116[kube_master]
16.32.15.116 k8s_nodename='master-01'[kube_node]
16.32.15.200 k8s_nodename='worker-01'
5、執行ansible劇本,安裝K8S集群
source ~/.bashrc
dk ezctl setup k8s-01 all
如下圖表示無誤:
四、驗證集群
1、查看集群節點信息
kubectl get nodes
2、查看Pod信息
kubectl get pods -A
3、創建Deployment資源,驗證是否可以運行成功
導入鏡像(工作節點執行)
注意:由于網絡原因,我這邊使用本地導入鏡像方式。
ctr -n k8s.io image import ng18.tar.gz
crictl image|grep nginx*
創建deployment資源(控制節點執行)
cat test-nginx.yamlapiVersion: apps/v1
kind: Deployment
metadata:name: my-app
spec:replicas: 3selector:matchLabels:app: my-apptemplate:metadata:labels:app: my-appspec:containers:- name: nginx-containerimage: nginx:1.18.0imagePullPolicy: IfNotPresentports:- containerPort: 80kubectl apply -f test-nginx.yaml
查看創建Pod狀態
kubectl get pods -o wide -w