Azure Kubernetes Service’te (AKS) statik bir genel IP adresiyle giriş denetleyicisi oluşturma

Giriş denetleyicisi, Kubernetes Hizmetleri için ters proxy, yapılandırılabilir trafik yönlendirme ve TLS sonlandırma sağlayan bir yazılım parçasıdır. Kubernetes giriş kaynakları, bağımsız bir Kubernetes hizmeti için giriş kurallarını ve rotaları yapılandırmak üzere kullanılır. Bir giriş denetleyicisi ve giriş kuralları kullanarak, bir Kubernetes kümesinde trafiği birden çok hizmete yönlendirmek için tek bir IP adresi kullanılabilir.

Bu makalede bir Azure Kubernetes Service (AKS) kümesinde NGINX giriş denetleyicisinin nasıl dağıtılacağı gösterilir. Giriş denetleyicisi statik bir genel IP adresi ile yapılandırılır. CERT-Manager projesi, sertifikaları şifreleyebilmesine otomatik olarak oluşturmak ve yapılandırmak için kullanılır. Son olarak, her biri tek bir IP adresi üzerinden erişilebilen AKS kümesinde iki uygulama çalıştırılır.

Aşağıdakileri de yapabilirsiniz:

Başlamadan önce

Bu makalede, mevcut bir AKS kümeniz olduğunu varsaymaktadır. AKS kümesine ihtiyacınız varsa bkz. Azure CLI kullanarak aks hızlı başlangıç veya Azure Portal kullanımı.

Bu makalede, Kubernetes 'in desteklenen bir sürümüneNGINX giriş denetleyicisini yüklemek Için Held 3 kullanılmaktadır. Held 'nin en son sürümünü kullandığınızdan ve giriş -NGINX ve jetstack Held depolarına erişim sahibi olduğunuzdan emin olun. Bu makalede özetlenen adımlar, helk grafiğinin önceki sürümleriyle, NGıNX giriş denetleyicisine veya Kubernetes ile uyumlu olmayabilir.

Held 'yi yapılandırma ve kullanma hakkında daha fazla bilgi için bkz. Azure Kubernetes hizmeti 'nde (AKS) Held ile uygulama yüklemesi. Yükseltme yönergeleri için, bkz. hela Install docs.

Bu makalede, Azure CLı sürüm 2.0.64 veya üstünü de çalıştırıyor olmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Ayrıca, bu makalede tümleşik ACR ile mevcut bir AKS kümeniz olduğunu varsaymaktadır. Tümleşik ACR ile AKS kümesi oluşturma hakkında daha fazla bilgi için bkz. Azure Kubernetes hizmetinden Azure Container Registry kimlik doğrulaması.

Helm grafiğinin kullandığı görüntüleri ACR 'nize aktarma

Bu makalede üç kapsayıcı görüntüsü kullanan NGINX giriş denetleyicisi Held grafiğikullanılmaktadır. az acr importBu görüntüleri ACR 'nize aktarmak için kullanın.

REGISTRY_NAME=<REGISTRY_NAME>
CONTROLLER_REGISTRY=k8s.gcr.io
CONTROLLER_IMAGE=ingress-nginx/controller
CONTROLLER_TAG=v1.0.4
PATCH_REGISTRY=docker.io
PATCH_IMAGE=jettech/kube-webhook-certgen
PATCH_TAG=v1.5.2
DEFAULTBACKEND_REGISTRY=k8s.gcr.io
DEFAULTBACKEND_IMAGE=defaultbackend-amd64
DEFAULTBACKEND_TAG=1.5
CERT_MANAGER_REGISTRY=quay.io
CERT_MANAGER_TAG=v1.5.4
CERT_MANAGER_IMAGE_CONTROLLER=jetstack/cert-manager-controller
CERT_MANAGER_IMAGE_WEBHOOK=jetstack/cert-manager-webhook
CERT_MANAGER_IMAGE_CAINJECTOR=jetstack/cert-manager-cainjector

