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 集群中

  Azure Kubernetes Service 简称AKS,它托管的Kubernetes 环境,可以使我们在Azure中很轻松的部署和管理容器话的应用程序。AKS环境启用了自动更新,自愈和自动缩放等功能。Kubernetes 的集群主机由Azure 免费管理,创建AKS服务的时候,我们可以将集群主机交由Aure进行托管,另外一种是我们在创建的时候,将我们自己创建好的VMSS挂载到AKS服务上。我们只需要为节点所在其上运行的VM付费即可。

  接下来,我们看看当前基础设施架构图

--------------------我是分割线--------------------

Azure Kubernetes Service 入门

--------------------我是分割线--------------------

Azure Command Line 创建 Azure Container Registry 服务

二,正文

1,创建Azure Kubernetes Service

Azure Portal 点击 “Create a resource”,在搜索框中输入 “Kubernetes Service”,进行搜索,点击 “Create”

Azure Kubernetes Service 入门

Resource group 选择创建一个新的 “Web_Test_AKS_RG”

Kubernetes cluster name:“cnbateblogwebCluster”

Region 选择:“East Asia”

Node count 改为 “1”

点击 “Next:Node pools >”,进行设置节点池等信息

 Azure Kubernetes Service 入门

我们如果想增加多个工作节点的话,可以选择 点击 “Add node pool”

VM scale sets 选择:“Enabled”

点击 “Next:Authentication >”

Azure Kubernetes Service 入门

关于 “Authentication method” 我们选择默认的 “Service principal”

其他的都选择默认选项,点击 “Next:Networking >”

Azure Kubernetes Service 入门

 

 接下来我们进行配置网络信息,我们可以选择默认,也可以选择自定义的网络设计

Network configuration 选择:“Advanced”

Virtual network 选择创建新的,如下图所示

Name:“CnBateBlogWeb_VNET”

Address space:“10.0.0.0/8”

Subnet name:“CnBateBlogWeb_AKS_SubNET”

点击 “OK”,继续配置其他信息

Azure Kubernetes Service 入门

Kubernetes service address range:“10.0.2.0/24”

Kubernetes DNS service IP address:“10.0.2.10”

其他的配置选择默认即可,点击“Next:Integrations >”

Azure Kubernetes Service 入门

开启容器监控,继续点击 “Review + create”,进行创建前的预校验

Azure Kubernetes Service 入门

我们可以看到 验证已通过,点击 “Create” 进行创建 AKS 服务

 Azure Kubernetes Service 入门

创建成功后,我们可以跳转到该资源

Azure Kubernetes Service 入门

 Azure Kubernetes Service 入门

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

找到上次创建好的叫 “cnbateblogwebACR” 的 Azure Container Registry

Azure Kubernetes Service 入门

点击 “Access control(IAM)” ,选择 “Role assignments”,点击 “Add”,添加一个角色分配

Azure Kubernetes Service 入门

Role 选择:“AcrPull”

Assign access to 选择:“Azure AD user,group,or service principal”

Select 选择刚刚创建AKS 的时候,在AD中自动注册的App 

我们点击 ”Save“,进行保存操作

Azure Kubernetes Service 入门

Azure Kubernetes Service 入门最后一步,我们使用kubectl连接到集群上

az aks get-credentials --resource-group Web_Test_AKS_RG --name cnbateblogwebCluster

 

Azure Kubernetes Service 入门

3,Azure Portal 中创建pod

Azure Portal 中找到创建好的 aks 服务,选择 “Workloads(preview)” ,切换到 “Pods” 的Tab页,我们可以看到一些默认的pod,当然这些pod的命名空间都是kube-system,不是我们需要的default的命令空间。

Azure Kubernetes Service 入门

 

同时,我们也可以通过kubectl 客户端命令进行查看

Azure Kubernetes Service 入门

 

我们点击 “+Add ” 进行创建pod信息

Azure Kubernetes Service 入门

 

输入创建 pod 的描述文件,点击 “Add” 按钮

Azure Kubernetes Service 入门

 

完整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

Azure Kubernetes Service 入门

 

Azure Kubernetes Service 入门

 

4,访问 pod 中的容器

 想要与pod 进行通信,可以通过 kubectl port-forward 配置端口转发

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

 

Azure Kubernetes Service 入门

 

 浏览器访问 http://127.0.0.1:8080,如下图所示

Azure Kubernetes Service 入门

 

至此,我们成功的将 pod 跑起来了

5,使用service描述文件将 Pod 进行暴露

选择“Services and ingresses(preview)”,点击 “Add”

Azure Kubernetes Service 入门

 

 我们继续使用 service 藐视文件进行创建,这次 Kind(定义Kubernetes资源类型为Service)的类型为 “Service”,type 为 “LoadBalancer”

Azure Kubernetes Service 入门

Azure Kubernetes Service 入门

 

我们可以看到 名字叫 “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,效果如下显示

Azure Kubernetes Service 入门

 

bingo,撒花,今天的分析到此完结。

三,结尾

  本文,我们创建了AKS服务,并且使用在Azure Portal 上创建属于自己的 pod,并且使用配置端口转发供外界访问,到最后的到了 Service,基本上大家对K8s熟悉的话,上手AKS是非常快的,今天基本上演示了对AKS有了一个基本的认指,下一篇,我们具体讲解以下本篇中使用的一个YAML配置,以及暴露Service的时候,关于LoadBalancer的一些问题。

作者:Allen 

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

 

Azure Kubernetes Service 入门

上一篇:HTML 飞机大战


下一篇:.Net Core Ocelot网关使用 一