Topik ini menjelaskan cara memperbarui sertifikat yang akan kedaluwarsa untuk ACK dedicated clusters. Anda dapat memperbarui semua sertifikat node melalui Konsol atau kubectl, atau memperbarui sertifikat node master dan node pekerja secara manual.
ACK secara otomatis memperbarui sertifikat node master di ACK managed clusters. Tidak diperlukan intervensi manual.
Perbarui Semua Sertifikat Node Menggunakan Konsol
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
-
Di sebelah kanan kluster yang sertifikatnya akan kedaluwarsa, klik Update Certificate. Halaman Update Certificate akan muncul.
CatatanOpsi Update Certificate muncul jika sertifikat kluster akan kedaluwarsa dalam waktu sekitar dua bulan.

-
Di halaman Update Certificate, klik Update Certificate. Ikuti petunjuk di layar untuk memperbarui sertifikat.
Setelah sertifikat kluster diperbarui, perubahan berikut terjadi:
-
Halaman Update Certificate menampilkan The certificate has been updated..
-
Di halaman Clusters, prompt Update Certificate tidak lagi ditampilkan untuk kluster tersebut.
-
Perbarui Secara Otomatis Semua Sertifikat Node Menggunakan kubectl
Perbarui Sertifikat
Di salah satu node master dalam kluster, jalankan perintah berikut untuk memperbarui sertifikat semua node dalam kluster.
curl http://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/cert-update/renew.sh | bash
Verifikasi Hasil
Anda harus terhubung ke kluster menggunakan kubectl. Untuk informasi selengkapnya, lihat Connect to a Kubernetes cluster using kubectl.
-
Jalankan perintah berikut untuk melihat status node master dan node pekerja dalam kluster.
kubectl get nodes
-
Jalankan perintah berikut. Sertifikat telah diperbarui ketika nilai COMPLETIONS untuk node master adalah 1 dan nilai COMPLETIONS untuk node pekerja sesuai dengan jumlah node pekerja dalam kluster.
kubectl -n kube-system get job
Perbarui Secara Manual Sertifikat Node Master
-
Di direktori mana pun, salin konten berikut untuk membuat file bernama job-master.yml.
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} -
Dapatkan informasi tentang kluster, seperti jumlah node master dan nama nodenya.
-
Metode 1: Gunakan command line
Jalankan perintah berikut:
kubectl get nodes
-
Metode 2: Gunakan Konsol
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster tersebut atau klik View Details di kolom Actions.
-
Di panel navigasi kiri halaman detail kluster, pilih untuk melihat jumlah node master, nama, alamat IP, dan ID instansnya.
-
-
Jalankan perintah berikut untuk mengganti 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.ymldengan keterangan:
-
${jobname}: nama job. Tetapkan nilai ini menjadi cert-job-2.
-
${hostname}: nama node master dalam kluster. Ganti hostname dengan nama node master yang Anda peroleh pada Langkah 2.
-
-
Jalankan perintah berikut untuk membuat job.
kubectl create -f job-master2.yml -
Jalankan perintah berikut untuk melihat status job. Pembaruan sertifikat selesai ketika nilai COMPLETIONS adalah 1.
kubectl get job -nkube-system -
Ulangi Langkah 3 hingga Langkah 5 untuk memperbarui sertifikat semua node master.

Perbarui Secara Manual Sertifikat Node Pekerja
-
Di direktori mana pun, salin konten berikut untuk membuat file bernama job-node.yml.
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}CatatanJika node pekerja Anda memiliki taint, Anda harus menambahkan
tolerationsuntuk taint tersebut ke file job-node.yml. Untuk melakukannya, tambahkan konten berikut di antarasecurityContext: {}danvolumes:. Jika Anda memiliki n node pekerja dengan taint, salin konten ini sebanyak n kali.tolerations: - effect: NoSchedule key: ${key} operator: Equal value: ${value}Untuk mendapatkan nilai ${name} dan ${value}, lakukan langkah-langkah berikut:
-
Di direktori mana pun, salin konten berikut untuk membuat file bernama taint.tml.
{{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}} -
Jalankan perintah berikut untuk menanyakan nilai ${name} dan ${value} untuk node pekerja yang memiliki taint.
kubectl get nodes -o go-template-file="taint.tml"
-
-
Jalankan perintah berikut untuk mendapatkan CAKey kluster.
sed '1d' /etc/kubernetes/pki/ca.key | base64 -w 0 -
Jalankan perintah berikut untuk mengganti 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.ymlDi mana:
-
${jobname}: nama job. Tetapkan nilai ini menjadi cert-node-2.
-
${nodesize}: jumlah node pekerja. Untuk informasi cara mendapatkan nilai ini, lihat Langkah 1 di Manually Update Worker Node Certificates. Ganti nodesize dengan jumlah node pekerja dalam kluster.
-
${key}: CAKey kluster. Ganti key dengan CAKey yang Anda peroleh pada Langkah 2 di Manually Update Worker Node Certificates.
-
-
Jalankan perintah berikut untuk membuat job.
kubectl create -f job-node2.yml -
Jalankan perintah berikut untuk melihat status job. Pembaruan sertifikat selesai ketika nilai COMPLETIONS sesuai dengan jumlah node pekerja dalam kluster.
kubectl get job -nkube-system