咱們?cè)賮砘仡櫼幌?K8S 集群架構(gòu)的組件匕得,在網(wǎng)上找一張集群架構(gòu)圖說明一波
1继榆、master 組件
- apiserver
集群的統(tǒng)一入口,restful 的方式汁掠,最后交給 etcd 存儲(chǔ)
- shcheduler
節(jié)點(diǎn)調(diào)度略吨,選擇 node 節(jié)點(diǎn)進(jìn)行應(yīng)用部署
- controller-manager
處理集群中常規(guī)后臺(tái)任務(wù),一個(gè)資源對(duì)應(yīng)一個(gè)控制器
- etcd
存儲(chǔ)系統(tǒng)考阱,用于保存集群相關(guān)的數(shù)據(jù)
2翠忠、node 組件,工作節(jié)點(diǎn)
- kubelet
master 排到 node 節(jié)點(diǎn)代表羔砾,管理本機(jī)的容器
- kube-proxy
提供網(wǎng)絡(luò)代理负间,負(fù)載均衡等操作
k8s 核心概念
1偶妖、Pod
- 最小部署的邏輯單元
- 是一組容器的集合
- 共享網(wǎng)絡(luò)
- 生命周期短暫
2姜凄、controller
- 確保預(yù)期的 Pod 副本數(shù)量
- 無狀態(tài)應(yīng)用部署 / 有狀態(tài)應(yīng)用部署
- 確保所有 node 運(yùn)行同一個(gè) Pod
- 執(zhí)行一次性任務(wù)和定時(shí)任務(wù)
3、service
- 定義一組 Pod 的訪問規(guī)則
Kubernetes 安裝方式:
- 使用官方提供的 minikube
- 使用 kubeadmin 進(jìn)行部署趾访,k8s的部署工具态秧,跑在 k8s 里面,這個(gè)使用起來相對(duì)簡單
kubeadmin 提供 kubeadmin init 和 kubeadmin join扼鞋,用于快速部署 k8s 集群
官網(wǎng)地址為:https://kubernetes.io/docs/reference/setup-tools/kubeadm/
- 自己使用 kubernetes 二進(jìn)制方式安裝部署 (這種部署方式申鱼,我們學(xué)習(xí)的時(shí)候一定要走這個(gè)步驟,一步一步的去搭建云头,才能遇到很多問題捐友,進(jìn)而解決他,熟悉他)
官方提供的 minikube
點(diǎn)擊 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é)點(diǎn)
kubeadmin 進(jìn)行部署
使用 kubeadmin 來進(jìn)行部署,相對(duì)使用二進(jìn)制來部署就會(huì)簡單容易一些昏滴,先來規(guī)劃一下部署方案
平臺(tái)規(guī)劃
單 master 搭建方式
多 master 搭建方式
kubeadmin 開始部署
使用 kubeadmin 部署 k8s 環(huán)境猴鲫,通過如下 2 條指令即可完成 kubernetes 的部署:
- kubeadm init
創(chuàng)建一個(gè) master 節(jié)點(diǎn)
- kubeadm join <master 節(jié)點(diǎn)的IP 和端口>
將 node 節(jié)點(diǎn)加入到集群中
測(cè)試環(huán)境硬件要求
master 節(jié)點(diǎn): 2 核,2G谣殊,磁盤 20 G
node 節(jié)點(diǎn):4 核拂共,8G,磁盤 80 G
- 一臺(tái)或者多臺(tái)機(jī)器姻几,操作系統(tǒng)自選宜狐,可以是 ubuntu 势告,可以是 centos
- 硬件配置如上
- 集群中所有的節(jié)點(diǎn)網(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 校驗(yàn)和文件
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
3柑爸、驗(yàn)證 kubectl 的可執(zhí)行文件
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
# echo "$(<kubectl.sha256) kubectl" | sha256sum --check
kubectl: OK
出現(xiàn)上述情況吵护,為驗(yà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)建時(shí)間為 2021-08-04T18:03 馅而,還算挺新
配置一下 kubectl 自動(dòng)補(bǔ)全功能
kubectl 的自動(dòng)補(bǔ)全功能依賴 bash-completion,因此需要我們安裝他
1譬圣、安裝 bash-completion
apt-get install bash-completion
2勇凭、啟動(dòng) kubectl 自動(dòng)補(bǔ)全功能
在 ~/.bashrc
中導(dǎo)入(source)補(bǔ)全腳本
echo 'source <(kubectl completion bash)' >>~/.bashrc
將補(bǔ)全腳本添加到目錄 /etc/bash_completion.d
中
kubectl completion bash >/etc/bash_completion.d/kubectl
如果 kubectl 有關(guān)聯(lián)的別名责语,你可以擴(kuò)展 shell 補(bǔ)全來適配此別名
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
kubernetes 的安裝部署方式步驟相對(duì)有點(diǎn)多,這個(gè)必須要自己一步一步的實(shí)踐,否則是學(xué)不到東西的殊校,大家可以多在官網(wǎng)上摸摸魚
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
參考資料:
歡迎點(diǎn)贊,關(guān)注佃牛,收藏
朋友們她按,你的支持和鼓勵(lì),是我堅(jiān)持分享飘庄,提高質(zhì)量的動(dòng)力
好了脑蠕,本次就到這里
技術(shù)是開放的,我們的心態(tài)跪削,更應(yīng)是開放的谴仙。擁抱變化,向陽而生碾盐,努力向前行晃跺。
我是小魔童哪吒,歡迎點(diǎn)贊關(guān)注收藏毫玖,下次見~