Azure Kubernetes Service 入門

一,引言

  上一節,咱們使用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 服務網絡

二,正文

1,建立Azure Kubernetes Service

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 服務

 

建立成功後,咱們能夠跳轉到該資源

 

2,爲Azure Kubernetes Service 配置 Azure Container Registry 集成

找到上次建立好的叫 「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

 

3,Azure Portal 中建立pod

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

 

 

4,訪問 pod 中的容器

 想要與pod 進行通訊,能夠經過 kubectl port-forward 配置端口轉發

kubectl port-forward k8s-net-demo 8080:80

 

 

 瀏覽器訪問 http://127.0.0.1:8080,以下圖所示

 

至此,咱們成功的將 pod 跑起來了

5,使用service描述文件將 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 

版權:轉載請在文章明顯位置註明做者及出處。如發現錯誤,歡迎批評指正。

相關文章
相關標籤/搜索