az acr import --name $REGISTRY_NAME --source $CONTROLLER_REGISTRY/$CONTROLLER_IMAGE:$CONTROLLER_TAG --image $CONTROLLER_IMAGE:$CONTROLLER_TAG
az acr import --name $REGISTRY_NAME --source $PATCH_REGISTRY/$PATCH_IMAGE:$PATCH_TAG --image $PATCH_IMAGE:$PATCH_TAG
az acr import --name $REGISTRY_NAME --source $DEFAULTBACKEND_REGISTRY/$DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG --image $DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG
az acr import --name $REGISTRY_NAME --source $CERT_MANAGER_REGISTRY/$CERT_MANAGER_IMAGE_CONTROLLER:$CERT_MANAGER_TAG --image $CERT_MANAGER_IMAGE_CONTROLLER:$CERT_MANAGER_TAG
az acr import --name $REGISTRY_NAME --source $CERT_MANAGER_REGISTRY/$CERT_MANAGER_IMAGE_WEBHOOK:$CERT_MANAGER_TAG --image $CERT_MANAGER_IMAGE_WEBHOOK:$CERT_MANAGER_TAG
az acr import --name $REGISTRY_NAME --source $CERT_MANAGER_REGISTRY/$CERT_MANAGER_IMAGE_CAINJECTOR:$CERT_MANAGER_TAG --image $CERT_MANAGER_IMAGE_CAINJECTOR:$CERT_MANAGER_TAG

Not

ACR 'nize kapsayıcı görüntüleri almanın yanı sıra, Helm grafiklerini de ACR 'nize aktarabilirsiniz. Daha fazla bilgi için bkz. Azure Container Registry 'de Helu grafikleri gönderme ve çekme.

Giriş denetleyicisi oluşturma

Varsayılan olarak, bir NGıNX giriş denetleyicisi yeni bir genel IP adresi atamasıyla oluşturulur. Bu genel IP adresi yalnızca giriş denetleyicisinin yaşam döngüsü için statiktir ve denetleyici silinip yeniden oluşturulduysa kaybedilir. Ortak bir yapılandırma gereksinimi, NGıNX giriş denetleyicisine mevcut bir statik genel IP adresi sağlamaktır. Giriş denetleyicisi silinirse statik genel IP adresi kalır. Bu yaklaşım, mevcut DNS kayıtlarını ve ağ yapılandırmasını uygulamalarınızın yaşam döngüsü boyunca tutarlı bir şekilde kullanmanıza olanak sağlar.

Statik bir genel IP adresi oluşturmanız gerekiyorsa, önce az aks Show komutuyla aks kümesinin kaynak grubu adını alın:

az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv

Ardından, az Network public-IP Create komutunu kullanarak statik AYıRMA yöntemiyle genel bir IP adresi oluşturun. Aşağıdaki örnek, önceki adımda elde edilen AKS kümesi kaynak grubundaki Myakspublicıp adlı BIR genel IP adresi oluşturur:

az network public-ip create --resource-group MC_myResourceGroup_myAKSCluster_eastus --name myAKSPublicIP --sku Standard --allocation-method static --query publicIp.ipAddress -o tsv

Not

Yukarıdaki komutlar, AKS kümenizi silerseniz silinecek bir IP adresi oluşturur. Alternatif olarak, AKS kümeinizden ayrı olarak yönetilebilen farklı bir kaynak grubunda bir IP adresi oluşturabilirsiniz. Farklı bir kaynak grubunda bir IP adresi oluşturursanız, AKS kümesi tarafından kullanılan küme kimliğinin, ağ katılımcısı gibi diğer kaynak grubu için izin Temsilcili olduğundan emin olun. Daha fazla bilgi için bkz. AKS yük dengeleyicisiyle statik bir genel IP adresi ve DNS etiketi kullanma.

Şimdi NGINX-ingress grafiğini Held ile dağıtın. Daha fazla yedeklilik sağlamak için --set controller.replicaCount parametresiyle iki NGINX giriş denetleyicisi çoğaltması dağıtılır. Giriş denetleyicisinin Çoğaltmalarından tamamen yararlanmak için AKS kümenizde birden fazla düğüm olduğundan emin olun.

IP ve DNS etiketi

Giriş denetleyicisinin hem giriş denetleyicisi hizmetine ayrılacak yük dengeleyicinin statik IP adresini hem de genel IP adresi kaynağına uygulanmakta olan DNS adı etiketini bilmesi için, helk sürümüne iki ek parametre geçirmeniz gerekir. HTTPS sertifikalarının düzgün çalışması için, giriş denetleyicisi IP adresi için bir FQDN yapılandırmak üzere bir DNS ad etiketi kullanılır.

  1. Parametresini ekleyin --set controller.service.loadBalancerIP . Önceki adımda oluşturulan kendi genel IP adresini belirtin.
  2. Parametresini ekleyin --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name" . Önceki adımda oluşturulan genel IP adresine uygulanacak bir DNS ad etiketi belirtin. Bu etiket, formun bir DNS adını oluşturacak <LABEL>.<AZURE REGION NAME>.cloudapp.azure.com

