Jika proses import Kubernetes cluster di Rancher terhenti dengan status “Waiting for API server”, berikut adalah langkah-langkah untuk mengatasi masalah tersebut:
- Periksa Koneksi Jaringan: Pastikan Rancher dapat terhubung ke API server Kubernetes dengan memeriksa konektivitas jaringan dan firewall. Cek apakah port yang digunakan oleh API server (default 6443) terbuka.
- Verifikasi URL API Server: Pastikan URL API server yang digunakan untuk import sudah benar dan dapat diakses dari Rancher. Periksa konfigurasi kubeconfig untuk memastikan URL API server sesuai.
- Cek Status API Server: Pastikan API server Kubernetes berjalan dengan normal. Gunakan perintah
kubectl get pods -n kube-system
untuk memeriksa status pod API server dan komponen terkait. - Periksa Log Rancher: Lihat log Rancher untuk mencari pesan kesalahan atau petunjuk lebih lanjut tentang mengapa proses import terhenti. Log dapat diakses dari antarmuka pengguna Rancher atau melalui
kubectl logs
. - Pastikan Sertifikat Valid: Verifikasi bahwa sertifikat SSL/TLS yang digunakan oleh API server valid dan tidak kedaluwarsa. Sertifikat yang tidak valid dapat menghalangi komunikasi antara Rancher dan API server.
- Restart Rancher dan API Server: Kadang-kadang, restart layanan Rancher atau API server Kubernetes dapat menyelesaikan masalah konektivitas.
Dengan mengikuti langkah-langkah ini, masalah “Waiting for API server” saat mengimport cluster Kubernetes di Rancher dapat diidentifikasi dan diperbaiki.
Adapun pengecekan logs bisa dilakukan dengan cara sebagai berikut :
Check status pod rancher agent
masadmin@master01:~$ kubectl -n cattle-system get pods -l app=cattle-cluster-agent -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cattle-cluster-agent-556dc897c6-pf5qk 0/1 CrashLoopBackOff 4 (81s ago) 4m31s 10.42.0.61 master01 <none> <none> masadmin@master01:~$
Check logs
masadmin@master01:~$ kubectl logs -f cattle-cluster-agent-556dc897c6-pf5qk -n cattle-system INFO: Environment: CATTLE_ADDRESS=10.42.0.61 CATTLE_CA_CHECKSUM=b6520b3e5ed568ddac69ae6f02ce9e2a29eda7f11eeda7571a78d134d65f7435 CATTLE_CLUSTER=true CATTLE_CLUSTER_AGENT_PORT=tcp://10.43.75.46:80 CATTLE_CLUSTER_AGENT_PORT_443_TCP=tcp://10.43.75.46:443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_ADDR=10.43.75.46 CATTLE_CLUSTER_AGENT_PORT_443_TCP_PORT=443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_PORT_80_TCP=tcp://10.43.75.46:80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_ADDR=10.43.75.46 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PORT=80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_SERVICE_HOST=10.43.75.46 CATTLE_CLUSTER_AGENT_SERVICE_PORT=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTP=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTPS_INTERNAL=443 CATTLE_CLUSTER_REGISTRY= CATTLE_INGRESS_IP_DOMAIN=sslip.io CATTLE_INSTALL_UUID=bcfd8078-911e-42ba-81fb-0b4814cd7101 CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=false CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-556dc897c6-pf5qk CATTLE_RANCHER_WEBHOOK_VERSION=103.0.6+up0.4.7 CATTLE_SERVER=https://192.168.72.154.sslip.io CATTLE_SERVER_VERSION=v2.8.5 INFO: Using resolv.conf: nameserver 10.43.0.10 search cattle-system.svc.cluster.local svc.cluster.local cluster.local options ndots:5 ERROR: https://10.20.30.154.sslip.io/ping is not accessible (Could not resolve host: 10.20.30.154.sslip.io) masadmin@master01:~$
Memperbaiki domain di server name atau bisa juga dengan menambahkan domain alias pada deployment cattle-cluster-agent
masadmin@master01:~$ kubectl edit deployment cattle-cluster-agent -n cattle-system Warning: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use "kubernetes.io/os" instead deployment.apps/cattle-cluster-agent edited masadmin@master01:~$
Menambahkan hostaliast pada deployment cattle-cluster-agent
hostAliases: - hostnames: - 10.20.30.154.sslip.io ip: 10.20.30.154
Adapun peletakan hostalias sejajar dengan variable container, bisa di taruh di bawah dns policy sebagaimana berikut :
..... dnsPolicy: ClusterFirst hostAliases: - hostnames: - 10.20.30.154.sslip.io ip: 10.20.30.154 restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: cattle serviceAccountName: cattle .....
Untuk penyebab error lainnya bisa juga di ketahui dari hasil logs yang muncul pada pod cattle-rancher-agent