AMC adalah tool baris perintah untuk ACK One Fleet. Topik ini mencakup unduhan dan instalasi, kemampuan utama, serta cara mendapatkan bantuan baris perintah.
AMC adalah plug-in kubectl untuk Distributed Cloud Container Platform for Kubernetes (ACK One). Dengan AMC, Anda dapat:
-
Menggunakan AMC seperti kubectl
-
Mengelola Deployments, Services, dan Ingresses di seluruh kluster yang dikelola oleh Fleet
-
Menanyakan status resource Kubernetes (Pods, Services) di satu atau semua kluster yang dikelola
-
Menampilkan log tugas untuk beban kerja yang dijadwalkan ke kluster yang dikelola
-
Memeriksa topologi aplikasi dan status resource lintas kluster
Prasyarat
Pastikan Anda telah memiliki:
-
Instans ACK One Fleet dengan setidaknya satu kluster terkait
-
File kubeconfig dari instans Fleet
-
wget(Linux) ataucurl(macOS) yang telah diinstal
Instal AMC
Unduh binari AMC, jadikan dapat dieksekusi, lalu pindahkan ke /usr/local/bin.
Linux
| Arsitektur | Perintah |
|---|---|
| amd64 | wget http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-linux-amd64 && chmod +x kubectl-amc-linux-amd64 && mv kubectl-amc-linux-amd64 /usr/local/bin/kubectl-amc |
| arm64 | wget http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-linux-arm64 && chmod +x kubectl-amc-linux-arm64 && mv kubectl-amc-linux-arm64 /usr/local/bin/kubectl-amc |
macOS
| Arsitektur | Perintah |
|---|---|
| amd64 | curl -LO http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-mac-amd64 && chmod +x kubectl-amc-mac-amd64 && mv kubectl-amc-mac-amd64 /usr/local/bin/kubectl-amc |
| arm64 | curl -LO http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-mac-arm64 && chmod +x kubectl-amc-mac-arm64 && mv kubectl-amc-mac-arm64 /usr/local/bin/kubectl-amc |
Verifikasi instalasi
Jalankan kubectl amc -h untuk memverifikasi bahwa AMC telah terinstal:
kubectl amc -h
Daftar kluster yang dikelola dan aliasnya
Jalankan kubectl amc get managedcluster untuk menampilkan semua kluster beserta aliasnya:
kubectl amc get managedcluster
Output yang diharapkan:
Name Alias HubAccepted
managedcluster-c**** cluster1 true
managedcluster-c**** cluster2 true
managedcluster-c**** cluster3 true
Kluster yang sebelumnya dikaitkan dengan ACK One akan menampilkan none pada kolom Alias.
Tetapkan alias kluster
Untuk menetapkan alias kluster:
kubectl annotate managedcluster <managedcluster name> ackone.aliyun.com/cluster-alias=<cluster-alias>
Untuk memperbarui alias, tambahkan --overwrite:
kubectl annotate managedcluster <managedcluster name> ackone.aliyun.com/cluster-alias=<cluster-alias> --overwrite
Menanyakan resource di kluster yang dikelola
Gunakan -m untuk menargetkan kluster tertentu, atau -m all untuk menanyakan semua kluster.
| Flag | Deskripsi |
|---|---|
-n <namespace> |
Namespace yang akan ditanyakan |
-m <cluster-name> |
Nama kluster yang dikelola. Gunakan all untuk semua kluster. |
Menanyakan kluster tertentu
kubectl amc get deployment -n demo -m managedcluster-c****
Ganti managedcluster-c**** dengan nama kluster Anda.
Output yang diharapkan:
Run on ManagedCluster managedcluster-c**** (cluster-alias-****)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 1/1 1 1 42h
Menanyakan semua kluster
kubectl amc get deployment -n demo -m all
Output yang diharapkan:
Run on ManagedCluster managedcluster-c**** (cluster1)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 1/1 1 1 42h
Run on ManagedCluster managedcluster-c**** (cluster2)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 3/3 3 3 42h
Run on ManagedCluster managedcluster-c**** (cluster3)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 5/5 5 5 42h
Memeriksa topologi aplikasi
Gunakan appstatus dengan --tree dan --detail untuk menampilkan topologi aplikasi dan status resource lintas kluster.
| Flag | Deskripsi |
|---|---|
--tree |
Tampilkan resource dalam bentuk pohon dengan hubungan induk-anak |
--detail |
Tampilkan status detail untuk setiap resource |
kubectl amc appstatus demo -n demo --tree --detail
Output yang diharapkan:
CLUSTER NAMESPACE RESOURCE STATUS APPLY_TIME DETAIL
managedcluster-c****─── demo ─┬─ Deployment/demo updated 2022-05-27 06:48:13 Ready: 4/4 Up-to-date: 4 Available: 4 Age: 8m2s
├─ Ingress/demo updated 2022-05-27 06:48:13 Class: <none> Hosts: app.demo.example.com Address:
│ Ports: 80 Age: 8m2s
├─ ConfigMap/demo updated 2022-05-27 14:48:13 Data: 4 Age: 8m2s
└─ Service/demo updated 2022-05-27 06:48:13 Type: ClusterIP Cluster-IP: 192.168.9.178
External-IP: <none> Port(s): 82/TCP Age: 8m2s
managedcluster-c****─── demo ─┬─ Deployment/demo updated 2022-05-27 06:48:16 Ready: 2/2 Up-to-date: 2 Available: 2 Age: 7m59s
├─ Ingress/demo updated 2022-05-27 06:48:15 Class: <none> Hosts: app.demo.example.com Address:
│ Ports: 80 Age: 7m59s
├─ ConfigMap/demo updated 2022-05-27 14:48:17 Data: 4 Age: 7m58s
└─ Service/demo updated 2022-05-27 06:48:15 Type: ClusterIP Cluster-IP: 192.168.199.111
External-IP: <none> Port(s): 82/TCP Age: 7m59s