一,引言

  上一节,我们使用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 Command Line 创建 Azure Container Registry 服务

二,正文

1,创建Azure Kubernetes Service

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

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

Kubernetes cluster name:“cnbateblogwebCluster”

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 :

浏览器访问 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

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

Azure Kubernetes Service 入门的更多相关文章

  1. ASP.NET Core在Azure Kubernetes Service中的部署和管理

    目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...

  2. 将微服务部署到 Azure Kubernetes 服务 (AKS) 实践

    本文是对 <.NET Tutorial - Deploy a microservice to Azure> 的翻译和实践.入门级踩坑实践,k8s 大佬请回避,以免耽误您宝贵的时间. 介绍 ...

  3. 在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序

    引子 在此前的一篇文章中,我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序(http://www.cnblogs.com/chenxizhang/p/7148657.ht ...

  4. windows phone开发-windows azure mobile service使用入门

    在使用azure之前,我一直只能做本地app,或者使用第三方提供的api,尽管大多数情况下够用,但是仍不能随心所欲操纵数据,这种感觉不是特别好.于是在azure发布后,我就尝试使用azure来做为个人 ...

  5. C# 开源一个基于 yarp 的 API 网关 Demo,支持绑定 Kubernetes Service

    关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了.目前写完了查看 Kubernetes Service 信息.创建 ...

  6. Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)

    <Windows Azure Platform 系列文章目录> 本文是对Windows Azure Platform (六) Windows Azure应用程序运行环境内容的补充. 我们知 ...

  7. Kubernetes快速入门

    二.Kubernetes快速入门 (1)Kubernetes集群的部署方法及部署要点 (2)部署Kubernetes分布式集群 (3)kubectl使用基础 1.简介 kubectl就是API ser ...

  8. 用集装箱装ASP。带有Docker和Azure Kubernetes服务的NET Core应用程序

    介绍 曾经有一个单一软件应用程序的时代,整个应用程序被打包并部署在作为单个进程运行的单个服务器上.我们都知道,在这个模型中,单点故障可能会导致整个应用程序崩溃. 微服务体系结构的发展是为了解决单片应用 ...

  9. Azure Kubernetes(AKS)部署及查看应用资源

    简介 上一篇文章讲解了如何使用Azure DevOps持续部署应用到Azure Kubernetes上.但是部署是否成功?会不会遇到什么问题?项目运行中是否会出现问题?我们该怎么样查看这些问题,并且对 ...

随机推荐

  1. Spring葵花宝典

    一 Spring简介 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 为了解决企业应用开发的复杂性而创建 二 Spring功能 1. 方便解耦 简化开发 Spring就是一 ...

  2. HRNet + Object Contextual Representation

    文章内容来自CCF-CV走进高校报告会中MSRA王井东老师的报告"Learning high-resolution and object-contextual representations ...

  3. 使用vuex做列表数据过滤

    功能需求 展示一个表格,表格包含选项有" 姓名 年龄 是否显示"三个列表项 是否显示列表项是可操作开关,点击切换打开/关闭 将表格中开关为打开状态的列表项,在另一个表格中显示 需求 ...

  4. jenkins初学部分笔记网站

    https://www.cnblogs.com/wfd360/p/11314697.html 自动化部署详细教程 https://blog.csdn.net/weixin_41948075/artic ...

  5. LQB2018A09倍数问题

    这个题,第一反应一定是三个for嵌套加一个max比较. 超级无敌大暴搜 #include <iostream> #include <string> #include <s ...

  6. Python更新列表

    Python更新列表: 使用索引下标进行更新: # 修改列表的第 6 个元素为 d lst = ['a','b','c',1,2,3] lst[5] = 'd' print(lst) # ['a', ...

  7. Kylin Flink Cube 引擎的前世今生

    Apache Kylin™ 是一个开源的.分布式的分析型数据仓库,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,它能在亚秒内查询巨大的表. Ky ...

  8. Python os.fsync() 方法

    概述 os.fsync() 方法强制将文件描述符为fd的文件写入硬盘.在Unix, 将调用fsync()函数;在Windows, 调用 _commit()函数.高佣联盟 www.cgewang.com ...

  9. PHP gmstrftime() 函数

    ------------恢复内容开始------------ 实例 根据区域设置格式化 GMT/UTC 日期和时间: <?phpecho(gmstrftime("%B %d %Y, % ...

  10. Echarts饼图绘制

    实现效果: html代码: <div id="chartBody1" style="width:120%;height:28vh;"> <di ...