目錄
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 集群,那麼在 中直接...