k8s 集群部署嘗試

K8S 部署方式有很多,有的方式不太友好,需要注意很多關鍵點,有的方式對小白比較友好,部署簡單方便且高效
二進制源碼包的部署方式
使用 二進制源碼包的方式部署會比較麻煩,大概分為如下幾步:
獲取源碼包
部署在 master 節(jié)點和 worker 節(jié)點上
啟動相應節(jié)點的關鍵服務
master 節(jié)點上
api-server ,分布式存儲 例如 etcd,scheduler,controller manager
woker 節(jié)點上
kubelet,kube-proxy,docker
在 K8S 中,各個組件之間互相訪問都是建議通過證書進行訪問的,所以我們也需要生成相應的證書
生成證書
例如 HTTP 的,HTTPS 的
涉及的組件和工具比較多,我們可以后續(xù)對 K8S 比較熟之后,再來嘗試源碼包的方式
使用 kubeadm 方式部署
官方是推薦使用 minikube 來部署,其實他也是通過 kubeadm 來部署的,使用 kubeadm 的部署方式就相對簡單,不過步驟也是不少,有:
需要安裝 kube 對應的軟件,kubelet,kubeadm,kubectl
初始化整個 K8S 集群
添加節(jié)點到集群中
執(zhí)行上述 3 步,我們就可以將 K8S 集群搭建部署起來
生成證書是自動的,不需要我們?nèi)ジ深A
master 節(jié)點是用來管理集群容器的,所有的容器都是運行在 master 節(jié)點中,worker 節(jié)點是用來執(zhí)行任務的
關于容器鏡像的獲取
我們可以直接通過谷歌下載鏡像,或者是通過國內(nèi)阿里云來下載鏡像
點我查看 kubeadm


基礎環(huán)境準備
準備 3 臺虛擬機,買云服務器也是可以的,定義好主機名
master
node1
node2
可以這么設置主機名
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
可以通過 hostname
查看主機名
?hostname
master
安裝 docker
可以查看我之前的 docker 文章 ?【Docker 系列】docker 學習 一,Docker的安裝使用及Docker的基

需保證 master 節(jié)點和 worker 節(jié)點的 docker 版本一致,如:

需要關閉防火墻
//?查看防火墻的當前狀態(tài)
sudo?ufw?status
//?啟用和禁用防火墻
sudo?ufw?enable
sudo?ufw?disable
//?禁用防火墻并刪除所有防火墻規(guī)則
sudo?ufw?reset
關閉 selinux
sudo?setenforce?0?
或者
vim?/etc/selinux/config
將?SELINUX?設置為?permissive
禁用 swap
sudo?swapoff?-a
安裝 kubeadm 等工具
點我查看參考地址

開始安裝 kubeadm、kubelet、kubectl 工具
先安裝 k8s 的源文件
sudo?apt-get?update?&&?sudo?apt-get?install?-y?apt-transport-https?curl
sudo?curl?-s?https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg?|?sudo?apt-key?add?-
sudo?tee?/etc/apt/sources.list.d/kubernetes.list?<<-'EOF'
deb?https://mirrors.aliyun.com/kubernetes/apt?kubernetes-xenial?main
EOF
查看 kubeadm 可用版本,選一個合適的
# apt-cache madison kubeadm

這里我們就安裝最新的版本吧
//?安裝最新版本
#?shell?sudo?apt-get?install?-y?kubelet=1.22.4-00?kubeadm=1.22.4-00?kubectl=1.22.4-00
//?設置標簽
#?sudo?apt-mark?hold?kubelet=1.22.4-00?kubeadm=1.22.4-00?kubectl=1.22.4-00
//?設置開啟啟動?kubelet?并?運行?kubelet
#?sudo?systemctl?enable?kubelet?&&?sudo?systemctl?start?kubelet
我們簡單的運行一下 kubelet 可以看到版本安裝是正確的

可是 kubelet 本應該是在后臺就會啟動的 ,為什么會啟動異常呢 , 我們可以查看官方文檔,得知需要配置 cgroup 驅(qū)動程序

在本地創(chuàng)建一個 yaml 文件,kubeadm-config.yaml
配置上自己的 kubelet 的版本 ?v1.22.4
kind:?ClusterConfiguration
apiVersion:?kubeadm.k8s.io/v1beta3
kubernetesVersion:?v1.22.4
kind:?KubeletConfiguration
apiVersion:?kubelet.config.k8s.io/v1beta1
cgroupDriver:?systemd
執(zhí)行命令 kubeadm init --config kubeadm-config.yaml
若發(fā)現(xiàn)有如下報錯,則是因為我們的機器 CPU 的核數(shù)小于 2 ,kubeadm 要求 我們的環(huán)境 CPU 需要是 2 個 ,趕緊換一個配置高一點的機器吧

若配置沒有異常,CPU 核數(shù)夠,那么將會執(zhí)行成功
今天就到這里,學習所得,若有偏差,還請斧正
歡迎點贊,關注,收藏
朋友們,你的支持和鼓勵,是我堅持分享,提高質(zhì)量的動力

好了,本次就到這里
技術是開放的,我們的心態(tài),更應是開放的。擁抱變化,向陽而生,努力向前行。
我是阿兵云原生,歡迎點贊關注收藏,下次見~