All Products
Search
Document Center

Container Service for Kubernetes:Perbarui sertifikat kluster khusus ACK yang akan kedaluwarsa

Last Updated:Jun 24, 2026

Perbarui semua sertifikat node di ACK dedicated cluster melalui Konsol, kubectl, atau pekerjaan Kubernetes manual.

Catatan

ACK secara otomatis memperbarui sertifikat node master di ACK managed cluster. Tidak diperlukan operasi manual.

Perbarui semua sertifikat node di konsol

  1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Klik Update Certificate di sebelah kluster yang sertifikatnya akan kedaluwarsa. Halaman Update Certificate akan terbuka.

    Catatan

    Tombol Update Certificate muncul untuk kluster yang sertifikatnya akan kedaluwarsa dalam waktu sekitar dua bulan.

    Di daftar kluster, klik Update Certificate pada kolom Actions.

  3. Di halaman Update Certificate, klik Update Certificate dan ikuti petunjuk yang muncul.

    Setelah pembaruan:

    • Halaman Update Certificate menampilkan pesan sukses seperti The certificate has been updated..

    • Di halaman Clusters, prompt Update Certificate untuk kluster tersebut menghilang.

Perbarui semua sertifikat node secara otomatis dengan kubectl

Perbarui sertifikat

Di salah satu node master, perbarui semua sertifikat node:

curl http://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/cert-update/renew.sh | bash

Verifikasi hasilnya

Pastikan Anda telah terhubung ke kluster menggunakan kubectl. Lihat Hubungkan ke kluster Kubernetes menggunakan kubectl.
  1. Lihat status node master dan node pekerja.

    kubectl get nodes
    [root@xxx ~]# kubectl get nodes
    NAME                      STATUS    ROLES     AGE       VERSION
    cn-hangzhou.xxx           Ready     <none>    23d       v1.11.2
    cn-hangzhou.xxx           Ready     <none>    23d       v1.11.2
    cn-hangzhou.xxx           Ready     master    47d       v1.11.2
    cn-hangzhou.xxx           Ready     master    47d       v1.11.2
    cn-hangzhou.xxx           Ready     master    47d       v1.11.2
    cn-hangzhou.xxx           Ready     <none>    47d       v1.11.2
    cn-hangzhou.xxx           Ready     <none>    47d       v1.11.2
    [root@xxx ~]#
  2. Periksa status pekerjaan. Pembaruan selesai ketika nilai COMPLETIONS untuk setiap pekerjaan node master adalah 1/1 dan jumlah penyelesaian pekerjaan node pekerja sesuai dengan total jumlah worker node di kluster.

    kubectl -n kube-system get job
    [root@                              ~]# kubectl get job -nkube-system
    NAME                                  COMPLETIONS   DURATION   AGE
    aliyun-cert-renew-master-1            1/1           46s        4m49s
    aliyun-cert-renew-master-2            1/1           28s        4m19s
    aliyun-cert-renew-master-3            1/1           26s        3m48s
    aliyun-cert-renew-worker              6/6           46s        3m18s
    ingress-nginx-admission-create        1/1           29s        3d
    ingress-nginx-admission-patch         1/1           43s        3d
    kube-eventer-init-1.5-5e0e7cl-aliyun  1/1           31s        3d

Perbarui sertifikat node master secara manual

  1. Di direktori mana pun, buat file job-master.yml dengan konten berikut.

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: ${jobname}
      namespace: kube-system
    spec:
      backoffLimit: 0
      completions: 1
      parallelism: 1
      template:
        spec:
          activeDeadlineSeconds: 3600
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: kubernetes.io/hostname
                    operator: In
                    values:
                    - ${hostname}
          containers:
          - command:
            - /renew/upgrade-k8s.sh
            - --role
            - master
            image: registry.cn-hangzhou.aliyuncs.com/acs/cert-rotate:v1.0.0
            imagePullPolicy: Always
            name: ${jobname}
            securityContext:
              privileged: true
            volumeMounts:
            - mountPath: /alicoud-k8s-host
              name: ${jobname}       
          hostNetwork: true
          hostPID: true
          restartPolicy: Never
          schedulerName: default-scheduler
          securityContext: {}
          tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/master
          volumes:
          - hostPath:
              path: /
              type: Directory
            name: ${jobname}
  2. Dapatkan jumlah dan nama node master di kluster.

    • Metode 1: Gunakan command line

      Jalankan perintah berikut:

      kubectl get nodes
      [root@xxx            ~]# kubectl get nodes
      NAME               STATUS    ROLES     AGE    VERSION
      cn-hangzhou.ixxx   Ready     <none>    22d    v1.11.2
      cn-hangzhou.ixxx   Ready     <none>    22d    v1.11.2
      cn-hangzhou.ixxx   Ready     master    46d    v1.11.2
      cn-hangzhou.ixxx   Ready     master    46d    v1.11.2
      cn-hangzhou.ixxx   Ready     master    46d    v1.11.2
      cn-hangzhou.ixxx   Ready     <none>    46d    v1.11.2
      cn-hangzhou.ixxx   Ready     <none>    46d    v1.11.2
      [root@xxx            ~]#
    • Metode 2: Gunakan konsol

      1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

      2. Di halaman Clusters, klik nama kluster tujuan atau klik Details di kolom Actions.

      3. Di panel navigasi kiri halaman manajemen kluster, pilih Nodes > Nodes untuk melihat jumlah, nama, IP, dan ID instans node master.

  3. Ganti variabel ${jobname} dan ${hostname} dalam file job-master.yml.

    sed 's/${jobname}/cert-job-2/g; s/${hostname}/hostname/g' job-master.yml > job-master2.yml

    Parameter:

    • ${jobname}: nama pekerjaan. Dalam contoh ini, diatur menjadi cert-job-2.

    • ${hostname}: nama node master. Ganti hostname dengan nama yang diperoleh pada Langkah 2.

  4. Buat pekerjaan tersebut.

    kubectl create -f job-master2.yml
  5. Periksa status pekerjaan. Sertifikat telah diperbarui ketika nilai COMPLETIONS adalah 1/1.

    kubectl get job -nkube-system
  6. Ulangi Langkah 3–5 untuk setiap node master yang tersisa.

    [root@xxx ~]# kubectl get job -nkube-system
    NAME          COMPLETIONS   DURATION   AGE
    cert-job-2    1/1           46s        22m
    cert-job-3    1/1           28s        2m
    cert-job-4    1/1           26s        1m
    [root@xxx ~]#

