Azure Kubernetes Service (AKS) için HTTP uygulama yönlendirme eklentisi (kullanımdan kaldırıldı)
Dikkat
Azure Kubernetes Service (AKS) için HTTP uygulama yönlendirme eklentisi (önizleme) 03 Mart 2025'te kullanımdan kaldırılacaktır. Bu tarihe kadar Uygulama Yönlendirme eklentisine geçiş yapmanızı öneririz.
HTTP uygulama yönlendirme eklentisi, Azure Kubernetes Service (AKS) kümenize dağıtılan uygulamalara şu şekilde erişmenizi kolaylaştırır:
- AKS kümenizde giriş denetleyicisi yapılandırma.
- Uygulama uç noktaları için genel olarak erişilebilir DNS adları oluşturma
- Aboneliğinizde dns bölgesi oluşturma. DNS maliyeti hakkında daha fazla bilgi için bkz . DNS fiyatlandırması.
Başlamadan önce
- HTTP uygulama yönlendirme eklentisi AKS 1.22.6+ sürümleriyle çalışmaz.
- Komutları yerel olarak çalıştırıyorsanız komutunu kullanarak
az aks install-cli
yükleyinkubectl
.
HTTP uygulama yönlendirme eklentisine genel bakış
Eklenti iki bileşen dağıtır: Kubernetes giriş denetleyicisi ve Dış DNS denetleyicisi.
- Giriş denetleyicisi: Giriş denetleyicisi bir Kubernetes
LoadBalancer
hizmeti kullanılarak İnternet'e sunulur. Giriş denetleyicisi Kubernetes giriş kaynaklarını izler ve uygular ve uygulama uç noktalarına yollar oluşturur. - Dış DNS denetleyicisi: Dış DNS denetleyicisi Kubernetes giriş kaynaklarını izler ve kümeye özgü DNS bölgesinde DNS
A
kayıtları oluşturur.
HTTP uygulama yönlendirmesini etkinleştirme
Yeni bir AKS kümesi oluşturun ve parametresiyle komutunu kullanarak HTTP uygulama yönlendirme eklentisini
az aks create
--enable-addons
etkinleştirin.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-addons http_application_routing \ --generate-ssh-keys
Parametresiyle komutunu kullanarak var olan bir AKS kümesinde HTTP yönlendirmesini
az aks enable-addons
--addons
de etkinleştirebilirsiniz.az aks enable-addons --resource-group myResourceGroup --name myAKSCluster --addons http_application_routing
komutunu kullanarak
az aks show
DNS bölgesi adını alın. Uygulamaları kümeye dağıtmak için DNS bölgesi adına ihtiyacınız vardır.az aks show --resource-group myResourceGroup --name myAKSCluster --query addonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName -o table
Çıkışınız aşağıdaki örnek çıkış gibi görünmelidir:
9f9c1fe7-21a1-416d-99cd-3543bb92e4c3.eastus.aksapp.io
AKS kümenize bağlanma
komutunu kullanarak Kubernetes kümenize bağlanacak şekilde
az aks get-credentials
yapılandırınkubectl
. Aşağıdaki örnek, myResourceGroup içindeki myAKSCluster adlı AKS kümesinin kimlik bilgilerini alır:az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
HTTP uygulaması yönlendirmeyi kullanma
Önemli
HTTP uygulama yönlendirme eklentisi yalnızca aşağıdaki ek açıklamayla giriş kaynaklarında tetiklenebilir:
annotations:
kubernetes.io/ingress.class: addon-http-application-routing
samples-http-application-routing.yaml adlı bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. 43. satırda, önceki adımda topladığınız DNS bölgesi adıyla güncelleştirin
<CLUSTER_SPECIFIC_DNS_ZONE>
.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 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld annotations: kubernetes.io/ingress.class: addon-http-application-routing spec: rules: - host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE> http: paths: - path: / pathType: Prefix backend: service: name: aks-helloworld port: number: 80
komutunu kullanarak
kubectl apply
kaynakları oluşturun.kubectl apply -f samples-http-application-routing.yaml
Aşağıdaki örnekte oluşturulan kaynaklar gösterilmektedir:
deployment.apps/aks-helloworld created service/aks-helloworld created ingress.networking.k8s.io/aks-helloworld created
aks-helloworld için bir web tarayıcısı açın.<>CLUSTER_SPECIFIC_DNS_ZONE, örneğin aks-helloworld.9f9c1fe7-21a1-416d-99cd-3543bb92e4c3.eastus.aksapp.io ve tanıtım uygulamasını gördüğünüzden emin olun. Uygulamanın görünmesi birkaç dakika sürebilir.
HTTP uygulama yönlendirmesini kaldırma
[
az aks disable-addons][az-aks-disable-addons] command with the
addons' parametresini kullanarak HTTP uygulama yönlendirme eklentisini kaldırın.az aks disable-addons --addons http_application_routing --name myAKSCluster --resource-group myResourceGroup --no-wait
HTTP uygulama yönlendirme eklentisi devre dışı bırakıldığında, bazı Kubernetes kaynakları kümede kalabilir. Bu kaynaklar yapılandırma haritalarını ve gizli dizileri içerir ve kube-system ad alanında oluşturulur. Temiz bir kümeyi korumak için bu kaynakları kaldırmak isteyebilirsiniz. Aşağıdaki
kubectl get
komutları kullanarak addon-http-application-routing kaynaklarını arayın:kubectl get deployments --namespace kube-system kubectl get services --namespace kube-system kubectl get configmaps --namespace kube-system kubectl get secrets --namespace kube-system
Aşağıdaki örnek çıktı, silinmesi gereken yapılandırma haritalarını gösterir:
NAMESPACE NAME DATA AGE kube-system addon-http-application-routing-nginx-configuration 0 9m7s kube-system addon-http-application-routing-tcp-services 0 9m7s kube-system addon-http-application-routing-udp-services 0 9m7s
komutunu kullanarak
kubectl delete
kalan kaynakları silin. Kaynak türünü, kaynak adını ve ad alanını belirttiğinizden emin olun. Aşağıdaki örnek, önceki yapılandırma haritalarından birini siler:kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
Kümenizde kalan tüm addon-http-application-routing kaynakları için önceki
kubectl delete
adımı yineleyin.
Sorun giderme
komutunu kullanarak External-DNS uygulamasının uygulama günlüklerini
kubectl logs
görüntüleyin.kubectl logs -f deploy/addon-http-application-routing-external-dns -n kube-system
Günlükler, aşağıdaki örnek çıktıda gösterildiği gibi bir
A
veTXT
DNS kaydının başarıyla oluşturulduğunu onaylamalıdır:time="2018-04-26T20:36:19Z" level=info msg="Updating A record named 'aks-helloworld' to '52.242.28.189' for Azure DNS zone '471756a6-e744-4aa0-aa01-89c4d162a7a7.canadaeast.aksapp.io'." time="2018-04-26T20:36:21Z" level=info msg="Updating TXT record named 'aks-helloworld' to '"heritage=external-dns,external-dns/owner=default"' for Azure DNS zone '471756a6-e744-4aa0-aa01-89c4d162a7a7.canadaeast.aksapp.io'."
komutunu kullanarak NGINX giriş denetleyicisi için uygulama günlüklerini
kubectl logs
görüntüleyin.kubectl logs -f deploy/addon-http-application-routing-nginx-ingress-controller -n kube-system
Günlükler, aşağıdaki örnek çıktıda gösterildiği gibi giriş kaynağının ve denetleyicinin yeniden yüklenmesini onaylamalıdır
CREATE
:------------------------------------------------------------------------------- NGINX Ingress controller Release: 0.13.0 Build: git-4bc943a Repository: https://github.com/kubernetes/ingress-nginx ------------------------------------------------------------------------------- I0426 20:30:12.212936 9 flags.go:162] Watching for ingress class: addon-http-application-routing W0426 20:30:12.213041 9 flags.go:165] only Ingress with class "addon-http-application-routing" will be processed by this ingress controller W0426 20:30:12.213505 9 client_config.go:533] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work. I0426 20:30:12.213752 9 main.go:181] Creating API client for https://10.0.0.1:443 I0426 20:30:12.287928 9 main.go:225] Running in Kubernetes Cluster version v1.8 (v1.8.11) - git (clean) commit 1df6a8381669a6c753f79cb31ca2e3d57ee7c8a3 - platform linux/amd64 I0426 20:30:12.290988 9 main.go:84] validated kube-system/addon-http-application-routing-default-http-backend as the default backend I0426 20:30:12.294314 9 main.go:105] service kube-system/addon-http-application-routing-nginx-ingress validated as source of Ingress status I0426 20:30:12.426443 9 stat_collector.go:77] starting new nginx stats collector for Ingress controller running in namespace (class addon-http-application-routing) I0426 20:30:12.426509 9 stat_collector.go:78] collector extracting information from port 18080 I0426 20:30:12.448779 9 nginx.go:281] starting Ingress controller I0426 20:30:12.463585 9 event.go:218] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"kube-system", Name:"addon-http-application-routing-nginx-configuration", UID:"2588536c-4990-11e8-a5e1-0a58ac1f0ef2", APIVersion:"v1", ResourceVersion:"559", FieldPath:""}): type: 'Normal' reason: 'CREATE' ConfigMap kube-system/addon-http-application-routing-nginx-configuration I0426 20:30:12.466945 9 event.go:218] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"kube-system", Name:"addon-http-application-routing-tcp-services", UID:"258ca065-4990-11e8-a5e1-0a58ac1f0ef2", APIVersion:"v1", ResourceVersion:"561", FieldPath:""}): type: 'Normal' reason: 'CREATE' ConfigMap kube-system/addon-http-application-routing-tcp-services I0426 20:30:12.467053 9 event.go:218] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"kube-system", Name:"addon-http-application-routing-udp-services", UID:"259023bc-4990-11e8-a5e1-0a58ac1f0ef2", APIVersion:"v1", ResourceVersion:"562", FieldPath:""}): type: 'Normal' reason: 'CREATE' ConfigMap kube-system/addon-http-application-routing-udp-services I0426 20:30:13.649195 9 nginx.go:302] starting NGINX process... I0426 20:30:13.649347 9 leaderelection.go:175] attempting to acquire leader lease kube-system/ingress-controller-leader-addon-http-application-routing... I0426 20:30:13.649776 9 controller.go:170] backend reload required I0426 20:30:13.649800 9 stat_collector.go:34] changing prometheus collector from to default I0426 20:30:13.662191 9 leaderelection.go:184] successfully acquired lease kube-system/ingress-controller-leader-addon-http-application-routing I0426 20:30:13.662292 9 status.go:196] new leader elected: addon-http-application-routing-nginx-ingress-controller-5cxntd6 I0426 20:30:13.763362 9 controller.go:179] ingress backend successfully reloaded... I0426 21:51:55.249327 9 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"aks-helloworld", UID:"092c9599-499c-11e8-a5e1-0a58ac1f0ef2", APIVersion:"extensions", ResourceVersion:"7346", FieldPath:""}): type: 'Normal' reason: 'CREATE' Ingress default/aks-helloworld W0426 21:51:57.908771 9 controller.go:775] service default/aks-helloworld does not have any active endpoints I0426 21:51:57.908951 9 controller.go:170] backend reload required I0426 21:51:58.042932 9 controller.go:179] ingress backend successfully reloaded... 167.220.24.46 - [167.220.24.46] - - [26/Apr/2018:21:53:20 +0000] "GET / HTTP/1.1" 200 234 "" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" 197 0.001 [default-aks-helloworld-80] 10.244.0.13:8080 234 0.004 200
Kaynakları temizleme
komutunu kullanarak
kubectl delete
bu makalede oluşturulan ilişkili Kubernetes nesnelerini kaldırın.kubectl delete -f samples-http-application-routing.yaml
Aşağıdaki örnek çıktıda Kubernetes nesnelerinin kaldırıldığı gösterilmektedir:
deployment "aks-helloworld" deleted service "aks-helloworld" deleted ingress "aks-helloworld" deleted
Sonraki adımlar
AKS'de HTTPS güvenli giriş denetleyicisi yükleme hakkında bilgi için bkz . Azure Kubernetes Service'te (AKS) HTTPS girişi.