Azure容器中建立Kubernetes群集
像Kubernetes这样的容器编排工具,对于容器化应用的管理至关重要。本文将分步讲解在微软Azure上建立Kubernetes集群。
尽管容器让开发人员建立和部署新应用变得更加容易,但是在开发和生产中运行容器却截然不同。现代,生产级别的应用程序都需要扩展以满足不断膨胀的需求,而且其支撑的基础架构也要对单个组件故障具有恢复性。这样,大多数公有云提供商提供了可以容纳生产环境的容器服务,例如Microsoft的Azure Container Service。
通过Azure Container Service,可以构建使用Docker容器支持预配置的VM群集。使用这一集群,你可以选择开源容器编排工具——Docker Swarm、DC/OS或Kubernetes来管理并扩展容器化应用。这些编排工具确保了容器所提供的服可以在集群中的多个节点之间进行负载平衡,并且可以水平扩展以满足需求峰值。
2014年,谷歌开发并开源的Kubernetes已经变得越来越流行。该平台已经成为生产环境中管理容器化应用的标准
为什么Kubernetes引领容器编排包
Kubernetes有一个蓬勃发展的开源贡献者社区。该项目是GitHub最活跃的项目之一,拥有超过12,000个贡献者,近50,000个贡献者和23,000个明星产品。Kubernetes社区在Stack Overflow和Slack上也非常活跃,新用户可以提出问题并利用社区的专业知识。
除了大量的支持者之外,Kubernetes可以在任何地方运行。因为它是一个开放源项目,组织可以在自己的私有云或公有云的虚拟机上运行它。而现在,通过谷歌和微软的容器服务,Kubernetes集群作为服务已经可用,企业不必再担心供应商锁定问题。一旦公司决定使用Kubernetes,它可以将生产应用移动到任何私有云或公有云。
Azure Container Service构建Kubernetes逐步讲解
Azure Container Service和它所支持的Kubernetes还相对较新。因此,在Azure Container Service上构建Kubernetes集群需要几步。先让我们看看当前的流程,然而探讨如何部署、扩展Docker容器便能的服务。
步骤1:安装Azure CLI 2.0
你可以使用Azure门户作为一个图形接口,来构建Azure Container Service集群。在门户中单击“新建(New)”,搜索Azure Container Service,然而创建一个新资源。这让你可以下载Azure Resource Manager模板,来构建新的Azure Container Service集群。但是,为此,要首先创建一个Secure Socket Shell(SSH)密钥对和Azure Active Directory(AD)服务主体。微软已经很好地记录了这个过程,但它仍然涉及到一系列的步骤。
另外,使用Azure命令行界面(CLI)更容易创建集群。使用单个命令,可以创建集群,以及生成SSH密钥和所需的Azure AD服务主体。 Azure CLI可以跨平台,用户可以 在Windows、Mac 和Linux上使用它。
骤2:创建 Azure Container Service集群
安装Azure CLI后,你只可以创建 这一集群。在下面,你将看到我自己构建的命令。注意,这是个单个命令,以 \ 区分每一行:
az acs create --name kubecluster \ --dns-prefix k8scluster2017 \
你可以看到我使用“az acs create”命令创建了Azure Container Service集群。你需要提供唯一的DNS前缀和资源组名称。首先,创建一个空资源组,使用--resource-group参数作为新组的名称。
5到10分钟后,你将得到带有一个Kubernetes主虚拟机和三个代理节点虚拟机的集群。这一代理是那些为运行在集群上的服务托管容器的虚拟机。
步骤3:在 Azure Container Service集群加载服务
为了管理集群,使用“z acs kubernetes install-cli”命令安装Kubernetes CLI。
然后,你可以使用“kubectl”命令管理Kubernetes集群,这之中包括多个选项,如浏览当前节点和部署第一个服务。首先,使用“kubectl get nodes”命令浏览集群中的节点。(如图1)
图1 使用 kubectl浏览节点
在图1中,我们有3个托管服务的代理节点,还有一个控制集群的主节点。
为了在集群中加载一个新服务,你可以从大量的容器镜像进行选择,当然,你还可以使用“kubectl run nginx --image nginx ”命令创建 nginix服务。这将加载一个新的容器,带有即将运行在一个代理节点上的nginx镜像。
创建了这一服务后,你就可以以公共方式访问它。这样,通过Azure Load Balance显示这一服务,
创建该服务后,你可以启用它的公开访问。为此,请使用以下命令通过Azure Load Balancer公开服务,该负载平衡器将作为Azure Container Service部署的一部分来创建:
kubectl expose deployments nginx --port=80 --type=LoadBalancer
步骤4:通过网络UI扩展服务
除了命令行工具外,你可以访问Kubernetes网络UI管理和扩展服务。使用“kubectl proxy”命令创建 为Kubernetes主节点创建一个代理。
现在,你可以在本地打开一个网络浏览器,并查看网页 http://localhost:8001/u。你应该看如图2这样的网络控制台。
图2 Kubernetes网络控制台
左侧,在“工作负载”下,单击“部署”。 你会看到一个类似图3的屏幕。
图3 Kubernetes部署
注意,图3中的部署在单个pod上运行了我们的nginx服务。Kubernetes中的pod是在Azure中作为虚拟机运行的代理节点。
为了手动扩展该服务并添加额外的节点,单击服务名称右侧的下拉列表,然后单击查看/编辑YAML。“replicas”属性当前应设置为1.您可以将此字段编辑为2或3来手动扩展服务。完成后单击“更新”(图4)。
图4.扩展Kubernetes
此时,你可以导航回“部署”,以查看多个现在支持nginx服务的pod(图5)。
图5 扩展后Kubernetes的部署
Kubernetes已经获得了最成熟的,也是最复杂的容器编排引擎之一的声誉。虽然管理员必须采取若干个步骤在Azure容器服务上设置Kubernetes集群,但它比从头开始构建一个更容易。
本文作者:Mike Pfeiffer
来源:51CTO
一个容器,但是一整个k8s集群 你可能需要一个快速启动和销毁的 k8s 集群;你可能在资源受限的环境中运行 k8s 集群;你可能是一个完全的初学者,觉得搭建完整的 k8s 套件太难。那么这篇短文可能可以帮到你。
一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群 2023年,君不言容器技术则已,欲言容器则必称Docker,毫无疑问,它是当今最流行的容器技术之一,但是当我们面对海量的镜像与容器时,怎样快速精准的对海量容器进行管理和编排就又成了新的课题,此时,由Google开源的Kubernetes(读音\[kubə netis\],业界也有称其k8s的,但k8s其实就是文盲版的Kubernetes,只是因为k和s之间有8个字母)就应时而生了,它是一个开源的用于多个主机虚拟成一个云平台后进行容器资源管理和应用编排引擎,致力于让部署容器化应用简单并且高效,提供了应用的全生命周期管理,如应用部署,规划,更新,维护等机制。本次我们尝试在Win10/Mac系统下,
相关文章
- [ci] jenkins kubernetes插件配置(容器模式)-通过jnlp
- 如何通过自动化Kubernetes集群管理容器
- Puppet踏上容器之旅,全面支持Kubernetes
- 018.Kubernetes二进制集群插件metrics-dashboard
- 附006.Kubernetes RBAC授权
- 容器技术教程:如何将Docker应用持续部署至Kubernetes当中
- 【Kubernetes】容器重启策略-Never
- 【Kubernetes】Spring Boot Actuator
- 学习 Kubernetes 的 Why 和 How - 每天5分钟玩转 Docker 容器技术(114)
- Kubernetes 使用Nginx-Ingress实现蓝绿发布/金丝雀发布/AB测试
- 【DevOps】Jenkins+Kubernetes:K8S集群内部署的Jenkins,设置动态Jenkins-slave工作节点到K8S集群中
- Kubernetes 进阶训练营 网络
- 60道常见的 Kubernetes 面试题总结
- VMware、Pivotal和Google Cloud协力推出全新基于Kubernetes的容器服务——Pivotal Container Service(PKS)
- 容器存储架构比较:Kubernetes、Docker和Mesos Compare
- 容器、Docker与Kubernetes——Kubernetes的配置入门
- CoreOS容器编排之路:从Fleet到Kubernetes的转变
- 容器、Docker与Kubernetes——从基础设施的容器化谈起
- Kubernetes持续部署Docker Apps
- 为什么Kubernetes能赢得容器之战
- Kubernetes(K8s) kubectl port-forward 常用命令
- 如何在 DigitalOcean Kubernetes 上设置 NGINX 入口控制器
- OpenStack拥抱Kubernetes,双赢的举措
- 大咖云集,技术宅开趴倒计时 —— 2017 Kubernetes Meetup | 成都站
- 阿里云容器宣布开放支持Kubernetes托管服务
- Kubernetes 之Pod学习
- kubernetes 容器内获取Pod信息(包括:宿主主机IP)
- Kubernetes学习之路(28)之镜像仓库Harbor部署
- Kubernetes学习之路(三)之Mater节点二进制部署