使用 Azure 入口網站存取 Kubernetes 資源
在本文中,您可了解如何使用 Azure 入口網站存取和管理 Azure Kubernetes Service (AKS) 資源。
開始之前
若要檢視 Azure 入口網站中的 Kubernetes 資源,您需要 AKS 叢集。 支援任何叢集,但如果您使用 Microsoft Entra 整合,您的叢集必須使用 AKS 管理的 Microsoft Entra 整合。 如果您的叢集使用舊版 Microsoft Entra ID,您可以在入口網站中或使用 Azure CLI 升級叢集。 您也可以使用 Azure 入口網站以建立新的 AKS 叢集。
檢視 Kubernetes 資源
在 Azure 入口網站中,瀏覽至您的 AKS 叢集資源。
從服務功能表中,選取 [Kubernetes 資源]。 Kubernetes 資源清單會顯示下列類別:
- [命名空間] 會顯示叢集命名空間的相關資訊。
- 工作負載會顯示部署、Pod、複本集、StatefulSet、精靈集、作業和部署至叢集的 cron 作業的相關資訊。
- 服務和輸入會顯示您叢集的所有服務和輸入資源。
- 儲存體會顯示您的 Azure 儲存體類別和永續性磁片區資訊。
- 組態會顯示叢集的 ConfigMap 和秘密。
- [自訂資源] 會顯示部署至叢集的任何自訂資源。
- [事件] 會顯示與叢集相關的所有事件。
- Run 命令可讓您透過 Azure API 在叢集上遠端叫用
kubectl
和helm
這類命令,而不需要直接連線至叢集。
部署應用程式範例
在本節中,我們會從 AKS 快速入門部署 Azure 市集應用程式。
連線至您的叢集
若要部署 Azure 市集應用程式,您必須連線到 AKS 叢集。 請遵循下列步驟,使用 Azure 入口網站連線到您的叢集:
- 從 AKS 叢集的 [概觀] 頁面,選取 [連線]。
- 請遵循指示,使用 Cloud Shell、Azure CLI或 Run 命令連線到叢集。
部署 Azure 市集應用程式
從 [Kubernetes 資源] 清單中,選取 [服務和輸入]。
選取 [建立]>[套用 YAML]。
將下列 YAML 複製並貼到編輯器中:
apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq spec: replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 resources: requests: cpu: 1m memory: 1Mi limits: cpu: 1m memory: 7Mi --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancer
選取 [新增]。
應用程式完成部署後,您會在 [服務] 清單中看到下列服務:
- order-service
- product-service
- rabbitmq
- store-front
監視部署深入解析
在您的 AKS 叢集上啟用監視附加元件
已啟用容器深入解析的 AKS 叢集可以在 Azure 入口網站中存取各種部署深入解析。 如果您沒有在叢集上啟用監視,您可使用下列步驟加以啟用:
從 AKS 叢集資源的服務功能表中,選取 [監視深入解析>] [設定>監視]。
在 [設定容器深入解析] 頁面上,選取 [設定]。
監視解決方案可能需要幾分鐘的時間,才能部署並開始收集資料。
檢視部署深入解析
- 從 AKS 叢集資源的服務功能表中,選取 [工作負載]。
- 從清單中選取部署,以檢視部署深入解析,例如 CPU 和記憶體使用量。
注意
您也可選取 [監視]>[深入解析],以檢視特定節點和容器的更深入資訊。
清除資源
如果您不再需要 Azure 市集應用程式,您可以刪除服務,以免產生 Azure 成本。
- 從 [Kubernetes 資源] 清單中,選取 [服務和輸入]。
- 選取您要刪除的服務,然後選取 [刪除]。
疑難排解
未經授權的存取
若要存取 Kubernetes 資源,您必須存取 AKS 叢集、Kubernetes API 和 Kubernetes 物件。 確保您是「叢集系統管理員」或具有適當存取權限的使用者,才能存取 AKS 叢集。 如需詳細資訊,請參閱 AKS 的存取和身分識別選項。
啟用資源檢視
對於現有的叢集,您可能需要啟用 Kubernetes 資源檢視。
提示
您可以針對 API 伺服器授權的 IP 範圍新增 AKS 功能,以將 API 伺服器存取限制為僅限防火牆的公用端點。 另一個選項是更新 --api-server-authorized-ip-ranges
/-ApiServerAccessAuthorizedIpRange
,以包含本機用戶端電腦或 IP 位址範圍 (您在其中瀏覽 Azure 入口網站) 的存取權。 為了允許此存取,您需要電腦的公用 IPv4 位址。 您可使用下列 Azure CLI 或 Azure PowerShell 命來尋找此位址,或者可在瀏覽器中搜尋「我的 IP 位址為何」。
使用下列命令擷取您的 IP 位址:
CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
使用
az aks update
命令搭配--api-server-authorized-ip-ranges
參數,將您的 IP 位址新增至 AKS 核准的清單。az aks update --resource-group <resource-group-name> --name <aks-cluster-name> --api-server-authorized-ip-ranges $CURRENT_IP/32
下一步
本文說明如何從 Azure 入口網站存取 Kubernetes 資源。 如需 AKS 的詳細資訊,請參閱 Azure Kubernetes Services (AKS) 的核心概念。