16.2 騰訊雲

騰訊雲容器服務 TKE 是騰訊雲提供的 Kubernetes 託管服務,適合把容器化應用部署到雲上。官方文件見 騰訊雲容器服務

騰訊雲

圖 16-1:騰訊雲標識

下面的範例只保留建立叢集、部署應用、管理映象和設定加速器這幾類最常見操作。

騰訊雲容器服務介面

圖 16-2:騰訊雲容器服務示意圖

騰訊雲容器服務:TKE 簡介

騰訊雲容器服務 (TKE, Tencent Kubernetes Engine) 是一款容器編排平台,基於原生 Kubernetes 提供,支援自動擴充套件、負載均衡、多可用區高可用等企業級功能。TKE 幫助開發者快速部署和管理容器化應用,消除叢集運維的複雜度。

基本使用步驟

1. 建立叢集

登入騰訊雲控制台,進入容器服務模組:

  • 選擇 『建立叢集』,設定叢集名稱、地域和網路
  • 選擇節點設定(雲服務器規格和數量)
  • 設定 Kubernetes 版本和安全組
  • 完成建立後獲得叢集 kubeconfig 檔案
# 下載 kubeconfig 檔案後,設定本地環境
export KUBECONFIG=/path/to/kubeconfig.yaml
kubectl cluster-info

2. 部署容器應用

建立 Deployment 部署應用:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

應用設定檔案:

kubectl apply -f deployment.yaml
kubectl get pods
kubectl get svc

3. 管理映象

使用騰訊雲容器映象服務 (TCR) 儲存和分發私有映象:

# 登入騰訊雲映象倉庫
docker login ccr.ccs.tencentyun.com -u <username>

# 標記本地映象
docker tag my-app:latest ccr.ccs.tencentyun.com/namespace/my-app:latest

# 推送映象到騰訊雲
docker push ccr.ccs.tencentyun.com/namespace/my-app:latest

騰訊雲 Docker 映象加速器設定

如果你的賬號開通了映象加速器,可以把控制台給出的地址寫入 Docker 設定。

Linux 系統設定

編輯 /etc/docker/daemon.json 檔案(如果不存在則建立):

# 建立或編輯設定檔案
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

新增以下內容:

{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
  ],
  "insecure-registries": []
}

重啟 Docker 服務:

sudo systemctl daemon-reload
sudo systemctl restart docker

驗證設定:

docker info | grep -A 5 "Registry Mirrors"

Windows/Mac 設定

對於 Docker Desktop,在設定介面中開啟 Docker Engine,把上述 registry-mirrors 欄位寫入 JSON 後重啟即可。

騰訊雲容器映象服務:TCR

TCR 提供私有映象倉庫、訪問控制和映象分發能力。一個最小範例如下:

# 登入到騰訊雲 TCR
docker login ccr.ccs.tencentyun.com --username <username>

# 建立並推送映象
docker build -t my-app:v1.0 .
docker tag my-app:v1.0 ccr.ccs.tencentyun.com/my-namespace/my-app:v1.0
docker push ccr.ccs.tencentyun.com/my-namespace/my-app:v1.0

TKE 叢集中使用 TCR 映象

設定映象拉取憑證後,在 Deployment 中直接引用 TCR 映象。Secret 必須建立在使用它的 namespace 中;下面範例使用 default namespace。

$ kubectl create secret docker-registry tcr-secret \
    --docker-server=ccr.ccs.tencentyun.com \
    --docker-username=<username> \
    --docker-password=<token-or-password> \
    --namespace=default

安全提示:在指令行直接輸入密碼或 token 可能進入 shell 歷史記錄。生產環境可先 docker login,再基於受保護的 ~/.docker/config.json 建立 kubernetes.io/dockerconfigjson Secret,或使用雲廠商提供的託管憑據整合。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      imagePullSecrets:
      - name: tcr-secret
      containers:
      - name: my-app
        image: ccr.ccs.tencentyun.com/my-namespace/my-app:v1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            memory: "256Mi"
            cpu: "100m"
          limits:
            memory: "512Mi"
            cpu: "500m"
第 132 页,共 196 页
使用 mdPress 构建