Sebelum memperbarui versi Kubernetes klaster ke 1.12, Anda harus memperbarui komponen metrics-server. Untuk melakukannya, ikuti langkah-langkah berikut: ubah pengumpul metrik, alihkan tautan pemantauan, dan perbarui pengaturan komponen.
Prasyarat
Pastikan bahwa klaster khusus Container Service for Kubernetes (ACK) telah dibuat dan versi Kubernetes klaster tersebut adalah 1.12.6 atau lebih lama.
Ubah pengumpul metrik
Buat file metrics-server.yaml dan salin konten berikut ke dalam file tersebut. Di CLI, jalankan perintah kubectl apply -f metrics-server.yaml untuk mengubah pengumpul metrik dari Heapster menjadi metrics-server.
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin
namespace: kube-system
---
apiVersion: v1
kind: Service
metadata:
labels:
task: monitoring
# For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
# If you are NOT using this as an addon, you should comment out this line.
kubernetes.io/cluster-service: 'true'
kubernetes.io/name: metrics-server
name: heapster
namespace: kube-system
spec:
ports:
- port: 80
targetPort: 8082
selector:
k8s-app: metrics-server
---
apiVersion: v1
kind: Service
metadata:
name: metrics-server
namespace: kube-system
labels:
kubernetes.io/name: metrics-server
spec:
selector:
k8s-app: metrics-server
ports:
- port: 443
protocol: TCP
targetPort: 443
---
apiVersion: apiregistration.k8s.io/v1beta1
kind: APIService
metadata:
name: v1beta1.metrics.k8s.io
spec:
service:
name: metrics-server
namespace: kube-system
group: metrics.k8s.io
version: v1beta1
insecureSkipTLSVerify: true
groupPriorityMinimum: 100
versionPriority: 100
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
labels:
k8s-app: metrics-server
spec:
serviceAccountName: admin
containers:
- name: metrics-server
image: registry.##REGION##.aliyuncs.com/acs/metrics-server:v0.2.1-9dd9511-aliyun
imagePullPolicy: Always
command:
- /metrics-server
- '--source=kubernetes:https://kubernetes.default'
- '--sink=socket:tcp://monitor.csk.##REGION##.aliyuncs.com:8093?clusterId=##CLUSTER_ID##
&public=true'Ganti ##REGION## dan ##CLUSTER_ID## dengan wilayah (seperti cn-hangzhou) dan ID klaster yang sesuai.
Alihkan tautan pemantauan
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Di halaman Clusters, klik nama klaster yang ingin Anda ubah. Di panel navigasi di sebelah kiri, pilih .
Temukan Node master di dalam klaster. Klik ID node master untuk masuk ke halaman Instance Details.
Di bagian Basic Information, klik Connect.
Kotak dialog Enter VNC Password akan muncul. Masukkan kata sandi VNC dan klik OK. Setelah masuk ke instance, jalankan perintah berikut:
sed -i 's/--horizontal-pod-autoscaler-use-rest-clients=false/--horizontal-pod-autoscaler-use-rest-clients=true/' /etc/kubernetes/manifests/kube-controller-manager.yaml
Ulangi langkah-langkah sebelumnya untuk mengalihkan tautan pemantauan untuk node master lainnya.
Setelah menjalankan perintah, kubelet akan memperbarui controller manager.
Perbarui pengaturan komponen
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Di halaman Clusters, temukan klaster yang Anda inginkan dan klik namanya. Di panel di sebelah kiri, pilih .
Pilih namespace kube-system. Temukan Service heapster dan klik View in YAML di kolom Actions dari Service tersebut.
Di kotak dialog yang muncul, atur nilai bidang k8s-app menjadi metrics-server. Klik Update.

Di panel navigasi di sebelah kiri halaman detail, pilih .
Di tab Deployments, pilih namespace kube-system.
Pilih komponen terkait Heapster seperti heapster dan monitoring-influxdb. Di kolom Actions, pilih .
Di kotak dialog yang muncul, klik OK.
CatatanUntuk menghapus komponen monitoring-influxdb, di kotak dialog Delete monitoring-influxdb, pilih Delete the associated monitoring-influxdb Service dan klik OK.
Periksa status tautan.
Dibutuhkan sekitar tiga menit untuk menginisialisasi tautan.
Di panel navigasi di sebelah kiri, pilih . Di halaman Pods, jika penggunaan CPU dan memori normal, itu menunjukkan bahwa tautan telah dialihkan.
CatatanJika penggunaan CPU dan memori semua komponen adalah nol, itu menunjukkan bahwa terjadi kesalahan.