一,引言

  上一节,我们使用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. 如何在sed中使用变量,两种方法

    第一 在sed条件中是不认识变量取值的 sed '/$x/d' test 所以要想它能够识别变量 sed "/$x/d/" test 方法简单就是把"单引号"变 ...

  2. jmeter正则表达式,萌新入门篇

    @@@@@@@@@@@@ 透过现象看本质 jmeter中正则表达式对我们来说,就是一个工具,他可以帮助我们做的事就是从一堆数据中截取出我们想要的字段,比如从setcookie:DERF12456DAS ...

  3. PHP range() 函数

    实例 创建一个包含从 "0" 到 "5" 之间的元素的数组: <?php$number = range(0,5);print_r ($number);?& ...

  4. PHP imagearc - 画椭圆弧

    imagearc — 用于画椭圆弧.高佣联盟 www.cgewang.com 语法 bool imagearc ( resource $image , int $cx , int $cy , int ...

  5. 7.9 NOI模拟赛 C.走路 背包 dp 特异性

    (啊啊啊 什么考试的时候突然降智这题目硬生生没想出来. 容易发现是先走到某个地方 然后再走回来的 然后在倒着走的路径上选择一些点使得最后的得到的最多. 设\(f_{i,j}\)表示到达i这个点选择的价 ...

  6. zabbix配置钉钉机器人告警

    目录 zabbix配置钉钉机器人告警 1. 在钉钉中创建群聊,在群里面添加自定义机器人 2. 配置钉钉告警脚本 3. 配置脚本告警 3.1 创建媒介 3.2 为用户添加对应媒介 3.3 创建动作 4. ...

  7. 数据库允许空值(null),往往是悲剧的开始

    原文: 58沈剑   架构师之路   https://mp.weixin.qq.com/s/XRSPITgWWK-2Ee-cSIqw1w 数据库字段允许空值,会遇到一些问题,此处包含的一些知识点,和大 ...

  8. .net core编写转发服务(三) 接入Polly

    在web服务里面,很常见出现各种问题,需要一些响应的策略,比如服务繁忙的时候,重试,或者重试等待 服务繁忙的时候根据策略即使处理 关于接入Polly我还是沿用之前的代码,继续迭代 Web Api用的是 ...

  9. 001_记一次ansible api二次开发遇到的小问题

    在某次关于发布系统的项目中,需要调用ansible来发布任务,其中一段代码是初始化ansible的连接,并传入一个source(目标机器)的值,代码段如下: from .ansible_api imp ...

  10. 会话机制,Cookie和Session详解

    转载自:https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二 ...