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:
-
--kubeconfigparametresi. Örneğin:onectl cluster connect --cluster-id <cluster-id> --kubeconfig ~/.kube/config KUBECONFIGortam değişkeni.Kubeconfig Pathparametresi,~/.onectl/config.jsoniçinde (onectl configurekomutu aracılığıyla yapılandırılır).Varsayılan yedek olarak
~/.kube/config.
Kayıtlı bir kümeye bağlanma
onectl cluster connect komutu iki adım gerçekleştirir:
Kayıtlı küme bağlantı bilgilerini alır ve
agent.yamldosyasına kaydeder.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
-
onectl uygulamasını yükleyin:
curl https://ack-one.oss-cn-hangzhou.aliyuncs.com/onectl/get-onectl.sh | bash -
Yükleme doğrulayın:
onectl versionBeklenen çı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.
|
|
|
|
|
|
|
|
|
|
|
|
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 connectkomutu 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-secretSecret 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>