k8s入門

環(huán)境:

docker:20.10.8

k8s:1.21.2

操作系統(tǒng):CentOS Linux release 8.4.2105

一、入門概念:

?node:假如一個k8s集群三臺機(jī)器:A、B、C。ABC稱為節(jié)點(diǎn)。

docker鏡像:是一個特殊的文件系統(tǒng),除了提供容器運(yùn)行時所需的程序、庫、資源、配置等文件外,還包含了一些運(yùn)行時準(zhǔn)備的一些配置參數(shù)。

docker容器:是一種輕量級虛擬化技術(shù),目的和虛擬機(jī)一樣,都是為了隔離環(huán)境。但是它不像虛擬機(jī)采用操作系統(tǒng)級別的資源隔離,容器采用的是進(jìn)程級的系統(tǒng)隔離。

k8s里的pod:k8s的中心思想是每個容器只安裝1個進(jìn)程,多個或1個容器屬于一個pod。然后這個pod下的容器可以通過volume的方式共享磁盤。也就是說,應(yīng)該把整個pod看作虛擬機(jī),然后每個容器相當(dāng)于運(yùn)行的虛擬機(jī)的進(jìn)程。

k8s里的deployment:是最常用的 k8S 工作負(fù)載控制器(Workload Controllers),是 k8s 的一個抽象概念,用于更高級層次對象,部署和管理 Pod。主要功能:應(yīng)用部署、應(yīng)用升級、應(yīng)用實(shí)例擴(kuò)容、縮容、發(fā)布、失敗回滾、應(yīng)用下線。

二、k8s安裝組件概念:

kubelet(默認(rèn)端口10250):負(fù)責(zé)啟動pod和容器。

kubeadm: 用于初始化集群。

kubectl:命令行工具。可以部署和管理應(yīng)用,查看各種資源,創(chuàng)建、刪除和更新組件。

三、k8s出現(xiàn)公鑰私鑰不一致等問題可以重置集群

kubeadm reset (執(zhí)行完會提示要手動刪除配置文件,看提示信息操作即可)

kubeadm init --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

注意:按照上一步執(zhí)行結(jié)果提示執(zhí)行后,才可以執(zhí)行kubectl get pods -n kube-system?

kubeadm init --image-rexxxxx

三、命令

查看pod:kubectl get pods -n kube-system?

健康檢查:curl -k https://localhost:6443/healthz

四、安裝metric-server,命令行和接口地址均可查詢指標(biāo)信息

前提條件:需要集群環(huán)境,如果單機(jī)安裝metric-server,pod狀態(tài)一直處于pending中(參考地址:https://blog.51cto.com/u_15329153/5263626)。

以下安裝參考以下兩個地址:

https://blog.csdn.net/qq_29974981/article/details/122553328

https://blog.51cto.com/u_15127645/4342882

1、拉取鏡像,修改標(biāo)簽

docker pull cnskylee/metrics-server:v0.5.0

docker tag cnskylee/metrics-server:v0.5.0 k8s.gcr.io/metrics-server/metrics-server:v0.5.0

2、創(chuàng)建components-v0.5.0.yaml文件

https://github.com/zn19900116/k8s/blob/master/metric-server-v0.5.0.yaml

#注意以下兩行:? ? ?

?hostNetwork: true

? ? ? dnsPolicy: ClusterFirstWithHostNet

3、執(zhí)行安裝

kubectl apply -f ./components-v0.5.0.yaml

4、測試kubectl top命令的使用

kubectl top pods -n kube-system

5、url訪問https://10.128.106.121:10250/stats/summary如果提示未授權(quán),需要修改kubelet配置,systemctl status kubelet查看所有配置文件,找到如下配置項,修改后重啟即可訪問(參考地址:https://cloud.tencent.com/developer/article/2000490):

systemctl status kubelet
修改配置+重啟

”AlwaysAllow”: 安全端口授權(quán)插件的有序列表,分別以逗號分AlwaysAllow,AlwaysDeny,RBAC,ABAC

10250(kubelet API):kubelet server 與 apiserver 通信的端口,定期請求 apiserver 獲取自己所應(yīng)當(dāng)處理的任務(wù),通過該端口可以訪問獲取 node 資源以及狀態(tài)kubectl查看pod的日志和cmd命令,都是通過kubelet端口10250訪問.

五、安裝kube-state-metrics

kube-state-metrics 主要關(guān)注的是業(yè)務(wù)相關(guān)的一些元數(shù)據(jù),比如 Deployment、Pod、副本狀態(tài)等

metrics-server 主要關(guān)注的是資源度量 API?的實(shí)現(xiàn),比如 CPU、文件描述符、內(nèi)存、請求延時等指標(biāo)。

參考地址:http://www.itdecent.cn/p/e26440453cfb

注意:端口映射還需要kube-controller-manager-m和ingress操作。

kube-controller-manager-m的配置文件如下(kubectl apply -f ./mandatory.yaml):

https://github.com/zn19900116/k8s/blob/master/mandatory.yaml

ingress的配置文件如下(kubectl apply -f ./ingress_kube-state.yaml):

https://github.com/zn19900116/k8s/blob/master/ingress_kube-state.yaml

五、安裝dashborad

參考:https://blog.csdn.net/huang_dannier/article/details/122419447

六、刪除pod方法

參考:https://blog.csdn.net/ichen820/article/details/119061939

七、單機(jī)安裝方法

參考:http://www.itdecent.cn/p/dadec614632b

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

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

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