Bir kümeyi v1.12 sürümüne yükseltmeden önce metrics-server bileşenini yükseltmeniz gerekir. Yükseltme süreci üç aşamadan oluşur: ölçüm toplayıcısını değiştirme, izleme bağlantısını değiştirme ve uyumluluk için bileşen ayarlarını düzenleme.
Ön koşullar
v1.12.6 veya daha eski bir sürümü çalıştıran bir ACK özel kümesine sahipsiniz.
Ölçüm toplayıcısını değiştirin
Aşağıdaki içeriğe sahip metrics-server.yaml adlı bir dosya oluşturun. Ardından, ölçüm toplayıcısını Heapster'dan metrics-server'a geçirmek için kubectl apply -f metrics-server.yaml komutunu çalıştırın.
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'
##REGION## ifadesini bölge kimliğiyle (örneğin, Çin (Hangzhou) için cn-hangzhou) ve ##CLUSTER_ID## ifadesini küme kimliğinizle değiştirin.
İzleme bağlantısını değiştirin
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde yolunu izleyin.
Kümenin üç ana düğümünü (master node) bulun. Bir ana düğümün örnek kimliğini tıklayın.
-
Instance Details sayfasında Connect seçeneğini tıklayın.
Uzak bağlantı penceresinde uzak bağlantı parolasını girin ve OK seçeneğini tıklayın. Oturum açtıktan sonra aşağıdaki komutu çalıştırın:
sed -i 's/--horizontal-pod-autoscaler-use-rest-clients=false/--horizontal-pod-autoscaler-use-rest-clients=true/' /etc/kubernetes/manifests/kube-controller-manager.yamlCopy and Paste Command iletişim kutusunda komutu yapıştırın ve OK seçeneğini tıklayın.
Bu prosedürü diğer iki ana düğümde de tekrarlayın.
Komutu yürüttükten sonra kubelet otomatik olarak yeniden başlar ve kube-controller-manager bileşenini günceller.
Bileşenleri uyumluluk için ayarlayın
ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde yolunu izleyin.
Namespace açılır listesinden kube-system öğesini seçin. heapster Hizmetini bulun ve Actions sütununda View in YAML seçeneğini tıklayın.
-
Görüntülenen iletişim kutusunda
selectorbölümündekik8s-appdeğerinimetrics-serverolarak değiştirin. Update seçeneğini tıklayın.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: {} Küme yönetimi sayfasının sol gezinme bölmesinde yolunu izleyin.
Deployments sayfasında Namespace açılır listesinden kube-system öğesini seçin.
heapstervemonitoring-influxdbbileşenlerini seçin ve Actions sütununda yolunu izleyin.-
Görüntülenen iletişim kutusunda OK seçeneğini tıklayın.
Notmonitoring-influxdbbileşenini silerken Delete monitoring-influxdb iletişim kutusundaki Delete the associated monitoring-influxdb Service onay kutusunu seçin ve OK seçeneğini tıklayın. -
İzleme bağlantısı değişimini doğrulayın.
İzleme bağlantısının başlatılması için yaklaşık 3 dakika bekleyin.
Sol gezinme bölmesinde yolunu izleyin. Pods sayfasında CPU ve Memory sütunlarında değerler görüntüleniyorsa izleme bağlantısı değişikliği başarılı olmuştur.
NotTüm bileşenler için CPU ve Memory değerleri 0 ise bu bir hata olduğunu gösterir.