Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Manage registered clusters with onectl

Son Güncelleme:Oct 06, 2026

Terminal üzerinden kayıtlı kümeler oluşturun, ek bileşenler yükleyin ve RAM kullanıcı izinlerini yapılandırın.

onectl macOS ve Linux'u destekler.

Ön koşullar

Aşağıdaki öğelere sahip olduğunuzdan emin olun:

  • macOS veya Linux çalıştıran bir terminal

  • Geçerli bir kubeconfig dosyasına sahip harici bir Kubernetes kümesi (varsayılan yol: ~/.kube/config)

  • Aşağıdaki sistem ilkelerinin atanmış olduğu bir RAM kullanıcısı:

    • AliyunCSFullAccess — ACK yönetici izinleri

    • AliyunRamFullAccess — RAM yönetici izinleri

    • AliyunVPCReadOnlyAccess — VPC salt okunur izinleri

  • İlgili RAM kullanıcısının AccessKey ID ve AccessKey Secret değerleri

onectl RAM kullanıcısı ile bileşen RAM kullanıcıları birbirinden ayrıdır. onectl, Alibaba Cloud API'lerini çağırmak için bu RAM kullanıcısını kullanır.

Çalışma mekanizması

Harici küme ile iletişim kurma

onectl, harici kümede bir ACK One aracısı dağıtır ve kubeconfig dosyasını aşağıdaki kaynaklardan sırasıyla çözümler:

  1. --kubeconfig parametresi. Örneğin:

    onectl cluster connect --cluster-id <cluster-id> --kubeconfig ~/.kube/config
  2. KUBECONFIG ortam değişkeni.

  3. Kubeconfig Path parametresi, ~/.onectl/config.json içinde (onectl configure komutu aracılığıyla yapılandırılır).

  4. Varsayılan yedek olarak ~/.kube/config.

Kayıtlı bir kümeye bağlanma

onectl cluster connect komutu iki adım gerçekleştirir:

  1. Kayıtlı küme bağlantı bilgilerini alır ve agent.yaml dosyasına kaydeder.

  2. Bu bilgileri kullanarak harici kümede ACK One aracısını dağıtır.

Küme bileşenleri için RAM kullanıcıları

Kayıtlı bir kümedeki bileşenler, Alibaba Cloud kaynaklarına erişmek için bir RAM kullanıcısının AccessKey çiftini kullanır. Örneğin, logtail-ds bileşeni projeler ve Logstore'lar gibi Simple Log Service (SLS) kaynaklarına erişim gerektirir. AccessKey çifti, kube-system ad alanında bulunan ve alibaba-addon-secret adlı bir Secret içinde saklanır.

  • Secret mevcutsa onectl, içindeki AccessKey çiftini kullanır.

  • Secret mevcut değilse onectl, ack-one-user-<cluster-id-prefix> adında yeni bir RAM kullanıcısı oluşturur ve yeni AccessKey çiftini Secret içinde depolar.

Küme ek bileşenlerinin yüklenmesi

Bir bileşen yüklemek için kayıtlı kümede yönetici izinleri gerekir. onectl, ACK One aracısının hizmet hesabının bu izinlere sahip olup olmadığını kontrol eder:

  • İzinler mevcutsa onectl bileşeni doğrudan yükler.

  • İzinler yoksa onectl geçici bir ClusterRole (ack-admin-tmp) ve ClusterRoleBinding (ack-admin-binding-tmp) oluşturur, yönetici izinleri verir, bileşeni yükler ve ardından geçici rol ile bağlamayı siler.

Geçici ClusterRole ve ClusterRoleBinding tanımları:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-admin-tmp
  labels:
    ack/creator: "ack"
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ack-admin-binding-tmp
  namespace: kube-system
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: ack-admin-tmp
  apiGroup: rbac.authorization.k8s.io

1. Adım: onectl yükleme

  1. onectl uygulamasını yükleyin:

    curl https://ack-one.oss-cn-hangzhou.aliyuncs.com/onectl/get-onectl.sh | bash
  2. Yükleme doğrulayın:

    onectl version

    Beklenen çıktı:

    onectl: v1.0.0+774dea0
    BuildDate: 2023-07-12T06:10:27Z
    GitCommit: 774dea0f768569821e101dc44d1cb09cef192fe8
    GitTreeState: clean
    GoVersion: go1.20.4
    Compiler: gc
    Platform: darwin/amd64

2. Adım: onectl kimlik bilgilerini yapılandırma

AccessKey çiftini ve varsayılan kubeconfig yolunu ayarlayın:

