资讯专栏INFORMATION COLUMN

K8s常用功能实践

IT那活儿 / 2084人阅读
K8s常用功能实践

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!




K8s是Kubernetes的简称,其中8代表Kubernetes中“K”与“s”之间的8个字符。K8s是Google开源的容器集群管理系统,为容器化应用提供了资源调度、部署运行、服务发现、自我修复、扩缩容和滚动更新等功能。我们先不深究K8s的各种概念和专业术语,先搭建一个可用的系统,把玩起来,一起走进它的世界,快速建立起感性的认识,再慢慢揭开它神秘的面纱。









获取K8s



获取K8s的方法很多,我们选择在Windows上安装Docker Desktop来获取。
1. 下载安装Docker Desktop
下载链接https://docs.docker.com/desktop/windows/install/
获取安装包后不断下一步就可以完成安装。
2. 安装启动K8s
Settings->Kubernetes->Enable Kubernetes->Apply& Restart
上图左下角Docker和K8s图标显示绿色表示运行正常,此时你已得到Docker、单节点K8s集群和K8s命令行工具kubectl。
3. 命令验证安装情况
运行docker version和kubectlversion,正常输出表示安装并运行正常。





K8s上运行应用



运行kubectl get nodes结果如下图,表示你已连接K8s集群,确认集群正在运行,输出只有一行,是因为它是单节点集群,由单节点同时充当主节点(Master)和工作节点(Node)。
1. K8s由Master和Node节点组成,最简单的部署是集Master和Node于一身的单台主机,一般是至少3台主机的集群化部署。
1.1 Master是K8s集群的控制节点
每个K8s集群中至少有一个Master节点,来负责整个集群的管理和控制。
Master节点运行的主要进程有:K8s API Server、K8s Controller Manager、K8s Scheduler、etcd。
  • K8s API Server:提供HTTP RESTful API接口的主要服务,是K8s里对所有资源对象进行增删改查等操作的唯一入库,也是集群控制的入口进程;
  • K8s Controller Manager:K8s里所有资源对象的自动化控制中心;
  • K8s Scheduler:负责资源调度的进程;
  • etcd:存储所有需要持久化的数据。
1.2 Node是K8s集群中的工作负载节点
Master会根据实际情况将某些任务分配给Node。当某个Node节点故障时,其上的工作负载会被Master转移至其他Node上。
Node节点运行的主要进程有:kubelet、kube-proxy、容器化运行时(如Docker)。
  • kubelet:负责pod对应容器的创建、启停等任务;
  • kube-proxy:实现K8s Service的通信与负载均衡机制的服务;
  • 容器化:负责本机容器的创建和管理。
2. K8s部署应用的工作流程
2.1 开发应用代码
此处不是重点,示例是一个简单的web页面。
2.2 构建容器镜像
docker image build 创建镜像:docker image build -t k8s-test:v.11 ;
docker tag 为镜像添加标签:docker tag k8s-test:v.11 sunhuawei23/k8s-test:v.11。
docker images列出镜像列表:docker images确认sunhuawei23/k8s-test镜像存在,如下图:
2.3 仓库托管镜像
docker push上传镜像到仓库:docker push sunhuawei23/k8s-test:v.11。
访问Docker Hub,确认镜像存在:
2.4 K8s部署应用
容器化的应用运行在K8s的Pod中,Pod是K8s中最基本的操作单元。
kubectl apply部署Pod:kubectl apply -f pod.yml
查看运行的Pod:kubectl get pods
如下图:Pod对象first-pod已创建,并处于Running状态。
2.5 连接到应用
Pod已启动,应用在运行,但需要连接到应用,Service来帮忙,Server是提供相同服务的Pod的对外访问接口。
kubectl apply部署Service:kubectl apply -f svc-local.yml
查看运行的Service:kubectl get svc
如下图:Service对象svc-local已启动和运行。
打开浏览器通过指定的30666端口(svc-local的PORT端口值)能正常访问web页面,如下图:
自此已将一个应用容器化,将其部署到了K8s,并连接成功。





自我修复



Deployment用于自动创建指定数量的Pod实例,K8s实时监控Pod的副本数量,保证其与Deployment中声明的replicas数量一致。Deployment对象自动创建关联的ReplicaSet对象,ReplicaSet对象用于实现Pod的扩缩容。

kubectl delete删除对象,这里删除Pod:kubectl delete pod first-pod

kubectl apply部署Deployment:kubectl apply -f deploy.yml

查看deploy:kubectl get deployments

