Azure Managed Kubernetes (AKS) 簡介
Azure 容器服務 (AKS) 是 Microsoft Azure 最近發布的一個託管的 Kubernetes 服務(預覽版),它獨立於現有的 Azure Container Service (ACS)。藉助 AKS 用戶無需具備容器業務流程的專業知識就可以快速、輕鬆的部署和管理容器化的應用程序。AKS 支持自動升級和自動故障修復,按需自動擴展或縮放資源池,消除了用戶管理和維護 Kubernetes 集群的負擔。並且集群管理本身是免費的,Azure 只收取容器底層的虛擬機的費用。
ACS 是 Microsoft Azure 在2015年推出的容器服務,支持 Kubernetes、DCOS 以及 Dockers Swarm 等多種容器編排工具。並且 ACS 的核心功能是開源的,用戶可以通過https://github.com/Azure/acs-engine來查看和下載使用。
由於目前 AKS 還在預覽版,現階段建議用戶還是繼續使用 ACS 來管理容器應用程序。
使用方法
以下文檔假設用戶已經安裝好了Azure CLI ,如未安裝可以參考這裡操作。
在創建 AKS 集群之前,首先需要開啟容器服務
# Enable AKSnaz provider register -n Microsoft.ContainerServicen
然後創建一個資源組(Resource Group)用來管理所有相關資源
# Create Resource Groupnaz group create --name group1 --location centralusn
接下來就可以創建 AKS 集群了
# Create aksnaz aks create --resource-group group1 --name myK8sCluster --node-count 3 --generate-ssh-keysn
稍等一會,集群創建好後安裝並配置 kubectl
# Install kubectlnaz aks install-clinn# Configure kubectlnaz aks get-credentials --resource-group=group1 --name=myK8sClustern
運行容器應用
創建一個 azure-vote.yaml文件,內容為
apiVersion: apps/v1beta1nkind: Deploymentnmetadata:n name: azure-vote-backnspec:n replicas: 1n template:n metadata:n labels:n app: azure-vote-backn spec:n containers:n - name: azure-vote-backn image: redisn ports:n - containerPort: 6379n name: redisn---napiVersion: v1nkind: Servicenmetadata:n name: azure-vote-backnspec:n ports:n - port: 6379n selector:n app: azure-vote-backn---napiVersion: apps/v1beta1nkind: Deploymentnmetadata:n name: azure-vote-frontnspec:n replicas: 1n template:n metadata:n labels:n app: azure-vote-frontn spec:n containers:n - name: azure-vote-frontn image: microsoft/azure-vote-front:redis-v1n ports:n - containerPort: 80n env:n - name: REDISn value: "azure-vote-back"n---napiVersion: v1nkind: Servicenmetadata:n name: azure-vote-frontnspec:n type: LoadBalancern ports:n - port: 80n selector:n app: azure-vote-frontn
然後執行下面的命令創建和訪問該vote示例應用:
# 創建部署nkubectl create -f azure-vote.yamlnn# 查詢 vote 前端應用的公網IP,需要稍等一下,然後就可以通過獲得的公網IP來訪問了nkubectl get service azure-vote-front --watchnn# 還可以配置 Pod 的自動擴展nkubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10n
高級功能
訪問 Dashboard
# Create dashboardnaz aks browse --resource-group group1 --name myK8SClustern
手動擴展或收縮集群
az aks scale --resource-group=group1 --name=myK8SCluster --agent-count 5n
升級集群
# 查詢當前集群的版本以及可升級的版本naz aks get-versions --name myK8sCluster --resource-group group1 --output tablenn# 升級到 1.8.1 版本naz aks upgrade --name myK8sCluster --resource-group group1 --kubernetes-version 1.8.1n
當然也可以使用其他 Kubernetes 社區提供的工具和服務,比如使用 Helm 部署 Nginx Ingress 控制器
helm init --client-onlynhelm install stable/nginx-ingressn
當集群不在使用時,可以刪除集群
az group delete --name group1 --yes --no-waitn
下圖動態展示了一個部署 v1.7.7 版本集群並升級到 v1.8.1 的過程:
Azure Container Registry
在 AKS 預覽版發布的同時,Azure 還同時發布了 Azure Container Registry(ACR)服務,用於託管用戶的私有鏡像。
# Create ACRnaz acr create --resource-group myResourceGroup --name <acrName> --sku Basic --admin-enabled truenn# Loginnaz acr login --name <acrName>nn# Tag the image.naz acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output tablendocker tag azure-vote-front <acrLoginServer>/azure-vote-front:redis-v1nn# push imagendocker push <acrLoginServer>/azure-vote-front:redis-v1nn# List images.naz acr repository list --name <acrName> --output tablen
結語
AKS 的發布也一度讓很多 ACS 的老用戶感到迷惑,但 ACS 肯定還會繼續支持下去,並且當前來看,ACS 要比 AKS 穩定的多(ACS是穩定版,而AKS只是預覽版)。
為此,Brendan Burns 和 Gabe Monroy 還將在本周五 9:00 (PT時間,北京時間周六早上 1:00)舉行一個 Reddit AMA 活動,解釋和回答用於關於 AKS 的疑問。歡迎參加。
推薦閱讀:
※如何評價谷歌為擴大全球雲服務計劃鋪設三條海底光纜?
※Windows Phone死後,UWP還有未來嗎?
※世紀互聯運營的國內版Windows Azure相比國內雲廠商到底有何競爭優勢?
※Azure Container Instance (ACI)
TAG:Kubernetes | Azure | cloudnative |