Container Service for Kubernetes (ACK) konsoluna ek olarak, Kubernetes komut satırı aracı kubectl'yi kullanarak kümeleri ve uygulamaları yönetebilirsiniz. Bir kümeye kubectl ile bağlanmadan önce, mevcut kullanıcı kimlik bilgilerinizi içeren küme kubeconfig dosyasını edinin.
Adım 1: kubectl istemcisini yükleyin ve yapılandırın
kubectl'i yüklemek istediğiniz istemci makinesini belirleyin. İşletim ortamınıza ve küme sürümüne göre kubectl'i yükleyin.
Adım 2: kubeconfig dosyasını edinin ve kullanın
1. kubeconfig türünü seçin
kubeconfig, kümeye erişmek için gereken kimlik doğrulama bilgilerini içerir. Güvenlik gereksinimlerinize ve kullanım durumunuza göre bir kubeconfig türü seçin.
Paylaşılan sorumluluk modeli kapsamında, kubeconfig kimlik bilgilerinizi yönetmek ve korumak sizin sorumluluğunuzdadır. Kimlik bilgilerinizin uygun ve geçerli olduğundan emin olun, kubeconfig dosyasını düzenli olarak yenileyin ve sızdırılmış bir kubeconfig dosyasının güvenlik risklerini önlemek için en az ayrıcalık ilkesine uyun.
-
kubeconfig geçerlilik süresine göre:
Geçici kubeconfig: Kubeconfig geçerlilik süresini 30 dakika ile 3 gün arasında yapılandırabilirsiniz. Yapılandırılan süre dolduğunda kubeconfig otomatik olarak sona erer ve sızdırılma güvenlik riski azalır. Bu tür, günlük işletme ve bakım, sorun giderme ve CI/CD işlem hatları gibi API sunucusuna uzun süreli bağlantı gerektirmeyen kullanım durumları için uygundur.
Uzun vadeli kubeconfig: Varsayılan geçerlilik süresi 3 yıldır. Bu tür, kubeconfig dosyasını sık sık yenileyemeyen otomasyon sistemleri veya uzun süre çalışan izleme hizmetleri için uygundur.
-
Kümeye erişim yöntemine göre:
Dahili erişim: Dahili erişim için bir kubeconfig edinin. kubectl istemci makinesi, kümeyle aynı Virtual Private Cloud (VPC) içinde olmalıdır. Alibaba Cloud dahili ağı üzerinden yapılan bağlantılar daha düşük gecikme süresine sahiptir ve daha güvenlidir.
-
Genel erişim: Genel erişim için bir kubeconfig edinin ve İnternet üzerindeki herhangi bir makineyi istemci olarak kullanarak kümeye bağlanın. Bu yöntem, API Sunucusuna bağlanmak için bir Elastic IP Address (EIP) kullanır ve yerel geliştirme veya uzaktan işletme ve bakım senaryoları için uygundur.
EIP'yi bağladıktan sonra, ilgili ücretler hakkında bilgi almak için Kullandıkça öde bölümüne bakın.
Genel erişim etkinleştirilmiş bir ACK özel kümesi kullanıyorsanız, SSH üzerinden ana düğümden kubeconfig dosyasını alabilir ve ardından kubectl'yi yerel olarak kullanarak kümeyi yönetebilirsiniz. Daha fazla bilgi için bkz. SSH üzerinden bir ACK özel kümesinin ana düğümüne bağlanma.
2. kubeconfig dosyasını edinin ve kümeye bağlanın
Konsoldan kubeconfig dosyasını edindikten sonra, kubectl bu dosyayı kullanarak kümeye bağlanabilir ve kümeyi yönetebilir.
Bir Resource Access Management (RAM) kullanıcısının kümeye bağlanabilmesi için, Container Service sistem izinlerine ek olarak küme işlem izinlerinin de verilmesi gerekir. Daha fazla bilgi için bkz. Yetkilendirme .
ACK konsolunda oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Cluster List sayfasında, hedef kümenin adına tıklayın veya Actions sütunundaki Details seçeneğine tıklayın.
Cluster Information sayfasında Connection Information sekmesine tıklayın ve geçici veya uzun vadeli bir kubeconfig seçin. Geçici bir kubeconfig için uygun bir geçerlilik süresi belirleyin.
-
Public Access veya Internal Access sekmesini seçin, Copy seçeneğine tıklayın, kopyalanan kubeconfig içeriğini istemcideki $HOME/.kube/config dosyasına yapıştırın ve dosyayı kaydedip kapatın.
$HOME/.kube/configdosyası yoksa, oluşturmak içinmkdir -p $HOME/.kubevetouch $HOME/.kube/configkomutlarını çalıştırın. -
Yapılandırma tamamlandıktan sonra, küme bağlantısını doğrulamak için bir kubectl komutu çalıştırın.
Aşağıdaki örnek ad alanlarını sorgular.
kubectl get namespacesBeklenen çıktı:
NAME STATUS AGE default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
Üretim ortamında kullanım
-
kubeconfig dosyasının geçerli olduğundan emin olun: Bir kubeconfig dosyasının süresi dolduğunda küme erişiminin kesilmesini önlemek için dosyayı zamanında yenileyin.
Uzun vadeli bir kubeconfig dosyası 3 yıl boyunca geçerlidir. En iyi uygulama olarak, sürenin dolmasından önceki 180 gün içinde yeni bir kubeconfig dosyasını ACK konsolu aracılığıyla veya DescribeClusterUserKubeconfig API çağrısıyla edinin.
Yeni kubeconfig dosyası da 3 yıl boyunca geçerlidir. Eski kubeconfig dosyası, sertifikasının süresi dolana kadar geçerliliğini korur.
-
Bir kubeconfig dosyasını hızla iptal edin: Bir kubeconfig dosyasının sızdırıldığından şüpheleniyorsanız hemen Bir kümenin kubeconfig dosyasını iptal etme işlemini gerçekleştirin. İptal işleminden sonra sistem yeni bir kubeconfig dosyası ve yetkilendirme bağlaması oluşturur ve eski kubeconfig dosyasına dayalı tüm bağlantılar geçersiz hale gelir.
-
İzinleri temizleyin: Kullanıcılar artık erişim izinlerine ihtiyaç duymadığında (örneğin, bir proje sona erdiğinde veya bir çalışan ayrıldığında), kubeconfig izinlerini toplu olarak iptal etmek için Temizle özelliğini kullanın. Sistem, temizleme işleminden sonra yeni bir kubeconfig dosyası oluşturmaz. Talimatlar için bkz. kubeconfig dosyalarını silme ve ack-ram-tool ile kullanıcı izinlerini temizleme.
İzinleri yanlışlıkla silmemek için kubeconfig geri dönüşüm kutusunu kullanma yoluyla temizlenmiş belirli kubeconfig izinlerini geri yükleyebilirsiniz.
SSS
Bir kubeconfig içinde kullanılan sertifika ile ilişkili kimlik bilgilerini nasıl elde ederim?
Kimlik bilgilerini elde etmek için aşağıdaki komutu çalıştırın.
grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -text |grep Subject:
kubeconfig yolunu kendi gerçek yolunuzla değiştirin. Varsayılan olarak kubectl, kümeye bağlanmak için$HOME/.kube/configdosyasını kullanır. Farklı bir kubeconfig dosyası belirtmek için KUBECONFIG ortam değişkenini veya--kubeconfigparametresini de ayarlayabilirsiniz.
Beklenen çıktı aşağıdakine benzer:
Subject: O=system:users, OU=, CN=1***-1673419473
Burada:
O: Kubernetes kullanıcı grubu bilgileri. Bu örnekte grup adısystem:usersşeklindedir.CN: İlişkili kullanıcı bilgileri. Bu örnekte kullanıcı1***-1673419473olup burada1***hesap altındaki bir Alibaba Cloud kullanıcı kimliği ile ilişkilidir.
Bir kubeconfig tarafından kullanılan sertifikanın sona erme zamanını nasıl elde ederim?
kubeconfig dosyası tarafından kullanılan sertifika ile ilişkili sona erme zamanını elde etmek için aşağıdaki komutu çalıştırın.
grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -enddate
kubeconfig yolunu kendi gerçek yolunuzla değiştirin. Varsayılan olarak kubectl, kümeye bağlanmak için$HOME/.kube/configdosyasını kullanır. Farklı bir kubeconfig dosyası belirtmek için KUBECONFIG ortam değişkenini veya--kubeconfigparametresini de ayarlayabilirsiniz.
Beklenen çıktı aşağıdakine benzer:
notAfter=Jan 10 06:44:34 2026 GMT
Bu örnekte Jan 10 06:44:34 2026 GMT sertifikanın sona erme zamanıdır.
Sertifikanın süresinin dolmasından önceki 180 gün içinde veya süre dolduktan sonra, konsoldan veya OpenAPI aracılığıyla yeni bir sona erme zamanına sahip sertifika kullanan bir kubeconfig dosyası edinebilirsiniz.
İstemci sertifikasını, istemci özel anahtarını ve API Sunucu bilgilerini nasıl elde ederim?
kubeconfig dosyasından istemci sertifikasını, istemci özel anahtarını ve API Sunucu bilgilerini çıkarmak için aşağıdaki komutları kullanın.
cat ./kubeconfig |grep client-certificate-data | awk -F ' ' '{print $2}' |base64 -d > ./client-cert.pem
cat ./kubeconfig |grep client-key-data | awk -F ' ' '{print $2}' |base64 -d > ./client-key.pem
APISERVER=`cat ./kubeconfig |grep server | awk -F ' ' '{print $2}'`
kubeconfig yolunu kendi gerçek yolunuzla değiştirin. Varsayılan olarak kubectl, kümeye bağlanmak için$HOME/.kube/configdosyasını kullanır. Farklı bir kubeconfig dosyası belirtmek için KUBECONFIG ortam değişkenini veya--kubeconfigparametresini de ayarlayabilirsiniz.
kubectl kullanarak bir kümeye bağlanırken certificate is valid for hatasını nasıl çözerim?
Küme API Sunucusunun Server Load Balancer (SLB) örneğine yeni bir IP adresi bağladıktan sonra, kubectl komutlarını çalıştırarak yeni IP adresine erişmeye çalıştığınızda Error while proxying request: x509: certificate is valid for xxx veya Unable to connect to the server: x509: certificate is valid for xxx hatasıyla karşılaşabilirsiniz.
ACK yönetilen kümesi: Yeni IP adresini API Sunucu sertifikası SAN listesine ekleyin. Daha fazla bilgi için bkz. ACK API sunucu sertifikası SAN'lerini özelleştirme.
-
ACK özel kümesi:
insecure-skip-tls-verifyayarını kullanarak bu hatayı yoksayacak şekilde kubectl'yi yapılandırın.ÖnemliBu yöntem, istemcinin API Sunucu sertifikasını doğrulamasını engeller ve üretim ortamları için önerilmez. Bunun yerine, ACK özel kümesini ACK Pro kümesine canlı geçiş yapma ve ardından bu sorunu çözmek için yeni IP adresini API Sunucu sertifikası SAN listesine ekleme işlemlerini gerçekleştirin.
-
Yöntem 1: Bir kubectl komutu çalıştırırken
--insecure-skip-tls-verifyparametresini belirtin.kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns -
Yöntem 2: kubeconfig dosyasını değiştirin,
insecure-skip-tls-verify: trueayarını ekleyin vecertificate-authority-dataayarını kaldırın.apiVersion: v1 clusters: - cluster: server: https://<IP>:6443 insecure-skip-tls-verify: true name: kubernetes contexts: ...
-
ACK yönetilen kümesi Kendim bir kubeconfig sertifikası oluşturmak için küme kök sertifika anahtarını edinebilir miyim?
ACK yönetilen kümesi küme kök sertifika anahtarını dışa sağlamaz. Bunun yerine, küme kubeconfig dosyasını konsol veya OpenAPI aracılığıyla edinin.
İlgili konular
Küme kubeconfig dosyasını sorgulamak için bir OpenAPI işlemi çağırabilirsiniz. Daha fazla bilgi için bkz. DescribeClusterUserKubeconfig.
Bir düğümde oturum açmak için bkz. Bir bağlantı yöntemi seçme.