簡介
此次圍繞Kubernetes 日常管理中的核心場景,提供了從基礎到進階的實操配置指南。內容涵蓋 9 大關鍵知識點:從使用 nginx 鏡像創建 QoS 類為 Guaranteed 的 Pod,到為 Pod 配置安全上下文以指定運行用戶和組;從自定義 Student 資源類型(CRD),到配置 Sidecar 實現跨命名空間流量控制;還包括給 Pod 添加主機別名、創建自定義伸縮靈敏度的 HPA 規則、通過節點親和性將 Pod 調度到特定標簽節點,以及配置網絡策略限制 Pod 訪問權限,最后詳解了節點壓力驅逐機制的設置方法。每個場景均附帶完整的 YAML 配置示例、操作命令及驗證步驟,助力高效掌握 K8s 資源管理與調度的關鍵技巧
1.Pod管理--創建Pod
在default命名空間下使用nginx:latest鏡像創建一個QoS類為Guaranteed的Pod,名稱為qos-demo。
# QoS類是Kubernetes用來決定Pod的調度和驅逐的策略 #對于 QoS 類為 Guaranteed 的 Pod:,Pod 中的每個容器都必須指定內存限制和內存請求,對于 Pod 中的每個容器,內存限制必須等于內存請求,Pod 中的每個容器都必須指定 CPU 限制和 CPU 請求,對于 Pod 中的每個容器,CPU 限制必須等于 CPU 請求。 [root@k8s-master-node1 ~]# cat qos-demo.yaml apiVersion: v1 kind: Pod metadata: name: qos-demo spec: containers: - name: qos-demo image: nginx:latest imagePullPolicy: IfNotPresent resources: limits: memory: "200Mi" cpu: "700m" [root@k8s-master-node1 ~]# kubectl describe pod qos-demo qosClass: Guaranteed #說明: 如果容器指定了自己的內存限制,但沒有指定內存請求,Kubernetes 會自動為它指定與內存限制匹配的內存請求。 同樣,如果容器指定了自己的 CPU 限制,但沒有指定 CPU 請求,Kubernetes 會自動為它指定與 CPU 限制匹配的 CPU 請求。確保容器始終能獲得固定的資源配額,避免因資源爭搶導致性能波動。
2.安全管理--配置 Pod 安全上下文
使用busybox鏡像啟動一個名為context-demo的Pod,為該Pod配置安全上下文,要求 容器內以用戶 1000 和用戶組 3000 來運行所有進程,并在啟動時執行“sleep 1h”命令。
? 安全上下文(Security Context)定義 Pod 或 Container 的特權與訪問控制設置。 安全上下文包括但不限于: 自主訪問控制(Discretionary Access Control): 基于用戶 ID(UID)和組 ID(GID) 來判定對對象(例如文件)的訪問權限。 安全性增強的 Linux(SELinux): ?allowPrivilegeEscalation?:控制進程是否可以獲得超出其父進程的特權。 ? [root@k8s-master-node1 ~]# cat context-demo.yaml ------------------- apiVersion: v1 kind: Pod metadata: name: context-demo spec: containers: - image: busybox:latest name: context-demo imagePullPolicy: IfNotPresent command: ["sh","-c","sleep 1h"] securityContext: runAsUser: 1000 #進程都使用用戶 ID 1000 來運行 run