onectl configure

Beklenen çıktı:

Configuring profile default ...
Access Key Id [*********************f7x]:
Access Key Secret [***************************mft]:
Default Kubeconfig Path (default is ~/.kube/config) []:
Saving profile[default] ...
Done.


Parametre


Açıklama


Access Key Id


onectl RAM kullanıcısının AccessKey ID değeri.


Access Key Secret


onectl RAM kullanıcısının AccessKey Secret değeri.


Kubeconfig Path


Harici küme kubeconfig dosyasının yolu. Varsayılan: ~/.kube/config

3. Adım: Harici kümeniz için kubeconfig ayarlama

onectl, KUBECONFIG ortam değişkeninde belirtilen kubeconfig dosyasını kullanır. KUBECONFIG ayarlanmamışsa yedek olarak ~/.kube/config kullanılır.

Kubeconfig dosyanız varsayılan olmayan bir yoldaysa ortam değişkenini ayarlayın:

export KUBECONFIG=/path/to/your/kubeconfig

Sonraki adımlar

Her komutu çalıştırmadan önce yer tutucu değerleri kendi değerlerinizle değiştirin.

Kümeleri yönetme

<cluster-id> yerine kayıtlı küme kimliğinizi; <region-id>, <vpc-id>, <vswitch-id> ve <cluster-name> yerine ortamınıza ait değerleri yazın.

  • Kayıtlı bir küme oluşturun ve harici bir kümeyi bağlayın. Bkz. onectl ile kayıtlı küme oluşturma.

    onectl cluster create --region <region-id> --vpc <vpc-id> --vswitch <vswitch-id> --name <cluster-name> --eip true
    onectl cluster connect --cluster-id <cluster-id>

    cluster connect komutu için beklenen çıktı:

    Agent information saved as agent.yaml.
    Installing ACK One agent using kubeconfig file **** to connect to registered cluster ****.
    Confirm? [Y/n]: y
    ACK One agent deployed successfully.
    Check the running status of deployment ack-cluster-agent to confirm the connection status of registered cluster ****.
  • Kayıtlı bir kümenin durumunu kontrol edin:

    onectl cluster describe --cluster-id <cluster-id>
  • Tüm kayıtlı kümeleri listeleyin:

    onectl cluster list
  • Kayıtlı bir kümeyi silin:

    onectl cluster delete --cluster-id <cluster-id>

Bileşenleri yönetme

<component-name> yerine bileşen adını yazın.

  • Bir bileşen yükleyin. ACK One aracısında yönetici izinleri yoksa onectl bu izinleri geçici olarak verip ardından geri alır.

    onectl addon install <component-name>

    Geçici izinlerle örnek çıktı:

    Cluster role ack-admin-tmp created.
    Cluster role binding ack-admin-binding-tmp created.
    Addon logtail-ds, version **** installed.
    Cluster role ack-admin-tmp deleted.
    Cluster role binding ack-admin-binding-tmp deleted.
  • Bir bileşeni yükseltin:

    onectl addon upgrade <component-name>
  • Yüklenen bileşenleri listeleyin:

    onectl addon list
  • Kullanılabilir bileşenleri listeleyin:

    onectl addon catalog
  • Bir bileşeni kaldırın:

    onectl addon uninstall <component-name>

Bileşenler için RAM kullanıcılarını yönetme

Bazı bileşenlerin Alibaba Cloud kaynaklarına erişmesi için belirli RAM izinleri gerekir. Bu bileşenleri yüklemeden önce gerekli izinleri atayın.

<component-name> yerine bileşen adını yazın.

  • Bir bileşen için RAM izinleri atayın. alibaba-addon-secret Secret nesnesi mevcut değilse onectl yeni bir RAM kullanıcısı ve Secret oluşturur.

    onectl ram-user grant --addon <component-name>

    Yeni bir RAM kullanıcısıyla örnek çıktı:

    Ram user ack-one-user-ce313528c3 created successfully.
    Ram policy ack-one-registered-cluster-policy-terway-eniip granted to ram user ack-one-user-ce313528c3 successfully.
    Secret alibaba-addon-secret created under namespace kube-system in the cluster, it stores the access key and secret of ram user ack-one-user-ce313528c3.
  • RAM kullanıcısı izinlerini kontrol edin:

    onectl ram-user describe --detail
  • RAM kullanıcısı izinlerini güncelleyin:

    onectl ram-user update --addon <component-name>
  • RAM kullanıcısı izinlerini iptal edin:

    onectl ram-user revoke --addon <component-name>

Referanslar