Perbarui sertifikat node pekerja secara manual

  1. Di direktori mana pun, buat file job-node.yml dengan konten berikut.

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: ${jobname}
      namespace: kube-system
    spec:
      backoffLimit: 0
      completions: ${nodesize}
      parallelism: ${nodesize}
      template:
        spec:
          activeDeadlineSeconds: 3600
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                  matchExpressions:
                  - key: job-name
                    operator: In
                    values:
                    - ${jobname}
                topologyKey: kubernetes.io/hostname
          containers:
          - command:
            - /renew/upgrade-k8s.sh
            - --role
            - node
            - --rootkey
            - ${key}
            image: registry.cn-hangzhou.aliyuncs.com/acs/cert-rotate:v1.0.0
            imagePullPolicy: Always
            name: ${jobname}
            securityContext:
              privileged: true
            volumeMounts:
            - mountPath: /alicoud-k8s-host
              name: ${jobname}
          hostNetwork: true
          hostPID: true
          restartPolicy: Never
          schedulerName: default-scheduler
          securityContext: {}
          volumes:
          - hostPath:
              path: /
              type: Directory
            name: ${jobname}
    Catatan

    Jika node pekerja memiliki Taint, tambahkan tolerations untuk Taint tersebut ke file job-node.yml. Tambahkan konten berikut di antara securityContext: {} dan volumes: (jika Anda memiliki n node pekerja dengan Taint, salin bagian ini sebanyak n kali):

          tolerations:
          - effect: NoSchedule
            key: ${key}
            operator: Equal
            value: ${value}

    Untuk mendapatkan ${key} dan ${value}:

    1. Di direktori mana pun, buat file taint.tml dengan konten berikut.

      {{printf "%-50s %-12s\n" "Node" "Taint"}}
                          {{- range .items}}
                          {{- if $taint := (index .spec "taints") }}
                          {{- .metadata.name }}{{ "\t" }}
                          {{- range $taint }}
                          {{- .key }}={{ .value }}:{{ .effect }}{{ "\t" }}
                          {{- end }}
                          {{- "\n" }}
                          {{- end}}
                          {{- end}}
    2. Kueri ${name} dan ${value} dari node pekerja yang memiliki Taint.

      kubectl get nodes -o go-template-file="taint.tml"
      [root@xxx                       ~]# kubectl get nodes -o go-template-file="taint.tml"
      Node                              Taint
      cn-hangzhou.i-xxx                 key1=value1:NoSchedule
      cn-hangzhou.i-xxx                 node-role.kubernetes.io/master=<no value>:NoSchedule
      cn-hangzhou.i-xxx                 node-role.kubernetes.io/master=<no value>:NoSchedule
      cn-hangzhou.i-xxx                 node-role.kubernetes.io/master=<no value>:NoSchedule
  2. Dapatkan kunci CA kluster.

    sed '1d' /etc/kubernetes/pki/ca.key | base64 -w 0
  3. Ganti variabel ${jobname}, ${nodesize}, dan ${key} dalam file job-node.yml.

    sed 's/${jobname}/cert-node-2/g; s/${nodesize}/nodesize/g; s/${key}/key/g' job-node.yml > job-node2.yml

    Parameter:

  4. Buat pekerjaan tersebut.

    kubectl create -f job-node2.yml
  5. Periksa status pekerjaan. Sertifikat telah diperbarui ketika nilai COMPLETIONS sesuai dengan jumlah node pekerja.

    kubectl get job -nkube-system
    [root@xxx ~]# kubectl get job -nkube-system
    NAME          COMPLETIONS   DURATION   AGE
    cert-job-2    1/1           46s        1h
    cert-job-3    1/1           28s        47m
    cert-job-4    1/1           26s        46m
    cert-node-2   4/4           46s        1m
    [root@xxx ~]#