ACK menyediakan pemeriksaan kluster untuk upgrade kluster, migrasi kluster, komponen, dan kelompok node. Anda dapat menjalankan pemeriksaan sebelum operasi tersebut untuk memverifikasi bahwa kluster Anda memenuhi persyaratan serta mendapatkan rekomendasi perbaikan untuk item pemeriksaan yang gagal.
Pemeriksaan kluster
Pemeriksaan upgrade kluster
Mengingat kompleksitas Kubernetes, upgrade kluster melibatkan risiko signifikan. Untuk memastikan proses berjalan lancar, ACK melakukan serangkaian pemeriksaan pra-upgrade. Anda hanya dapat melanjutkan upgrade setelah kluster Anda lulus semua pemeriksaan. Item pemeriksaan spesifik bervariasi tergantung pada tipe kluster, versi Kubernetes, dan runtime kontainer. Untuk daftar lengkap pemeriksaan yang berlaku bagi kluster Anda, lihat konsol ACK.
Pemeriksaan upgrade kluster mencakup tiga kategori:
-
Cluster Resources: Memeriksa sumber daya cloud yang terkait dengan kluster ACK, seperti SLB, ECS, dan VPC.
-
Cluster Components: Memeriksa konfigurasi kluster ACK, komponennya, dan aplikasi, seperti apakah versi komponen memenuhi persyaratan dan apakah aplikasi menggunakan API yang ditinggalkan.
-
Cluster Configuration: Memeriksa konfigurasi node dalam kluster ACK. Pemeriksaan ini membuat Pod pada node untuk mengumpulkan informasi.
|
Category |
Check item |
Description |
|
Cluster Resources |
API Server SLB |
Memverifikasi bahwa instance SLB ada. |
|
Memverifikasi bahwa instance SLB dalam kondisi sehat. |
||
|
Memverifikasi bahwa pendengar SLB dikonfigurasi dengan benar. |
||
|
Memverifikasi bahwa kelompok server backend instance SLB dikonfigurasi dengan benar. |
||
|
Memverifikasi bahwa pengaturan kontrol akses SLB benar. Jika tidak ada kontrol akses yang dikonfigurasi, pemeriksaan ini lolos. |
||
|
VPC |
Memverifikasi bahwa instance VPC ada. |
|
|
Memverifikasi bahwa instance VPC dalam kondisi sehat. |
||
|
vSwitch |
Memverifikasi bahwa vSwitch ada. |
|
|
Memverifikasi bahwa vSwitch dalam kondisi sehat. |
||
|
Memverifikasi bahwa vSwitch memiliki setidaknya dua alamat IP yang tersedia. |
||
|
ECS |
Memverifikasi bahwa instance ECS ada. |
|
|
Memverifikasi bahwa instance ECS dalam kondisi sehat. |
||
|
Memverifikasi bahwa grup keamanan ECS dalam kondisi sehat. |
||
|
Memverifikasi bahwa periode layanan ECS valid. |
||
|
Memverifikasi bahwa tipe instans ECS memenuhi persyaratan. |
||
|
Memverifikasi bahwa client Cloud Assistant dalam kondisi sehat. |
||
|
Cluster Components |
Kube Proxy master |
Memverifikasi bahwa komponen tersebut ada. |
|
Kube Proxy worker |
Memverifikasi bahwa komponen tersebut ada. |
|
|
API Service |
Memeriksa adanya layanan API yang tidak tersedia. |
|
|
Cluster instance |
Memverifikasi bahwa kluster memiliki 3 atau 5 node master. |
|
|
Cluster components |
Memverifikasi bahwa versi komponen Terway memenuhi persyaratan. |
|
|
Memverifikasi bahwa versi komponen CoreDNS memenuhi persyaratan. |
||
|
Memverifikasi bahwa versi komponen cloud-controller-manager memenuhi persyaratan. |
||
|
Memverifikasi bahwa versi komponen Nginx Ingress Controller memenuhi persyaratan. |
||
|
Memverifikasi bahwa versi komponen ACK Virtual Node memenuhi persyaratan. |
||
|
Memverifikasi bahwa versi komponen Metrics Server memenuhi persyaratan. |
||
|
Node |
Memverifikasi bahwa node memiliki alamat IP. |
|
|
Memverifikasi bahwa node dapat dijadwalkan (schedulable). |
||
|
Memverifikasi bahwa node berada dalam status Ready. |
||
|
Memverifikasi bahwa sistem operasi node mendukung upgrade. |
||
|
Memverifikasi bahwa node memiliki lebih dari dua Pod yang tersedia. |
||
|
Deprecated API |
Memeriksa penggunaan API yang ditinggalkan dalam kluster. |
|
|
Cluster Configuration |
iptables configuration |
Memverifikasi bahwa konfigurasi iptables benar. |
|
Operating system |
Memverifikasi bahwa sistem operasi mendukung upgrade. |
|
|
yum |
Memverifikasi bahwa yum berfungsi dengan benar. |
|
|
Disk |
Memverifikasi bahwa sistem file node dalam kondisi sehat. |
|
|
Memverifikasi bahwa node memiliki ruang disk kosong lebih dari 5%. |
||
|
Swap |
Memeriksa apakah Swap diaktifkan pada node. |
|
|
NTP |
Memverifikasi bahwa NTP berfungsi dengan benar pada node. |
|
|
Systemd |
Memverifikasi bahwa versi Systemd lebih baru dari systemd-219-67. |
|
|
kubelet |
Memverifikasi bahwa konfigurasi kubelet sesuai dengan pengaturan yang diharapkan. |
|
|
Container runtime |
Memverifikasi bahwa runtime Docker atau containerd dalam kondisi sehat. |
|
|
Kernel configuration |
Memverifikasi bahwa konfigurasi kernel node benar. |
|
|
Manifest configuration |
Memverifikasi bahwa file Manifest sesuai dengan pengaturan yang diharapkan. |
Pemeriksaan migrasi kluster
Sebelum migrasi kluster, ACK menjalankan pemeriksaan pra-migrasi. Migrasi hanya dapat dilanjutkan setelah semua pemeriksaan lolos. Hal ini berlaku untuk skenario berikut:
-
Migrasi dari ACK dedicated cluster ke ACK Pro managed cluster.
-
Migrasi dari ACK managed cluster dasar ke ACK Pro managed cluster.
Pemeriksaan migrasi kluster mencakup empat kategori:
-
Cluster Resources: Memeriksa sumber daya cloud yang terkait dengan kluster ACK, seperti SLB, ECS, dan VPC.
-
Cluster Components: Memeriksa konfigurasi komponen dalam kluster ACK, seperti adanya layanan API yang tidak tersedia.
-
Cluster Configuration: Memeriksa konfigurasi node dalam kluster ACK. Pemeriksaan ini membuat Pod pada node untuk mengumpulkan informasi.
-
Component Usage: Saat Anda melakukan migrasi ACK dedicated cluster, beberapa komponennya akan dikelola oleh ACK. Pemeriksaan ini memverifikasi bahwa komponen-komponen tersebut dalam kondisi sehat sebelum migrasi.
|
Category |
Check item |
Description |
|
Cluster Resources |
API Server SLB |
Memverifikasi bahwa instance SLB ada. |
|
Memverifikasi bahwa instance SLB dalam kondisi sehat. |
||
|
Memverifikasi bahwa pendengar SLB dikonfigurasi dengan benar. |
||
|
Memverifikasi bahwa kelompok server backend instance SLB dikonfigurasi dengan benar. |
||
|
Memverifikasi bahwa pengaturan kontrol akses SLB benar. Jika tidak ada kontrol akses yang dikonfigurasi, pemeriksaan ini lolos. |
||
|
VPC |
Memverifikasi bahwa instance VPC ada. |
|
|
Memverifikasi bahwa instance VPC dalam kondisi sehat. |
||
|
vSwitch |
Memverifikasi bahwa vSwitch ada. |
|
|
Memverifikasi bahwa vSwitch dalam kondisi sehat. |
||
|
Memverifikasi bahwa vSwitch memiliki setidaknya dua alamat IP yang tersedia. |
||
|
ECS |
Memverifikasi bahwa instance ECS ada. |
|
|
Memverifikasi bahwa instance ECS dalam kondisi sehat. |
||
|
Memverifikasi bahwa grup keamanan ECS dalam kondisi sehat. |
||
|
Memverifikasi bahwa client Cloud Assistant dalam kondisi sehat. |
||
|
Cluster Components |
Kube Proxy master |
Memverifikasi bahwa komponen tersebut ada. |
|
Kube Proxy worker |
Memverifikasi bahwa komponen tersebut ada. |
|
|
API Service |
Memeriksa adanya layanan API yang tidak tersedia. |
|
|
Cluster instance |
Memverifikasi bahwa kluster memiliki 3 atau 5 node master. |
|
|
Node |
Memverifikasi bahwa node memiliki alamat IP. |
|
|
Memverifikasi bahwa node dapat dijadwalkan (schedulable). |
||
|
Memverifikasi bahwa node berada dalam status Ready. |
||
|
Memverifikasi bahwa sistem operasi node mendukung upgrade. |
||
|
Memverifikasi bahwa node memiliki lebih dari dua Pod yang tersedia. |
||
|
Cluster configuration |
Operating system |
Memverifikasi bahwa sistem operasi mendukung upgrade. |
|
yum |
Memverifikasi bahwa yum berfungsi dengan benar. |
|
|
Component usage |
cloud-controller-manager |
Memverifikasi bahwa komponen cloud-controller-manager dalam kondisi sehat. |
Pemeriksaan komponen
Pemeriksaan komponen berlaku untuk skenario upgrade komponen. Sebelum komponen di-upgrade, ACK menjalankan pemeriksaan pra-upgrade. Upgrade hanya dapat dilanjutkan setelah komponen lolos semua pemeriksaan.
|
Category |
Check item |
Description |
|
cloud-controller-manager |
Addon_CCM |
Memeriksa apakah upgrade komponen ini memengaruhi SLB. |
|
Component_Block_Version |
Memverifikasi bahwa versi CCM dapat di-upgrade. |
|
|
csi-plugin |
DaemonSet_Annotation |
Memverifikasi bahwa anotasi DaemonSet sesuai dengan pengaturan yang diharapkan. |
|
Csi_Driver_Attributes |
Memverifikasi bahwa atribut driver CSI memenuhi persyaratan. |
|
|
Node_Status_Ready |
Memverifikasi bahwa node kluster berada dalam status Ready. |
|
|
csi-provisioner |
Stateful_Set_Exist |
Memverifikasi bahwa komponen dideploy sebagai StatefulSet. |
|
Deployment_Annotation |
Memverifikasi bahwa anotasi Deployment sesuai dengan pengaturan yang diharapkan. |
|
|
Storage_Class_Attributes |
Memverifikasi bahwa atribut StorageClass memenuhi persyaratan. |
|
|
Csi_Provisioner_Node_Count |
Memverifikasi bahwa terdapat setidaknya dua node dalam status Ready. |
|
|
terway-eniip |
Systemd |
Memverifikasi bahwa versi Systemd pada node lebih baru dari systemd-219-67. |
|
nginx-ingress-controller |
Deployment_Healthy |
Memverifikasi bahwa Deployment Nginx Ingress Controller dalam kondisi sehat. |
|
Deployment_Not_Under_HPA |
Memeriksa apakah HorizontalPodAutoscaler (HPA) dikonfigurasi untuk Deployment tersebut. |
|
|
Deployment_Not_Modified |
Memeriksa apakah Deployment telah dimodifikasi. |
|
|
Nginx_Ingress_Pod_Error_Log |
Memeriksa log error pada Nginx. |
|
|
LoadBalancer_Service_Healthy |
Memverifikasi bahwa Service Nginx dalam kondisi sehat. |
|
|
Nginx_Ingress_Configuration |
Memeriksa adanya konfigurasi Ingress yang tidak kompatibel. |
|
|
aliyun-acr-credential-helper |
RamRole_Exist |
Memverifikasi bahwa komponen diberikan peran AliyunCSManagedAcrRole. |
|
ack-cost-exporter |
RamRole_Exist |
Memverifikasi bahwa komponen diberikan peran AliyunCSManagedCostRole. |
Pemeriksaan kelompok node
Pemeriksaan kelompok node berlaku untuk skenario upgrade kelompok node. Saat Anda melakukan upgrade kelompok node, ACK menjalankan pemeriksaan pra-upgrade. Anda hanya dapat meng-upgrade kelompok node setelah lolos semua pemeriksaan.
Pemeriksaan kelompok node mencakup tiga kategori:
-
Cluster Resources: Memeriksa sumber daya cloud yang terkait dengan kluster ACK, seperti SLB dan VPC.
-
Cluster Components: Memeriksa konfigurasi kluster ACK, node, dan aplikasi.
-
Cluster Configuration: Memeriksa konfigurasi node dalam kluster ACK. Pemeriksaan ini membuat Pod pada node untuk mengumpulkan informasi.
|
Category |
Check item |
Description |
|
Cluster Resources |
API Server SLB |
Memverifikasi bahwa instance SLB ada. |
|
Memverifikasi bahwa instance SLB dalam kondisi sehat. |
||
|
Memverifikasi bahwa pendengar SLB dikonfigurasi dengan benar. |
||
|
Memverifikasi bahwa kelompok server backend instance SLB dikonfigurasi dengan benar. |
||
|
Memverifikasi bahwa pengaturan kontrol akses SLB benar. Jika tidak ada kontrol akses yang dikonfigurasi, pemeriksaan ini lolos. |
||
|
VPC |
Memverifikasi bahwa instance VPC ada. |
|
|
Memverifikasi bahwa instance VPC dalam kondisi sehat. |
||
|
vSwitch |
Memverifikasi bahwa vSwitch ada. |
|
|
Memverifikasi bahwa vSwitch dalam kondisi sehat. |
||
|
Memverifikasi bahwa vSwitch memiliki setidaknya dua alamat IP yang tersedia. |
||
|
Cluster Components |
API Service |
Memeriksa adanya layanan API yang tidak tersedia. |
|
Cluster instance |
Memverifikasi bahwa kluster memiliki 3 atau 5 node master. |
|
|
Node |
Memverifikasi bahwa node berada dalam status Ready. |
|
|
Memverifikasi bahwa node memiliki lebih dari dua Pod yang tersedia. |
||
|
HostPath |
Memeriksa apakah ada Pod pada node yang menggunakan volume HostPath. |
|
|
Cluster Configuration |
iptables configuration |
Memverifikasi bahwa konfigurasi iptables benar. |
|
Operating system |
Memverifikasi bahwa sistem operasi mendukung upgrade. |
|
|
yum |
Memverifikasi bahwa yum berfungsi dengan benar. |
|
|
Disk |
Memverifikasi bahwa sistem file node dalam kondisi sehat. |
|
|
Node remaining disk space |
Memverifikasi bahwa node memiliki ruang disk kosong lebih dari 5%. |
|
|
Swap |
Memeriksa apakah Swap diaktifkan pada node. |
|
|
NTP |
Memverifikasi bahwa NTP berfungsi dengan benar pada node. |
|
|
Systemd |
Memverifikasi bahwa versi Systemd lebih baru dari systemd-219-67. |
|
|
kubelet |
Memverifikasi bahwa konfigurasi kubelet sesuai dengan pengaturan yang diharapkan. |
|
|
Container runtime |
Memverifikasi bahwa runtime Docker atau containerd dalam kondisi sehat. |
|
|
Kernel configuration |
Memverifikasi bahwa konfigurasi kernel node benar. |
|
|
Manifest configuration |
Memverifikasi bahwa file Manifest sesuai dengan pengaturan yang diharapkan. |
Solusi untuk pemeriksaan yang gagal
|
Failed check |
Solution |
|
systemd version is too low |
|
|
component version is too low |
Upgrade versi komponen. Untuk informasi selengkapnya, lihat Kelola komponen. |
|
yum check timed out |
Jalankan perintah berikut untuk memeriksa timeout yum. Timeout default adalah 10 detik.
|
|
API Service is unavailable |
|
|
A node contains pods that use HostPath |
Meng-upgrade node dengan mengganti disk sistemnya dapat menyebabkan kehilangan data untuk pod yang menggunakan HostPath untuk memasang direktori host. Periksa direktori yang dipasang pada setiap pod yang terdampak. Jika tidak ada dampak, Anda dapat melanjutkan upgrade. Pemeriksaan ini hanya bersifat informatif dan tidak menghalangi upgrade. |
|
The cluster uses deprecated APIs |
Identifikasi sumber API yang ditinggalkan dan ambil tindakan yang sesuai. Untuk informasi selengkapnya, lihat API yang ditinggalkan. |
API yang ditinggalkan
Saat Anda menjalankan pemeriksaan pra-upgrade pada kluster yang menjalankan Kubernetes 1.20 atau lebih baru, pemeriksaan tersebut mendeteksi penggunaan API yang ditinggalkan. Hasil pemeriksaan mencantumkan API-API tersebut.
Sebagai contoh, saat Anda meng-upgrade kluster dari Kubernetes 1.20 ke Kubernetes 1.22, sistem memindai log audit dari hari sebelumnya untuk menemukan penggunaan API yang ditinggalkan.
-
Jika kluster menggunakan API yang ditinggalkan, hasil pemeriksaan hanya berupa notifikasi dan tidak menghalangi upgrade.
-
Jika Anda terus menggunakan API yang ditinggalkan di Kubernetes 1.22, hal ini dapat menimbulkan risiko keamanan. Anda harus menilai dampaknya terhadap bisnis Anda.
API yang ditinggalkan dikategorikan ke dalam empat tipe berdasarkan sumber permintaan (user agent). Sebelum meng-upgrade kluster, identifikasi sumber setiap API yang ditinggalkan berdasarkan Category-nya dalam tabel berikut dan ambil tindakan yang direkomendasikan.
|
Type |
Recommended action |
Example |
|
core |
Komponen inti Kubernetes: ACK secara otomatis meng-upgrade komponen-komponen ini selama upgrade kluster. Komponen ini tidak ditampilkan di halaman pemeriksaan, dan tidak diperlukan tindakan apa pun. |
kube-apiserver, kube-scheduler, kube-controller-manager |
|
ack |
Komponen ACK: Komponen-komponen ini disediakan oleh ACK dan tidak ditampilkan di halaman API yang ditinggalkan. Sebagai gantinya, ACK memandu Anda untuk meng-upgrade komponen-komponen ini di halaman Add-ons. Catatan
|
metrics-server, nginx-ingress-controller, CoreDNS |
|
opensource |
Komponen open source: Tipe ini mencakup komponen dari komunitas open source. Putuskan apakah akan meng-upgrade komponen tersebut berdasarkan kebutuhan Anda. Catatan
Notifikasi API yang ditinggalkan hanya bersifat informatif dan tidak memengaruhi upgrade. Upgrade komponen berdasarkan kebutuhan Anda untuk menghindari gangguan fungsionalitasnya. |
rancher, elasticsearch-operator, dll. |
|
unknown |
Sumber tidak dikenal: Sumber yang tidak sesuai dengan tipe-tipe sebelumnya ditandai sebagai unknown. Anda harus memutuskan apakah akan meng-upgrade komponen tersebut dan melakukannya sendiri. Catatan
Notifikasi API yang ditinggalkan hanya bersifat informatif dan tidak memengaruhi upgrade. Upgrade komponen berdasarkan kebutuhan Anda untuk menghindari gangguan fungsionalitasnya. |
kubectl, agent, Go-http-client, okhttp |
Untuk melihat informasi API yang ditinggalkan:
-
Di halaman Upgrade Cluster, klik Precheck, lalu klik View Details.
-
Di halaman Report, klik View Details.
-
Halaman detail menampilkan API yang ditinggalkan, user agent, tipe, versi Kubernetes tempat API tersebut ditinggalkan, waktu akses terakhir, dan alamat IP sumber.
Halaman Report berisi tiga tab: Cluster Resources, Cluster Components, dan Node Configuration. Tab Node Configuration mencakup peringatan yang berbunyi: "Kluster masih menggunakan API Kubernetes yang ditinggalkan."