Ayrıca giriş denetleyicisinin bir Linux düğümü üzerinde zamanlanması gerekir. Giriş denetleyicisi, Windows Server düğümlerinde çalıştırılmamalıdır. Kubernetes zamanlayıcısına NGINX giriş denetleyicisini Linux tabanlı bir düğümde çalıştırmasını söylemek için --set nodeSelector parametresi kullanılarak bir düğüm seçici belirtilir.

İpucu

Aşağıdaki örnek, ınress-Basic adlı giriş kaynakları Için bir Kubernetes ad alanı oluşturur ve bu ad alanı içinde çalışmak üzere tasarlanmıştır. Gerektiğinde kendi ortamınız için bir ad alanı belirtin. AKS kümeniz Kubernetes RBAC etkin değilse, --set rbac.create=false helk komutlarına ekleyin.

İpucu

Kümenizdeki kapsayıcılara yönelik istemci kaynak IP korumasını etkinleştirmek Istiyorsanız, --set controller.service.externalTrafficPolicy=Local Helm install komutuna ekleyin. İstemci kaynak IP 'si, Için X-iletilen-için istek üstbilgisinde depolanır. İstemci kaynak IP koruması etkinken bir giriş denetleyicisi kullanılırken, TLS geçişi çalışmaz.

Aşağıdaki betiği, giriş denetleyicinizin IP adresiyle ve FQDN ön eki için kullanmak istediğiniz benzersiz bir adla güncelleştirin.

Önemli

<STATIC_IP> <DNS_LABEL> Komutunu ÇALıŞTıRıRKEN kendi IP adresiniz ve benzersiz adınızla değiştirme 'yi güncelleştirmeniz gerekir. DNS_LABEL Azure bölgesi içinde benzersiz olmalıdır.

# Add the ingress-nginx repository
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

# Set variable for ACR location to use for pulling images
ACR_URL=<REGISTRY_URL>
STATIC_IP=<STATIC_IP>
DNS_LABEL=<DNS_LABEL>

# Use Helm to deploy an NGINX ingress controller
helm install nginx-ingress ingress-nginx/ingress-nginx \
    --namespace ingress-basic --create-namespace \
    --set controller.replicaCount=2 \
    --set controller.nodeSelector."kubernetes\.io/os"=linux \
    --set controller.image.registry=$ACR_URL \
    --set controller.image.image=$CONTROLLER_IMAGE \
    --set controller.image.tag=$CONTROLLER_TAG \
    --set controller.image.digest="" \
    --set controller.admissionWebhooks.patch.nodeSelector."kubernetes\.io/os"=linux \
    --set controller.admissionWebhooks.patch.image.registry=$ACR_URL \
    --set controller.admissionWebhooks.patch.image.image=$PATCH_IMAGE \
    --set controller.admissionWebhooks.patch.image.tag=$PATCH_TAG \
    --set controller.admissionWebhooks.patch.image.digest="" \
    --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \
    --set defaultBackend.image.registry=$ACR_URL \
    --set defaultBackend.image.image=$DEFAULTBACKEND_IMAGE \
    --set defaultBackend.image.tag=$DEFAULTBACKEND_TAG \
    --set defaultBackend.image.digest="" \
    --set controller.service.loadBalancerIP=$STATIC_IP \
    --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"=$DNS_LABEL

Kubernetes yük dengeleyici hizmeti NGıNX giriş denetleyicisi için oluşturulduğunda, aşağıdaki örnek çıktıda gösterildiği gibi statik IP adresiniz atanır:

$ kubectl --namespace ingress-basic get services -o wide -w nginx-ingress-ingress-nginx-controller

NAME                                     TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                      AGE   SELECTOR
nginx-ingress-ingress-nginx-controller   LoadBalancer   10.0.74.133   EXTERNAL_IP     80:32486/TCP,443:30953/TCP   44s   app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx

Henüz bir giriş kuralı oluşturulmadı, bu nedenle genel IP adresine gözattığınızda NGıNX giriş denetleyicisinin varsayılan 404 sayfası görüntülenir. Giriş kuralları aşağıdaki adımlarda yapılandırılır.

Genel IP adresinde FQDN 'yi sorgulayarak DNS ad etiketinin uygulandığını aşağıdaki gibi doğrulayabilirsiniz:

