【K8S 系列】k8s 學(xué)習(xí)二,kubernetes 核心概念及初步了解安裝部署方式

咱們再來回顧一下 K8S 集群架構(gòu)的組件,在網(wǎng)上找一張集群架構(gòu)圖說明一波

image

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

minikube

image

點擊 Launch Terminal ,可以查看到如下界面

image-20210814141641989

官方給我們提供的 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é)點

image-20210814142527561

kubeadmin 進行部署

使用 kubeadmin 來進行部署,相對使用二進制來部署就會簡單容易一些,先來規(guī)劃一下部署方案

平臺規(guī)劃

單 master 搭建方式

image

多 master 搭建方式

image

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/

image

參考資料:

kubernetes docs

歡迎點贊,關(guān)注,收藏

朋友們,你的支持和鼓勵,是我堅持分享,提高質(zhì)量的動力

image

好了,本次就到這里

技術(shù)是開放的,我們的心態(tài),更應(yīng)是開放的。擁抱變化,向陽而生,努力向前行。

我是小魔童哪吒,歡迎點贊關(guān)注收藏,下次見~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容