Jika proses import Kubernetes cluster di Rancher terhenti dengan status “Waiting for API server”, berikut adalah langkah-langkah untuk mengatasi masalah tersebut:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

Leave a Reply

Your email address will not be published. Required fields are marked *