az network public-ip list --resource-group MC_myResourceGroup_myAKSCluster_eastus --query "[?name=='myAKSPublicIP'].[dnsSettings.fqdn]" -o tsv

Giriş denetleyicisine artık IP adresi veya FQDN üzerinden erişilebilir.

cert-manager denetleyicisini yükleme

NGINX giriş denetleyicisi, TLS sonlandırmayı destekler. HTTPS için birçok farklı sertifika alma ve yapılandırma yöntemi vardır. Bu makalede, sertifika oluşturma ve yönetim işlevlerinin şifrelenmesi için otomatik olarak sağlanan CERT-Managerkullanımı gösterilmektedir.

Not

Bu makalede, staging şifreleme için ortamı kullanılmaktadır. Üretim dağıtımlarında, letsencrypt-prod https://acme-v02.api.letsencrypt.org/directory kaynak tanımlarında ve, Held grafiğini yüklerken öğesini kullanın.

Bir Kubernetes RBAC etkin kümesine CERT-Manager denetleyicisi yüklemek için şu helm install komutu kullanın:

# Label the cert-manager namespace to disable resource validation
kubectl label namespace ingress-basic cert-manager.io/disable-validation=true

# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io

# Update your local Helm chart repository cache
helm repo update

# Install the cert-manager Helm chart
helm install cert-manager jetstack/cert-manager \
  --namespace ingress-basic \
  --version $CERT_MANAGER_TAG \
  --set installCRDs=true \
  --set nodeSelector."kubernetes\.io/os"=linux \
  --set image.repository=$ACR_URL/$CERT_MANAGER_IMAGE_CONTROLLER \
  --set image.tag=$CERT_MANAGER_TAG \
  --set webhook.image.repository=$ACR_URL/$CERT_MANAGER_IMAGE_WEBHOOK \
  --set webhook.image.tag=$CERT_MANAGER_TAG \
  --set cainjector.image.repository=$ACR_URL/$CERT_MANAGER_IMAGE_CAINJECTOR \
  --set cainjector.image.tag=$CERT_MANAGER_TAG 

CERT Manager yapılandırması hakkında daha fazla bilgi için bkz. CERT-Manager Projesi.

CA kümesi veren oluşturma

Sertifikaların verilebilmesi için, CERT Manager bir veren veya clusterıssuer kaynağı gerektirir. Bu Kubernetes kaynakları işlevselliklerde aynıdır, ancak Issuer tek bir ad alanında çalışarak ve ClusterIssuer tüm ad alanları üzerinde çalışmaktadır. Daha fazla bilgi için bkz. CERT-Manager veren belgeleri.

Aşağıdaki örnek bildirimini kullanarak gibi bir küme veren oluşturun cluster-issuer.yaml . E-posta adresini kuruluşunuzdaki geçerli bir adresle güncelleştirin:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
spec:
  acme:
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    email: user@contoso.com
    privateKeySecretRef:
      name: letsencrypt-staging
    solvers:
    - http01:
        ingress:
          class: nginx
          podTemplate:
            spec:
              nodeSelector:
                "kubernetes.io/os": linux

Veren oluşturmak için kubectl apply komutunu kullanın.

kubectl apply -f cluster-issuer.yaml --namespace ingress-basic

Çıktının bu örneğe benzer olması gerekir:

clusterissuer.cert-manager.io/letsencrypt-staging created

Demo uygulamalarını çalıştırma

Bir giriş denetleyicisi ve bir sertifika yönetimi çözümü yapılandırıldı. Şimdi AKS kümenizde iki tanıtım uygulaması çalıştıralım. Bu örnekte, HELI basit bir ' Hello World ' uygulamasının iki örneğini dağıtmak için kullanılır.

Giriş denetleyicisini çalışır durumda görmek için AKS kümenizde iki tanıtım uygulaması çalıştırın. Bu örnekte, kubectl apply basit bir Hello World uygulamasının iki örneğini dağıtmak için kullanırsınız.

Bir aks-HelloWorld. YAML dosyası oluşturun ve aşağıdaki örnekte bulunan YAML 'yi kopyalayın:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: aks-helloworld
spec:
  replicas: 1
  selector:
    matchLabels:
      app: aks-helloworld
  template:
    metadata:
      labels:
        app: aks-helloworld
    spec:
      containers:
      - name: aks-helloworld
        image: mcr.microsoft.com/azuredocs/aks-helloworld:v1
        ports:
        - containerPort: 80
        env:
        - name: TITLE
          value: "Welcome to Azure Kubernetes Service (AKS)"