如下图:3副本的Deployment对象qsk-deploy已准备就绪。
查看对应的3副本的Pod:kubectl get pods。
删除其中一个Pod:kubectl delete pod qsk-deploy-59cd8875dc-x4nv4。
Pod停止时,K8s会自动检测到并重新启动这个Pod,如下图:再次查看Pod时,一个新的Pod已创建。





应用扩缩容



将如下图副本数从3改为5:
修改配置后重新发送给K8s:kubectl apply -f deploy.yml
副本数由3扩容到5,K8s将启动2个副本,如下图:从ContainerCreating到Running;
同理,缩容可以将Pod数量减少到期望状态。





滚动更新



重新容器化应用并上传V12版本的镜像:
将最后一行版本由sunhuawei23/k8s-test:v.11修改为sunhuawei23/k8s-test2:v.12
再次发送给K8s:kubectl apply -f deploy.yml
查看滚动更新进展:kubectl rollout status deployment qsk-deploy,如下图表示已完成一个应用的更新:
写在最后,此文没有过多介绍相关概念或术语,只是介绍了K8s最基本的功能,仅冰山一角,容器的世界是丰富多彩的,而K8s作为容器的管理工具更令人神往,有空可以畅游一番。



本文作者:孙华伟

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129615.html

相关文章

  • 【容器云UK8S】新手指导

    摘要:详细请见产品价格产品概念使用须知名词解释漏洞修复记录集群节点配置推荐模式选择产品价格操作指南集群创建需要注意的几点分别是使用必读讲解使用需要赋予的权限模式切换的切换等。UK8S概览UK8S是一项基于Kubernetes的容器管理服务,你可以在UK8S上部署、管理、扩展你的容器化应用,而无需关心Kubernetes集群自身的搭建及维护等运维类工作。了解使用UK8S为了让您更快上手使用,享受UK...

    Tecode 评论0 收藏0
  • Kubernetes集群中的高性能网络策略

    摘要:自从月份发布以来,用户已经能够在其集群中定义和实施网络策略。吞吐量即以测量的数据传输速度和延迟完成请求的时间是网络性能的常用度量。文章网络延迟和比较的网络方案已经检查了运行覆盖网络对吞吐量和延迟的性能影响。 自从7月份发布Kubernetes 1.3以来,用户已经能够在其集群中定义和实施网络策略。这些策略是防火墙规则,用于指定允许流入和流出的数据类型。如果需要,Kubernetes可以...

    U2FsdGVkX1x 评论0 收藏0
  • Kubernetes集群中的高性能网络策略

    摘要:自从月份发布以来,用户已经能够在其集群中定义和实施网络策略。吞吐量即以测量的数据传输速度和延迟完成请求的时间是网络性能的常用度量。文章网络延迟和比较的网络方案已经检查了运行覆盖网络对吞吐量和延迟的性能影响。 自从7月份发布Kubernetes 1.3以来,用户已经能够在其集群中定义和实施网络策略。这些策略是防火墙规则,用于指定允许流入和流出的数据类型。如果需要,Kubernetes可以...

    tanglijun 评论0 收藏0
  • 利用K8S技术栈打造个人私有云(连载之:K8S资源控制)

    摘要:将用户命令通过接口传送给,从而进行资源的增删改等操作。要使用编写应用程序,当下大多语言都可以很方便地去实现请求来操作的接口从而控制和查询资源,但本文主要是利用已有的客户端来更加优雅地实现的资源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技术栈打造个人私有云系列文章目录】 利用K8S...

    Reducto 评论0 收藏0
  • 利用K8S技术栈打造个人私有云(连载之:K8S资源控制)

    摘要:将用户命令通过接口传送给,从而进行资源的增删改等操作。要使用编写应用程序,当下大多语言都可以很方便地去实现请求来操作的接口从而控制和查询资源,但本文主要是利用已有的客户端来更加优雅地实现的资源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技术栈打造个人私有云系列文章目录】 利用K8S...

    Render 评论0 收藏0
  • 华尔街见闻基于istio的服务网格实践

    摘要:,托管于腾讯云容器平台容器编排工具。适配我们目前的服务部署在腾讯云托管,节点使用核的网络增强型机器,所有的后端服务都以部署,集群外部署高可用支持集群内服务发现,数据库以为主,消息队列采用。 距离2017年的见闻技术架构调整接近2年,随着业务线的发展,见闻技术部的项目数量、项目架构类型、基础设施规模、服务变更频率都在不断地增长,带给SRE的挑战是如何能更快地助力于开发人员更快更稳定地部署...

    stonezhu 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<