咱們再來回顧一下 K8S 集群架構(gòu)的組件,在網(wǎng)上找一張集群架構(gòu)圖說明一波
1、master 組件
- apiserver
集群的統(tǒng)一入口,restful 的方式,最后交給 etcd 存儲
- shcheduler
節(jié)點調(diào)度,選擇 node 節(jié)點進行應(yīng)用部署
- controller-manager
處理集群中常規(guī)后臺任務(wù),一個資源對應(yīng)一個控制器
- etcd
存儲系統(tǒng),用于保存集群相關(guān)的數(shù)據(jù)
2、node 組件,工作節(jié)點
- kubelet
master 排到 node 節(jié)點代表,管理本機的容器
- kube-proxy
提供網(wǎng)絡(luò)代理,負載均衡等操作
k8s 核心概念
1、Pod
- 最小部署的邏輯單元
- 是一組容器的集合
- 共享網(wǎng)絡(luò)
- 生命周期短暫
2、controller
- 確保預(yù)期的 Pod 副本數(shù)量
- 無狀態(tài)應(yīng)用部署 / 有狀態(tài)應(yīng)用部署
- 確保所有 node 運行同一個 Pod
- 執(zhí)行一次性任務(wù)和定時任務(wù)
3、service
- 定義一組 Pod 的訪問規(guī)則
Kubernetes 安裝方式:
- 使用官方提供的 minikube
- 使用 kubeadmin 進行部署,k8s的部署工具,跑在 k8s 里面,這個使用起來相對簡單
kubeadmin 提供 kubeadmin init 和 kubeadmin join,用于快速部署 k8s 集群
官網(wǎng)地址為:https://kubernetes.io/docs/reference/setup-tools/kubeadm/
- 自己使用 kubernetes 二進制方式安裝部署 (這種部署方式,我們學(xué)習(xí)的時候一定要走這個步驟,一步一步的去搭建,才能遇到很多問題,進而解決他,熟悉他)
官方提供的 minikube
點擊 Launch Terminal ,可以查看到如下界面
官方給我們提供的 minikube ,版本是 v1.8.1
系統(tǒng)是 Ubuntu 18.04
CPU 2 核
內(nèi)存 2 G
磁盤 145 G 左右
Kubernetes 版本 v1.17.6
Docker 版本 19.03.6
咱們可以使用 kubectl get pods -n kube-system 查看一下 pod 節(jié)點
kubeadmin 進行部署
使用 kubeadmin 來進行部署,相對使用二進制來部署就會簡單容易一些,先來規(guī)劃一下部署方案
平臺規(guī)劃
單 master 搭建方式
多 master 搭建方式
kubeadmin 開始部署
使用 kubeadmin 部署 k8s 環(huán)境,通過如下 2 條指令即可完成 kubernetes 的部署:
- kubeadm init
創(chuàng)建一個 master 節(jié)點
- kubeadm join <master 節(jié)點的IP 和端口>
將 node 節(jié)點加入到集群中
測試環(huán)境硬件要求
master 節(jié)點: 2 核,2G,磁盤 20 G
node 節(jié)點:4 核,8G,磁盤 80 G
- 一臺或者多臺機器,操作系統(tǒng)自選,可以是 ubuntu ,可以是 centos
- 硬件配置如上
- 集群中所有的節(jié)點網(wǎng)絡(luò)互通
- 可以訪問外網(wǎng),可以拉取鏡像
- 禁止 swap 分區(qū)
先來安裝一下 kubectl
官方提供了 4 種方式來安裝 kubecrl
咱們直接使用第 1 種:
1、用如下命令下載最新的 kubectl 版本
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
2、下載 kubectl 校驗和文件
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
3、驗證 kubectl 的可執(zhí)行文件
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
# echo "$(<kubectl.sha256) kubectl" | sha256sum --check
kubectl: OK
出現(xiàn)上述情況,為驗證通過
4、安裝 kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
5、查看咱們安裝的版本
kubectl version --client
# kubectl version --client
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:03:20Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
- GitVersion
git 的版本是 v1.22.0
- GoVersion
go 的版本是 1.16.6
- BuildDate
構(gòu)建時間為 2021-08-04T18:03 ,還算挺新
配置一下 kubectl 自動補全功能
kubectl 的自動補全功能依賴 bash-completion,因此需要我們安裝他
1、安裝 bash-completion
apt-get install bash-completion
2、啟動 kubectl 自動補全功能
在 ~/.bashrc 中導(dǎo)入(source)補全腳本
echo 'source <(kubectl completion bash)' >>~/.bashrc
將補全腳本添加到目錄 /etc/bash_completion.d 中
kubectl completion bash >/etc/bash_completion.d/kubectl
如果 kubectl 有關(guān)聯(lián)的別名,你可以擴展 shell 補全來適配此別名
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
kubernetes 的安裝部署方式步驟相對有點多,這個必須要自己一步一步的實踐,否則是學(xué)不到東西的,大家可以多在官網(wǎng)上摸摸魚
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
參考資料:
歡迎點贊,關(guān)注,收藏
朋友們,你的支持和鼓勵,是我堅持分享,提高質(zhì)量的動力
好了,本次就到這里
技術(shù)是開放的,我們的心態(tài),更應(yīng)是開放的。擁抱變化,向陽而生,努力向前行。
我是小魔童哪吒,歡迎點贊關(guān)注收藏,下次見~