---
apiVersion: v1
kind: Service
metadata:
  name: aks-helloworld
spec:
  type: ClusterIP
  ports:
  - port: 80
  selector:
    app: aks-helloworld

Bir ınress-demo. YAML dosyası oluşturun ve aşağıdaki örnekte bulunan YAML 'yi kopyalayın:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ingress-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ingress-demo
  template:
    metadata:
      labels:
        app: ingress-demo
    spec:
      containers:
      - name: ingress-demo
        image: mcr.microsoft.com/azuredocs/aks-helloworld:v1
        ports:
        - containerPort: 80
        env:
        - name: TITLE
          value: "AKS Ingress Demo"
---
apiVersion: v1
kind: Service
metadata:
  name: ingress-demo
spec:
  type: ClusterIP
  ports:
  - port: 80
  selector:
    app: ingress-demo

Kullanarak iki demo uygulamayı çalıştırın kubectl apply :

kubectl apply -f aks-helloworld.yaml --namespace ingress-basic
kubectl apply -f ingress-demo.yaml --namespace ingress-basic

Giriş yolu oluşturma

Her iki uygulama da artık Kubernetes kümenizde çalışıyor, ancak bunlar türünde bir hizmetle yapılandırılmış ClusterIP . Bu nedenle, uygulamalara internet 'ten erişilemez. Bunları herkese açık hale getirmek için bir Kubernetes giriş kaynağı oluşturun. Giriş kaynağı, trafiği iki uygulamadan birine yönlendiren kuralları yapılandırır.

Aşağıdaki örnekte, adrese https://demo-aks-ingress.eastus.cloudapp.azure.com/ olan trafik adlı hizmete yönlendirilir aks-helloworld . Adrese giden trafik https://demo-aks-ingress.eastus.cloudapp.azure.com/hello-world-two ingress-demo hizmete yönlendirilir. Ana bilgisayarları ve ana bilgisayarı , önceki adımda oluşturduğunuz DNS adına güncelleştirin.

