上一節,咱們使用Azure CLI 建立了Azure Resource Group 和 Azure Container Registry 資源,而且將本地的一個叫 「k8s.net.demo」的 images 推送到遠端建立的私有的Docker Image Repo,今天接着上一篇咱們學習一下Azure Kubernetes 服務,經過 Azure Portal 建立 Azure Kubernetes Service,而且但願將 Push 上去的Docker Image 部署到Azure Kubernetes 集羣中html
Azure Kubernetes Service 簡稱AKS,它託管的Kubernetes 環境,可使咱們在Azure中很輕鬆的部署和管理容器話的應用程序。AKS環境啓用了自動更新,自愈和自動縮放等功能。Kubernetes 的集羣主機由Azure 免費管理,建立AKS服務的時候,咱們能夠將集羣主機交由Aure進行託管,另一種是咱們在建立的時候,將咱們本身建立好的VMSS掛載到AKS服務上。咱們只須要爲節點所在其上運行的VM付費便可。node
接下來,咱們看看當前基礎設施架構圖web
--------------------我是分割線--------------------api
--------------------我是分割線--------------------瀏覽器
Azure Command Line 建立 Azure Container Registry 服務網絡
Azure Portal 點擊 「Create a resource」,在搜索框中輸入 「Kubernetes Service」,進行搜索,點擊 「Create」架構
Resource group 選擇建立一個新的 「Web_Test_AKS_RG」app
Kubernetes cluster name:「cnbateblogwebCluster」post
Region 選擇:「East Asia」學習
Node count 改成 「1」
點擊 「Next:Node pools >」,進行設置節點池等信息
咱們若是想增長多個工做節點的話,能夠選擇 點擊 「Add node pool」
VM scale sets 選擇:「Enabled」
點擊 「Next:Authentication >」
關於 「Authentication method」 咱們選擇默認的 「Service principal」
其餘的都選擇默認選項,點擊 「Next:Networking >」
接下來咱們進行配置網絡信息,咱們能夠選擇默認,也能夠選擇自定義的網絡設計
Network configuration 選擇:「Advanced」
Virtual network 選擇建立新的,以下圖所示
Name:「CnBateBlogWeb_VNET」
Address space:「10.0.0.0/8」
Subnet name:「CnBateBlogWeb_AKS_SubNET」
點擊 「OK」,繼續配置其餘信息
Kubernetes service address range:「10.0.2.0/24」
Kubernetes DNS service IP address:「10.0.2.10」
其餘的配置選擇默認便可,點擊「Next:Integrations >」
開啓容器監控,繼續點擊 「Review + create」,進行建立前的預校驗
咱們能夠看到 驗證已經過,點擊 「Create」 進行建立 AKS 服務
建立成功後,咱們能夠跳轉到該資源
找到上次建立好的叫 「cnbateblogwebACR」 的 Azure Container Registry
點擊 「Access control(IAM)」 ,選擇 「Role assignments」,點擊 「Add」,添加一個角色分配
Role 選擇:「AcrPull」
Assign access to 選擇:「Azure AD user,group,or service principal」
Select 選擇剛剛建立AKS 的時候,在AD中自動註冊的App
咱們點擊 」Save「,進行保存操做
最後一步,咱們使用kubectl鏈接到集羣上
az aks get-credentials --resource-group Web_Test_AKS_RG --name cnbateblogwebCluster
Azure Portal 中找到建立好的 aks 服務,選擇 「Workloads(preview)」 ,切換到 「Pods」 的Tab頁,咱們能夠看到一些默認的pod,固然這些pod的命名空間都是kube-system,不是咱們須要的default的命令空間。
同時,咱們也能夠經過kubectl 客戶端命令進行查看
咱們點擊 「+Add 」 進行建立pod信息
輸入建立 pod 的描述文件,點擊 「Add」 按鈕
完整yaml文件
apiVersion: v1
kind: Pod
metadata:
name: k8s-net-demo
labels:
app: k8s-net-demo
spec:
containers:
- name: k8s-net-demo
image: cnbateblogwebacr.azurecr.io/k8s.net.demo:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
回到Azure Portal 中,咱們能夠看到已經建立好的 k8s-net-demo 的pod 已經建立好了,狀態也是 running
想要與pod 進行通訊,能夠經過 kubectl port-forward 配置端口轉發
kubectl port-forward k8s-net-demo 8080:80
瀏覽器訪問 http://127.0.0.1:8080,以下圖所示
至此,咱們成功的將 pod 跑起來了
選擇「Services and ingresses(preview)」,點擊 「Add」
咱們繼續使用 service 藐視文件進行建立,此次 Kind(定義Kubernetes資源類型爲Service)的類型爲 「Service」,type 爲 「LoadBalancer」
咱們能夠看到 名字叫 「k8s-net-service1」 的 Type 爲 LoadBalancer,External-ip 爲 52.184.83.143 cluster-ip 爲 10.0.2.134
咱們能夠在集羣內部使用 10.0.2.134:30000,若是是在集羣外部,可使用 52.184.83.143:80 進行訪問
瀏覽器訪問 http://52.184.83.143:80,效果以下顯示
bingo,撒花,今天的分析到此完結。
本文,咱們建立了AKS服務,而且使用在Azure Portal 上建立屬於本身的 pod,而且使用配置端口轉發供外界訪問,到最後的到了 Service,基本上你們對K8s熟悉的話,上手AKS是很是快的,今天基本上演示了對AKS有了一個基本的認指,下一篇,咱們具體講解如下本篇中使用的一個YAML配置,以及暴露Service的時候,關於LoadBalancer的一些問題。
做者:Allen
版權:轉載請在文章明顯位置註明做者及出處。如發現錯誤,歡迎批評指正。