Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede AKS kümelerinde Gelişmiş Kapsayıcı Ağ Hizmetleri ile L7 ilkelerinin nasıl ayarlanacağı gösterilmektedir. Yalnızca Katman 7 İlkesine Genel Bakış sayfasında listelenen sınırlamaları ve dikkate alınacak noktaları gözden geçirdikten sonra devam edin.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Hesabınız yoksa başlamadan önce ücretsiz bir hesap oluşturun.
bash ortamını Azure Cloud Shell kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell ile çalışmaya başlama.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalıştırıyorsanız Azure CLI Docker kapsayıcısında çalıştırmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Docker kapsayıcısında Azure CLI çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI oturum açın. Kimlik doğrulama işlemini tamamlamak için, terminalinizde görüntülenen adımları takip edin. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'a kimlik doğrulama.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
Yüklü olan sürümü ve bağımlı kütüphaneleri bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Bu makaledeki adımlar için gereken en düşük Azure CLI sürümü 2.79.0'dır. Sürümü bulmak için komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI yükleme.
Gelişmiş Kapsayıcı Ağ Hizmetlerini Etkinleştirme
Devam etmek için Gelişmiş Kapsayıcı Ağ Hizmetleri'nin etkinleştirildiği bir AKS kümeniz olmalıdır.
Gelişmiş Kapsayıcı Ağ Hizmetleri bayrağına sahip komut, tüm Gelişmiş Kapsayıcı Ağ Hizmetleri özellikleriyle yeni bir AKS kümesi oluşturur. Bu özellikler şunları kapsar:
Kapsayıcı Ağ Gözlemlenebilirliği: Ağ trafiğinizle ilgili içgörüler sağlar. Daha fazla bilgi edinmek için Bkz . Container Network Observability.
Kapsayıcı Ağ Güvenliği: Tam Etki Alanı Adı (FQDN) filtrelemesi gibi güvenlik özellikleri sunar. Daha fazla bilgi için Bkz . Container Network Security.
- Cilium
- Ciliumsuz
Uyarı
Cilium veri düzlemi olan kümeler, Kubernetes sürüm 1.29'dan başlayarak Kapsayıcı Ağı Gözlemlenebilirliği ve Kapsayıcı Ağı güvenliğini destekler.
Bu tanıtımda, L7 ilkelerini etkinleştirmek için parametresinin "L7" olarak ayarlanması gerekir. Bu parametrenin "L7" olarak ayarlanması FQDN filtrelemesini de etkinleştirir. Yalnızca FQDN filtrelemesini etkinleştirmek istiyorsanız parametresini "FQDN" olarak ayarlayın. Her iki özelliği de devre dışı bırakmak için Kapsayıcı Ağ Güvenliğini Devre Dışı Bırakma başlığında sağlanan yönergeleri izleyebilirsiniz.
export CLUSTER_NAME="<aks-cluster-name>"
# Create an AKS cluster
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--generate-ssh-keys \
--network-plugin azure \
--network-dataplane cilium \
--enable-acns \
--acns-advanced-networkpolicies L7
Mevcut bir kümede Gelişmiş Kapsayıcı Ağ Hizmetlerini etkinleştirme
komutu, Gelişmiş Kapsayıcı Ağ Hizmetleri bayrağı ile mevcut AKS kümesini tüm Gelişmiş Kapsayıcı Ağ Hizmetleri özellikleriyle, yani Kapsayıcı Ağı Gözlemlenebilirliği ve Kapsayıcı Ağ Güvenliği özelliklerini içerecek şekilde güncelleştirir.
Uyarı
Yalnızca Cilium veri düzlemi olan kümeler, Gelişmiş Kapsayıcı Ağ Hizmetleri'nin Kapsayıcı Ağı Güvenliği özelliklerini destekler.
Bu tanıtımda, L7 ilkelerini etkinleştirmek için parametresinin "L7" olarak ayarlanması gerekir. Bu parametrenin "L7" olarak ayarlanması FQDN filtrelemesini de etkinleştirir. Yalnızca FQDN filtrelemesini etkinleştirmek istiyorsanız parametresini "FQDN" olarak ayarlayın. Her iki özelliği de devre dışı bırakmak için Kapsayıcı Ağ Güvenliğini Devre Dışı Bırakma başlığında sağlanan yönergeleri izleyebilirsiniz.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-acns \
--acns-advanced-networkpolicies L7
Küme kimlik bilgilerini alma
komutunu kullanarak küme kimlik bilgilerinizi alın.
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
AKS kümenizde http-sunucu uygulamasını ayarlama
Uygulamayı ayarlamak için AKS kümenize aşağıdaki YAML'yi uygulayın.
apiVersion: apps/v1
kind: Deployment
metadata:
name: http-server
labels:
app: http-server
spec:
replicas: 1
selector:
matchLabels:
app: http-server
template:
metadata:
labels:
app: http-server
spec:
containers:
- name: http-server
image: nginx:latest
ports:
- containerPort: 8080
volumeMounts:
- name: config-volume
mountPath: /etc/nginx/conf.d
volumes:
- name: config-volume
configMap:
name: nginx-config
---
apiVersion: v1
kind: Service
metadata:
name: http-server
spec:
selector:
app: http-server
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
data:
default.conf: |
server {
listen 8080;
location / {
return 200 "Hello from the server root!\n";
}
location /products {
return 200 "Listing products...\n";
}
}
AKS Kümenizde http-client uygulamasını ayarlama
Uygulamayı ayarlamak için AKS kümenize aşağıdaki YAML'yi uygulayın.
apiVersion: apps/v1
kind: Deployment
metadata:
name: http-client
labels:
app: http-client
spec:
replicas: 1
selector:
matchLabels:
app: http-client
template:
metadata:
labels:
app: http-client
spec:
containers:
- name: http-client
image: curlimages/curl:latest
command: ["sleep", "infinity"]
Bir politikayla bağlantıyı test etme
Ardından, yalnızca uygulamasından isteklere üzerindeki uç noktasına izin vermek için aşağıdaki Katman 7 ilkesini uygulayın.
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: allow-get-products
spec:
description: "Allow only GET requests to /products from http-client to http-server"
endpointSelector:
matchLabels:
app: http-server
ingress:
- fromEndpoints:
- matchLabels:
app: http-client
toPorts:
- ports:
- port: "8080"
protocol: TCP
rules:
http:
- method: "GET"
path: "/products"
Politikayı doğrula
İlkenin uygulanmasını doğrulamak için podundan aşağıdaki komutları çalıştırın:
kubectl exec -it <your-http-client-pod-name> -n default -- curl -v http://http-server:80/products
Yukarıdaki komutu çalıştırdığınızda olduğu gibi bir çıkış bekleyebilirsiniz
kubectl exec -it <your-http-client-pod-name> -n default -- curl -v -XPOST http://http-server:80/products -d "test=data"
Yukarıdaki komutu çalıştırdığınızda olduğu gibi bir çıkış bekleyebilirsiniz
L7 ölçümlerini gözlemleme
Gelişmiş Kapsayıcı Ağ Hizmeti'nin kapsayıcı ağı gözlemlenebilirliğini etkinleştirdiyseniz Grafana'da trafiği görselleştirebilirsiniz.
Bu L7 ölçümlerinin analizini basitleştirmek için önceden yapılandırılmış Azure Managed Grafana panoları sağlıyoruz. Bunları Dashboards > Azure Managed Prometheus klasöründe bulabilirsiniz. "Kubernetes/Networking/L7 (Ad Alanı)" ve "Kubernetes/Networking/L7 (İş Yükü)" gibi dosya adlarıyla.
Aşağıdakine benzer ölçümler görmeniz gerekir:
L7 trafiği için Grafana panosunu gösteren ekran görüntüsü.
Kaynakları temizle
Bu uygulamayı kullanmayı planlamıyorsanız komutunu kullanarak bu makalede oluşturduğunuz diğer kaynakları silin.
az group delete --name $RESOURCE_GROUP
Sonraki Adımlar
Bu nasıl yapılır makalesinde, AKS kümeniz için Gelişmiş Kapsayıcı Ağ Hizmetleri ile L7 İlkelerini etkinleştirmeyi ve uygulamayı öğrendiniz.
- Azure Kubernetes Service (AKS) için Gelişmiş Kapsayıcı Ağ Hizmetleri hakkında daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) için Gelişmiş Kapsayıcı Ağ Hizmetleri nedir?.