Adlı bir dosya oluşturun hello-world-ingress.yaml ve aşağıdaki örnekteki YAML 'yi kopyalayın.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: hello-world-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-staging
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  tls:
  - hosts:
    - demo-aks-ingress.eastus.cloudapp.azure.com
    secretName: tls-secret
  rules:
  - host: demo-aks-ingress.eastus.cloudapp.azure.com
    http:
      paths:
      - path: /hello-world-one(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: aks-helloworld
            port:
              number: 80
      - path: /hello-world-two(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: ingress-demo
            port:
              number: 80
      - path: /(.*)
        pathType: Prefix
        backend:
          service:
            name: aks-helloworld
            port:
              number: 80

Komutunu kullanarak giriş kaynağını oluşturun kubectl apply .

kubectl apply -f hello-world-ingress.yaml --namespace ingress-basic

Çıktının bu örneğe benzer olması gerekir:

ingress.extensions/hello-world-ingress created

Sertifika nesnesini doğrula

Daha sonra, bir sertifika kaynağı oluşturulmalıdır. Sertifika kaynağı istenen X. 509.952 sertifikasını tanımlar. Daha fazla bilgi için bkz. CERT-Manager sertifikaları.

CERT-Manager, v 0.2.2 sürümünden itibaren otomatik olarak CERT-Manager ile dağıtılan giriş dolgusu 'nı kullanarak sizin için otomatik olarak bir sertifika nesnesi oluşturdu. Daha fazla bilgi için bkz. giriş dolgusu belgeleri.

Sertifikanın başarıyla oluşturulduğunu doğrulamak için kubectl describe certificate tls-secret --namespace ingress-basic komutunu kullanın.

Sertifika verildiyse aşağıdakine benzer bir çıktı görürsünüz:

Type    Reason          Age   From          Message
----    ------          ----  ----          -------
  Normal  CreateOrder     11m   cert-manager  Created new ACME order, attempting validation...
  Normal  DomainVerified  10m   cert-manager  Domain "demo-aks-ingress.eastus.cloudapp.azure.com" verified with "http-01" validation
  Normal  IssueCert       10m   cert-manager  Issuing certificate...
  Normal  CertObtained    10m   cert-manager  Obtained certificate from ACME server
  Normal  CertIssued      10m   cert-manager  Certificate issued successfully

Giriş yapılandırmasını test etme

Kubernetes giriş denetleyicinizin FQDN 'sine bir Web tarayıcısı açın (örneğin,) https://demo-aks-ingress.eastus.cloudapp.azure.com .

Bu örneklerde kullanırken letsencrypt-staging , VERILEN TLS/SSL sertifikasına tarayıcı tarafından güvenilmiyor. Uygulamanıza devam etmek için uyarı isteğini kabul edin. Sertifika bilgileri, bu sahte bir ara x1 sertifikasının, Şifreleyebilmesine göre verildiğini gösterir. Bu sahte sertifika cert-manager , isteğin doğru bir şekilde işlendiğini ve sağlayıcıdan bir sertifika alındığını gösterir:

Hazırlama sertifikasını şifreleyelim

Yerine kullanmak için şifreleyelim prod staging ' i değiştirirseniz, aşağıdaki örnekte gösterildiği gibi, şifreleyebilmesine göre verilen güvenilir bir sertifika kullanılır:

Sertifikayı şifreleyelim

Demo uygulaması Web tarayıcısında gösterilir:

Uygulama örneği bir

Şimdi /Hello-World-iki yolunu FQDN 'sine ekleyin, örneğin https://demo-aks-ingress.eastus.cloudapp.azure.com/hello-world-two . Özel başlığa sahip ikinci demo uygulaması gösterilir:

Uygulama örneği iki

Kaynakları temizleme

Bu makalede giriş bileşenleri, sertifikalar ve örnek uygulamalar yüklemek için Held kullanılmaktadır. Bir helk grafiği dağıttığınızda, bir dizi Kubernetes kaynağı oluşturulur. Bu kaynaklar, pods, dağıtımlar ve hizmetler içerir. Bu kaynakları temizlemek için, tüm örnek ad alanını veya ayrı kaynakları silebilirsiniz.

Örnek ad alanını ve tüm kaynakları Sil

Tüm örnek ad alanını silmek için kubectl delete komutunu kullanın ve ad alanı adınızı belirtin. Ad alanındaki tüm kaynaklar silinir.

kubectl delete namespace ingress-basic

Kaynakları tek tek Sil

Alternatif olarak, oluşturulan kaynakları tek tek silmek daha ayrıntılı bir yaklaşımdır. İlk olarak, sertifika kaynaklarını kaldırın:

kubectl delete -f certificates.yaml
kubectl delete -f cluster-issuer.yaml

Şimdi komutunu kullanarak Held sürümlerini listeleyin helm list . Aşağıdaki örnek çıktıda gösterildiği gibi NGINX-ingress ve CERT-Manager adlı grafikleri arayın:

$ helm list --all-namespaces

NAME                    NAMESPACE       REVISION        UPDATED                        STATUS          CHART                   APP VERSION
nginx-ingress           ingress-basic   1               2020-01-11 14:51:03.454165006  deployed        nginx-ingress-1.28.2    0.26.2
cert-manager            ingress-basic   1               2020-01-06 21:19:03.866212286  deployed        cert-manager-v0.13.0    v0.13.0

Komutuyla yayınları kaldırın helm uninstall . Aşağıdaki örnek NGıNX giriş dağıtımı ve Sertifika Yöneticisi dağıtımlarını kaldırır.

$ helm uninstall nginx-ingress cert-manager -n ingress-basic

release "nginx-ingress" deleted
release "cert-manager" deleted

Sonra, iki örnek uygulamayı kaldırın:

kubectl delete -f aks-helloworld.yaml --namespace ingress-basic
kubectl delete -f ingress-demo.yaml --namespace ingress-basic

Kendi ad alanını silin. Komutunu kullanın kubectl delete ve ad alanı adınızı belirtin:

kubectl delete namespace ingress-basic

Son olarak, giriş denetleyicisi için oluşturulan statik genel IP adresini kaldırın. Bu makalenin ilk adımında elde edilen MC_myResourceGroup_myAKSCluster_eastus gibi Mc_ Cluster kaynak grubu adınızı sağlayın:

az network public-ip delete --resource-group MC_myResourceGroup_myAKSCluster_eastus --name myAKSPublicIP

Sonraki adımlar

Bu makalede bazı dış bileşenler AKS 'ye eklenmiştir. Bu bileşenler hakkında daha fazla bilgi edinmek için aşağıdaki proje sayfalarına bakın:

Aşağıdakileri de yapabilirsiniz: