一,引言

  上一节,我们使用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. Golang语言排序的几种方式

    1.Ints,float64s,strings 使用以如函数实现基本类型 sort.Ints sort.Float64s sort.Strings s := []int{4, 2, 3, 1} sor ...

  2. js冒泡排序和数组去重

    1.冒泡排序 <script>//声明一个数组 var arr=[1,88,66,22,35,65,4,52];//自执行函数 (function maopao(){ for(var i= ...

  3. Redis服务之常用配置(一)

    上一篇博客聊了下redis的简介以及redis的yum安装和源码编译安装需要注意到问题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13378138.html ...

  4. manual for emacs markdown-mode(English)

    markdown-mode now requires Emacs 24.3 or later. Markup insertion and replacement keybindings under C ...

  5. Day02_IP地址详解&进制转换&DOS基本命令与批处理

    学于千峰教育开源课程 感谢 千峰教育官网 b站在线视频 IP地址详解 一.简单局域网的构成 局域网:一般称为内网 简单局域网的构成:交换机.网线.PC(其他IT终端) 交换机:用来组建内网的局域网的设 ...

  6. 6-Pandas之缺失值处理

    一.了解缺失值 通常使用 NA('not available')来代指缺失值 在Pandas的数据结构中,缺失值使用 NaN('Not a Number')进行标识 除了汇总统计方法,还可以使用isn ...

  7. PHP xml_get_current_column_number() 函数

    定义和用法 xml_get_current_column_number() 函数获取 XML 解析器的当前列号. 如果成功,该函数则返回当前列号.如果失败,则返回 FALSE.高佣联盟 www.cge ...

  8. Golang SQL连接池梳理

    目录 一.如何理解数据库连接 二.连接池的工作原理 三.database/sql包结构 四.三个重要的结构体 4.1.DB 4.2.driverConn 4.3.Conn 五.流程梳理 5.1.先获取 ...

  9. 【SCOI2008】奖励关 题解(状压DP+期望)

    题目链接 题目大意:给定$n$个宝物,每次随机抛出一个宝物,奖励分数为$p_i$.但如果选这个宝物必须选过它的前置宝物集合.共进行$K$轮问最优策略下的期望. $n\leq 15,-10^6\leq ...

  10. 如何利用Python在网上接单,兼职也能月薪过万