Sebelum melakukan upgrade kluster ke v1.12, Anda harus meningkatkan komponen metrics-server. Proses upgrade terdiri dari tiga bagian: mengganti collector metrik, mengganti tautan pemantauan, dan menyesuaikan pengaturan komponen agar kompatibel.
Prasyarat
Anda memiliki Cluster khusus ACK yang menjalankan v1.12.6 atau versi sebelumnya.
Ganti collector metrik
Buat file bernama metrics-server.yaml dengan konten berikut, lalu jalankan perintah kubectl apply -f metrics-server.yaml untuk mengganti collector metrik dari Heapster ke 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## dengan ID wilayah (misalnya, cn-hangzhou untuk China (Hangzhou)) dan ##CLUSTER_ID## dengan ID kluster Anda.
Ganti tautan pemantauan
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Temukan tiga node master kluster tersebut, lalu klik ID instans salah satu node master.
-
Pada halaman Instance Details, klik Connect.
Di jendela koneksi jarak jauh, masukkan password koneksi jarak jauh, lalu klik OK. Setelah login, 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.yamlDi kotak dialog Copy and Paste Command, tempel perintah tersebut, lalu klik OK.
-
Ulangi prosedur ini pada dua node master lainnya.
Setelah menjalankan perintah tersebut, kubelet akan secara otomatis restart dan memperbarui komponen kube-controller-manager.
Sesuaikan komponen agar kompatibel
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Dari daftar drop-down Namespace, pilih kube-system. Temukan layanan heapster, lalu klik View in YAML di kolom Actions.
-
Di kotak dialog yang muncul, ubah nilai
k8s-apppada bagianselectormenjadimetrics-server, lalu klik Update.apiVersion: v1 kind: Service metadata: creationTimestamp: '2019-01-14T09:38:56Z' name: heapster namespace: kube-system resourceVersion: '22030561' selfLink: /api/v1/namespaces/kube-system/services/heapster uid: 36b86a85-17e0-11e9-a14f-00163e06b896 spec: clusterIP: xxx.xxx.xxx.xxx ports: - port: 80 protocol: TCP targetPort: 8082 selector: k8s-app: metrics-server sessionAffinity: None type: ClusterIP status: loadBalancer: {} Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Di halaman Deployments, dari daftar drop-down Namespace, pilih kube-system.
-
Pilih komponen
heapsterdanmonitoring-influxdb, lalu di kolom Actions, pilih . -
Di kotak dialog yang muncul, klik OK.
CatatanSaat menghapus komponen
monitoring-influxdb, centang kotak pilihan Delete the associated monitoring-influxdb Service di kotak dialog Delete monitoring-influxdb, lalu klik OK. -
Verifikasi pergantian tautan pemantauan.
Tunggu sekitar 3 menit hingga tautan pemantauan selesai diinisialisasi.
Di panel navigasi kiri, pilih . Di halaman Pods, jika kolom CPU dan Memory menampilkan nilai, maka pergantian tautan pemantauan berhasil.
CatatanJika nilai CPU dan Memory untuk semua komponen adalah 0, hal tersebut menunjukkan adanya error.