您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
Kubernetes扫盲班第一期-运行Kubernetes
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
Kubernetes扫盲班第一期-运行Kubernetes
jd****
2022-08-31
IP归属:北京
543浏览
基于容器的微服务架构(Microservice Architecture)逐渐的成为了开发应用系统的主流,作为名门出身的Kubernetes,不仅有Google深厚的技术功底作为支撑,有领先时代的设计理念,更有各云计算巨头不遗余力的支持,学习Kubernetes对我们程序开发人员是很有必要的。 <br> 本系列是我学习Kubernetes的分享,供大家作为参考。 <br> 目录 Kubernetes扫盲班第一期-运行Kubernetes </br> <div style=" text-align:center;color: #b8b8b8">................................................................</div></br> <br> ## 前言 2017年是容器生态发展具有里程碑意义的一年,RKT容器,Rancher labs相继加入Kubernetes生态,Kubernetes主要竞争对手Apache Mesos在9月也正式宣布Kubernetes on Mesos集成计划,Docker Swarm母公司Docker也在10月份被迫宣布Docker将同时支持Swarm与Kubernetes两套容器管理系统,变相承认了kubernetes的统治地位,至此以Docker Swarm,Apache Mesos与Kubernetes为主的容器编排战争有了明确的结果,Kubernetes的登基加冕既是容器发展时代的终章,也将是软件架构发展下一个纪元的开端。</br></br> ## 简介 Kubernetes(K8s)是Google在2014年发布的一个开源项目,据说Google数据中心运行着20多亿个容器,而且Google十年前就开始使用容器技术, 最初Google开发了一个叫Borg的系统(现Omega)来调度庞大数量的容器,在积累了多年的经验后,Google决定重写这个容器管理系统,并将其贡献到开源社区,让全世界收益,Kubernetes可以理解为Google Omega的开源版本。下面就让我们开始Kubernetes的学习之旅。</br></br> ### 创建Kubernetes集群 为了快速的了解Kubernetes系统的基本概念,功能和使用场景,我们通过Kubernetes的一个交互式教程,先一起玩一下,访问网址:[kubernetes.io](https://kubernetes.io/docs/tutorials/kubernetes-basics/) 点击教程:Create a Cluster->Interactive Tutorial-Creating a Cluster </br> 执行命令:minikube start 初始化Kubernetes集群</br> 初始化完成后执行:kubectl get nodes  可以看到集群中只有一个节点minikube kubectl是远程管理kubernetes集群的命令行工具。</br> 执行命令:kubectl cluster-info 可以查看集群的情况 </br></br> ### 部署一个应用 执行命令:kubectl create deployment kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080 我们通过kubectl 部署了一个应用名称为kubernetes-bootcamp 通过--image指定镜像 通过--port 设置应用对外服务的端口  这里Deployment 可以暂时理解为应用 Kubernetes还有一个重要的术语Pod Pod是容器的集合,通常会将紧密相关的容器放到一个pod下,同一个pod中所有容器共享IP地址和Port空间,在一个netword namespace中, Pod是Kubernetes调度的最小单位,同一个Pod中的容器始终被一起调度 运行:kubectl get pods  看到kubernetes-bootcamp应用对应的pod为kubernetes-bootcamp-5b4c4d99f-vm855。</br></br> ### 访问应用 默认情况下,所有pod只能在集群内部访问,对于刚才创建的应用,访问应用只能访问容器的8080端口,如果我们想要从外部我们需要将容器的8080端口映射到节点的端口 执行命令:kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080  执行命令:kubectl get services  看到有两个service,我们暂时将service理解为端口映射,可以看到我们应用的service,8080端口映射到了节点的30998端口,端口是随机分配的。 执行命令:curl minikube:30998  可以访问到我们的应用了</br></br> ### 创建应用副本 默认情况下,一个应用只有一个副本,通过执行:kubectl get deployments 查看  执行命令将应用副本增加到3个 kubectl scale deployments/kubernetes-bootcamp --replicas=3  再次执行kubectl get deployments 查看,副本数增加到了3个  执行:kubectl get pods ,可以看到pod也增加到了3个  通过curl minikube:30998 访问应用,可以看到每次请求发送到不同的pod,自动实现了负载均衡。  降低应用副本也很简单,执行:kubectl scale deployments/kubernetes-bootcamp --replicas=2  查看kubectl get pods,kubectl get deployments  3个副本中的一个被停止了。</br></br> ### 滚动更新 如果我们将现在使用的镜像版本从v1升级为v2, 执行命令:kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2  访问应用,应用自动更新为v2版本,整个过程均为kubernetes自动完成的。  如果想要将v2版本回滚为v1版本 执行:kubectl rollout undo deployments/kubernetes-bootcamp  访问应用可以看到应用回滚为v1版本 </br></br> ### 本章小结 快速的体验了Kubernetes的功能和使用方法,我们在之后会详细的讨论Kubernetes架构,一起学习Kubernetes的核心功能。</br></br> <div style=" text-align:center;color: #b8b8b8">................................................................</div></br> ``` <span style="color: #b8b8b8;font-size:12px;" >你好,我是京东健康-技术产品部朱强,本系列为从零开始学习kubernetes的过程,如果你是和我一样的小白,可以提出任何想要了解的内容,我们一起讨论进步,如果你是大神,非常欢迎给出意见建议,你的点赞评论转发是我更新的动力,谢谢。</span></span> ``` </br>
上一篇:MySQL DDL执行方式-Online DDL介绍
下一篇:高并发下丢失更新的解决方案
jd****
文章数
1
阅读量
543
作者其他文章
01
Kubernetes扫盲班第一期-运行Kubernetes
基于容器的微服务架构(Microservice Architecture)逐渐的成为了开发应用系统的主流,作为名门出身的Kubernetes,不仅有Google深厚的技术功底作为支撑,有领先时代的设计理念,更有各云计算巨头不遗余力的支持,学习Kubernetes对我们程序开发人员是很有必要的。本系列是我学习Kubernetes的分享,供大家作为参考。目录Kubernetes扫盲班第一期-运行Kub
jd****
文章数
1
阅读量
543
作者其他文章
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号