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 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 入门的更多相关文章
- ASP.NET Core在Azure Kubernetes Service中的部署和管理
目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...
- 将微服务部署到 Azure Kubernetes 服务 (AKS) 实践
本文是对 <.NET Tutorial - Deploy a microservice to Azure> 的翻译和实践.入门级踩坑实践,k8s 大佬请回避,以免耽误您宝贵的时间. 介绍 ...
- 在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序
引子 在此前的一篇文章中,我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序(http://www.cnblogs.com/chenxizhang/p/7148657.ht ...
- windows phone开发-windows azure mobile service使用入门
在使用azure之前,我一直只能做本地app,或者使用第三方提供的api,尽管大多数情况下够用,但是仍不能随心所欲操纵数据,这种感觉不是特别好.于是在azure发布后,我就尝试使用azure来做为个人 ...
- C# 开源一个基于 yarp 的 API 网关 Demo,支持绑定 Kubernetes Service
关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了.目前写完了查看 Kubernetes Service 信息.创建 ...
- Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)
<Windows Azure Platform 系列文章目录> 本文是对Windows Azure Platform (六) Windows Azure应用程序运行环境内容的补充. 我们知 ...
- Kubernetes快速入门
二.Kubernetes快速入门 (1)Kubernetes集群的部署方法及部署要点 (2)部署Kubernetes分布式集群 (3)kubectl使用基础 1.简介 kubectl就是API ser ...
- 用集装箱装ASP。带有Docker和Azure Kubernetes服务的NET Core应用程序
介绍 曾经有一个单一软件应用程序的时代,整个应用程序被打包并部署在作为单个进程运行的单个服务器上.我们都知道,在这个模型中,单点故障可能会导致整个应用程序崩溃. 微服务体系结构的发展是为了解决单片应用 ...
- Azure Kubernetes(AKS)部署及查看应用资源
简介 上一篇文章讲解了如何使用Azure DevOps持续部署应用到Azure Kubernetes上.但是部署是否成功?会不会遇到什么问题?项目运行中是否会出现问题?我们该怎么样查看这些问题,并且对 ...
随机推荐
- 图像增强 | CLAHE 限制对比度自适应直方图均衡化
1 基本概述 CLAHE是一个比较有意思的图像增强的方法,主要用在医学图像上面.之前的比赛中,用到了这个,但是对其算法原理不甚了解.在这里做一个复盘. CLAHE起到的作用简单来说就是增强图像的对比度 ...
- 使用ATOMac进行Mac自动化测试
ATOMac简介 atomac是一个支持在mac上做自动化的python库,GitHub地址如下: https://github.com/pyatom/pyatom 安装 # Python2 sudo ...
- IO流——Properties类、序列化流、反序列化流、打印流、commons-IO
一. Properties类 1. Properties类介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串 ...
- Redis之Redis入门介绍
1.Redis概述 所谓Redis全称为REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value) ...
- 手写 promies
简单的 Promies 封装 function Promiss(fn) { this.state = 'pending' //当前状态 this.value = null // 成功执行时得到的数据 ...
- Day10_ElasticSearch
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 老师的码 ...
- 学习python的几个资料网站
菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html https://www.runoob.com/python/python-tutor ...
- nginx静态资源防盗链
含义: 用于阻止 Referer 头字段为无效值的请求访问站点.需记住的是,使用适当的 Referer 字段值来伪造请求非常容易,因此本模块的预期目的不是要彻底阻止此类请求,而是阻止常规浏览器发送的大 ...
- Hyper-V设置固定IP
win+x以管理员启动PowerShell 创建虚拟交换机,等同于在Hyper-V管理器界面中新建虚拟网络交换机 New-VMSwitch -SwitchName "NAT-VM" ...
- C/C++编程笔记:C语言预处理命令是什么?不要以为你直接写#就行!
很多小伙伴在自己写代码的时候,已经多次使用过#include命令.使用库函数之前,应该用#include引入对应的头文件.其实这种以#号开头的命令称为预处理命令. C语言源文件要经过编译.链接才能生成 ...