# Kubernetes HPA(Horizontal Pod Autoscaler) ## HPA 的作用 HPA 是 Kubernetes 提供的一種自動擴展 Pod 數量的機制,根據資源使用情況(如 CPU、內存)動態調整。 --- ## 創建 HPA 使用以下指令創建 HPA: ```bash kubectl autoscale deployment my-deployment --cpu-percent=50 --min=1 --max=10 ``` --- ## 查看 HPA 狀態 ```bash kubectl get hpa ``` --- ## 使用範例 以下是一個簡單的 HPA 配置範例: ```yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: my-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: my-deployment minReplicas: 1 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 ``` --- # Kubernetes 資源限制與請求 ## 資源限制的作用 1. 確保單個 Pod 不會過度消耗節點資源。 2. 保證其他應用的穩定性。 --- ## 定義資源請求與限制 ```yaml apiVersion: v1 kind: Pod metadata: name: resource-limited-pod spec: containers: - name: nginx image: nginx resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" ``` --- # Kubernetes Network Policies ## Network Policy 的作用 Network Policy 用於控制 Pod 之間及 Pod 與外部之間的網路通信。 --- ## 創建範例 以下是一個允許特定標籤的 Pod 訪問的 Network Policy: ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-specific spec: podSelector: matchLabels: role: backend policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: role: frontend ``` ---