3 2 4 K8S最佳實踐

2021-10-05 04:43:46 字數 2965 閱讀 2232

目錄

3.2.4.1 k8s視覺化自動化工具及日誌收集

1、endpoints

2、部署harbor-registry

3.2.4.2 結合k8s的系統監控及業務部署

1、kubectl

2、yaml資源描述檔案

3、kompose轉換

3.2.4.3 網易在k8s的探索和實踐(網易雲)

1、準備持久化環境

1.1、什麼是nfs

1.2、nfs原理

1.3、nfs服務主要程序

1.4、nfs的關鍵工具

2、實現資料持久化

2.1、pv與pvc

3、configmap

3.1、建立configmap的4種方式

3.2、configmap的限制

有幾種情況下需要用到沒有selector的service。

1、使用kubernetes集群外部的資料庫時

2、service中用到了其他namespace或kubernetes集群中的service

3、在kubernetes的工作負載與集群外的後端之間互相遷移

老師文件中「4.6.    部署 harbor-registry」只適合二進位制方式安裝的k8s集群

的「5.4.    kubectl」、「5.5.    yaml資源描述檔案

官網最詳細的命令使用文件(強烈推薦大家學習):

中文文件:

yaml是一種用來寫配置檔案的語言。

yaml有兩種結構型別:lists、maps。

1、---:表示檔案之間的分隔符。---前面的行表示乙個檔案,---後面的行又表示乙個檔案

2、-:表示list中的乙個元素,多行-就組成了list

3、除了-開頭的,其他的都是map

service、deployment、pod。

deployment:在service與pod之間,定義pod的副本數量【負載均衡個數】

git上有寫linux獲取映象的方式,如下圖:

的「5.6.    k8s 資料持久化

nfs:network file system,網路檔案系統

通過nfs,可以像訪問本地檔案一樣訪問遠端系統上的檔案。

主要是通過rpcbind服務,將配置資訊推送到相連的其他客戶端(或服務端)

rpc.nfsd:最主要的nfs程序,管理客戶端是否可登入

rpc.mountd:掛載和解除安裝nfs檔案系統,包括許可權管理

rpc.lockd:非必要,管理檔案鎖,避免同時寫出錯

rpc.statd:非必要,檢查檔案一致性,可修復檔案

主要配置檔案:/etc/exports

nfs檔案系統維護命令:/usr/bin/exportfs

共享資源的日誌檔案:/var/lib/nfs/*tab

客戶端查詢共享資源命令:/usr/sbin/showmount

埠配置:/etc/sysconfig/nfs

pv:persistent volume(持久卷)【宣告】

pvc:persistent volume claim(持久卷消費者)【使用者】

我們採用nfs實現。

pv是nfs的乙個**,實際上是pv向nfs拿空間。pvc向pv拿空間

kubernetes通過configmap來實現對容器中應用的配置管理。

--from-literal:直接在命令列中指定configmap引數建立

eg:kubectl create configmap test-config1 --from-literal=db.host=172.18.8.200 --from-literal=db.port='3306'

檢視配置內容:kubectl get cm test-config1 -o yaml

--from-file=《檔案》:指定檔案建立,即將乙個配置檔案建立為乙個configmap

--from-env-file=《檔案》:通過乙個檔案內多個鍵值對

yaml配置檔案:事先寫好標準的configmap的yaml檔案,然後kubectl create -f 建立

使用該configmap掛載的env不會同步更新;

使用該configmap掛載的volume中的資料需要一段時間(實測大概10秒)才能同步更新。

大多數情況下,配置資訊都以檔案形式提供,所以在建立configmap時通常採用--from-file或yaml方式,讀取configmap時通常採用volume方式。

1、configmap必須在pod消費它之前建立,除非被標記為可選。

2、configmaps用於填充環境變數通過envfrom,它們被認為具有無效的環境變數名稱的鍵將跳過這些鍵。該pod被允許啟動。將會有乙個事件,原因是invalidvariabelnames,該訊息包含被跳過的無效的鍵的列表。

k8s最佳實踐

通過下面兩種方式可以減小構建映象大小 small base images 有些base映象有非常齊全的工具鏈,考慮考慮是否需要這些工具鏈,還是只需要精簡映象版映象並補充所需的工具 builder pattern 對於一些go c語言專案,使用docker提供的builder pattern,先構建乙...

k8s編排最佳實踐

不受任何控制器 deployment,replicasets,jobs 控制的pod稱之為裸pod foo service host foo service port 如果 中要訪問service,不要使用上述環境變數,最好使用service的dns名稱,上述環境變數只是為了解決有些老的系統無法使用...

K8S 最佳實踐 對映外部服務

大多數 kubernetes 使用者都有可能用到集群外部的服務。例如,您可能使用 twillio api 傳送簡訊,或使用 google cloud vision api 進行影象分析。如果位於不同環境中的應用連線相同的外部端點,並且您不打算將外部服務引入 kubernetes 集群,那麼在 中直接...