iT邦幫忙

2023 iThome 鐵人賽

DAY 21
1
Cloud Native

30天準備GCP Professional Cloud Architect系列 第 21

Day 21:Google Kubernetes Engine (2)

  • 分享至 

  • xImage
  •  

Kubernetes 是一個開源的容器編排系統,可讓您輕鬆地部署和管理容器化應用程式。Kubernetes 使用了 PodsDeploymentsServices 等概念來管理容器化應用程式。

  • Pods 是 Kubernetes 的基本單位。Pods 是一組容器,它們共享相同的 IP 地址和端口。
  • Deployments 是 Pods 的控制器。Deployments 會確保 Pods 的數量和版本符合您的要求。
  • Services 是 Pods 的抽象。Services 定義 Pods 之前是如何溝通的。

增加 Pods 的數量

您可以使用 kubectl scale 命令來增加 Pods 的數量。例如,要將 my-deployment 的 Pods 數量增加到 2,您可以使用以下命令:

kubectl scale deployment my-deployment --replicas=2

增加 Nodes 的數量

您可以使用 gcloud container clusters resize 命令來增加 Nodes 的數量。例如,要將 my-clustermy-node-pool 的 Nodes 數量增加到 3,您可以使用以下命令:

gcloud container clusters resize my-cluster --node-pool my-node-pool --num-nodes 3

設置 HPA

您可以使用 kubectl autoscale 命令來設置 HPA。HPA 會根據應用程式的使用量自動調整 Pods 的數量。例如,要將 my-deployment 的 Pods 數量最大增加到 10,並且當 CPU 使用率達到 70% 時啟動,您可以使用以下命令:

kubectl autoscale deployment my-deployment --max 10 --cpu-percent=70

設置 Cluster 的 autoscaling

您可以使用 gcloud container clusters update 命令來設置 Cluster 的 autoscaling。Cluster 的 autoscaling 會根據 Cluster 的使用量自動調整 Nodes 的數量。例如,要將 my-cluster 的 Nodes 數量最小增加到 1,最大增加到 10,您可以使用以下命令:

gcloud container clusters update my-cluster --enable-autoscaling --min-nodes=1 --max-nodes=10

加入應用程式的 Configuration

您可以使用 ConfigMap 來加入應用程式的 Configuration。例如,要將 DB_HOST 的值設定為 dbhost,您可以使用以下命令:

kubectl create configmap my-configmap --from-literal=DB_HOST=dbhost

加入 Password configuration

您可以使用 Secrets 來加入 Password configuration。例如,要將 DB_PASSWORD 的值設定為 dbpassword,您可以使用以下命令:

kubectl create secret generic my-secrets --from-literal=DB_PASSWORD=dbpassword

將服務部署到特定的 node-pools 上

您可以使用 nodeSelector 來將服務部署到特定的 node-pools 上。例如,要將 my-deployment 部署到 my-node-pool 上,您可以使用以下命令:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  selector:
    matchLabels:
      app: my-app
  replicas: 2
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: my-registry/my-container:0.0.1
        nodeSelector:
          nodepool: my-node-pool


上一篇
Day 20:IAM - Service Account Use Cases
下一篇
Day 22:GKE Cluster
系列文
30天準備GCP Professional Cloud Architect30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
sponge1220
iT邦新手 4 級 ‧ 2023-09-23 00:06:09

Calvin iT邦新手 3 級 ‧ 2023-09-23 09:41:33 檢舉

我要留言

立即登入留言