k8s系统4之k8s命令式应用编排简单使用

admin 2024年6月8日14:06:31评论5 views字数 2356阅读7分51秒阅读模式

前言

前面已经搭建了一个k8s的简单环境以及介绍了k8s常用的命令,本篇文章就来看看k8s的一些简单使用。

今天端午节了,祝大家端午快乐!

容器应用编排的基础操作

应用部署、访问、查看,服务暴露和应用扩缩容等

一般说来,Kubernetes之上应用程序的基础管理操作由如下几个部分组成。

1)通过合用的控制器类的资源(例如Deployment或ReplicationController)创建并管控Pod对象以运行特定的应用程序:无状态(stateless)应用的部署和控制通常使用Deployment控制器,而有状态应用则需要使用StatefulSet控制器或扩展的Operator。

2)为Pod对象创建Service对象,以便向客户端提供固定的访问端点,并能够借助KubeDNS进行服务发现。

3)随时按需获取各资源对象的简要或详细信息,以了解其运行状态。

4)如有需要,对支持扩缩容的应用按需进行扩容或缩容;或者,为支持HPA的控制器组件(例如Deployment或ReplicationController)创建HPA资源对象,以实现Pod副本数目的自动伸缩。

5)应用程序的镜像出现新版本时,对其执行更新操作,若相应的控制器支持,修改指定的控制器资源中Pod模板的容器镜像为指定的新版本即可自动触发更新过程。

应用部署

kubectl create deployment能够以“命令式命令”直接创建Deployment控制器对象,经该对象编排的Pod对象将由该命令生成的Pod模板自动创建,但需要用户以--image选项指定要使用的容器镜像。

该命令的--dry-run={none|client|server}选项可用于测试运行,并不真正执行资源对象的创建过程,因而可用于在真正运行之前测试其是否能成功创建出指定的Deployment资源。

kubectl create deployment demoapp0530 --image="ikubernetes/demoapp:v1.0" --dry-run=client

k8s系统4之k8s命令式应用编排简单使用

测试无问题,即可删除 --dry-run=client创建真正的资源

k8s系统4之k8s命令式应用编排简单使用

▪NAME:Deployment资源对象的名称。

▪READY:以类似m/n格式返回两个数字,m代表就绪的Pod数量,n表示期望的总的Pod数量。

▪UP-TO-DATE:更新到最新版本定义的Pod对象副本数量,在控制器的滚动更新模式下,它表示已经完成版本更新的Pod对象副本数量。▪AVAILABLE:当前处于可用状态的Pod对象副本数量,即可正常提供服务的副本数。

▪AGE:该资源的存在时长。

部署service对象

Service对象就是一组Pod的逻辑组合,它通过称为ClusterIP的地址和服务端口接收客户端请求,并将这些请求代理至使用标签选择器来过滤一个符合条件的Pod对象。

kubectl create service nodeport demoapp0530 --tcp=80

k8s系统4之k8s命令式应用编排简单使用

查看service对象

k8s系统4之k8s命令式应用编排简单使用

其中,PORT(s)字段中表明,集群中各工作节点会捕获发往本地的目标端口为32687的流量,并将其代理至当前Service对象的80端口,于是,集群外部的用户可以使用当前集群中任一节点的此端口来请求Service对象上的服务。CLUSTER-IP字段为当前Service的IP地址,它是一个虚拟IP,并没有配置在集群中任何主机的任何接口之上,但每个Node上的kube-proxy都会为CLUSTER-IP所在的网络创建用于转发的iptables或ipvs规则。此时,用户可于集群外部任一浏览器请求Kubernetes集群任意一个节点的相关端口来进行访问测试。

k8s系统4之k8s命令式应用编排简单使用

扩容与缩容

kubectl scale命令就是专用于变动控制器应用规模的命令,它支持对Deployment、ReplicaSet、StatefulSet等类型资源对象的扩容和缩容操作

kubectl scale deployment/demoapp0530 --replicas=3

k8s系统4之k8s命令式应用编排简单使用

Service对象内置的负载均衡机制可在其后端副本数量不止一个时自动进行流量分发,它还会自动监控关联到的Pod的健康状态,以确保仅将请求流量分发至可用的后端Pod对象。

修改与删除对象

成功创建于Kubernetes之上的资源对象也称为活动对象(live object),其配置规范(live object configuration)由API Server保存在集群状态存储系统etcd中。kubectl edit命令可调用默认编辑器对活动对象的可配置属性进行编辑。例如,若需要将此前创建的Service/demoapp对象的类型修改为ClusterIP,可以使用kubectl edit service demoapp命令打开编辑界面后,通过将type属性的值修改为ClusterIP使其实时生效。

不再有价值的活动对象可使用kubectl delete命令予以删除。下面的命令能够删除service/demoapp资源对象

需要注意的是,受控于控制器的Pod对象在删除后会被重建,因而删除此类对象需要直接删除其控制器对象。默认情况下,删除Deployment一类的工作负载型控制器资源会级联删除相关的所有Pod对象,若要禁用该功能,需要在删除命令中使用--cascade=false选项。

显然,直接命令式管理资源对象存在较大的局限性,它们在设置资源对象属性方面提供的配置能力相当有限,而且有不少资源并不支持通过命令操作进行创建。例如,用户无法创建带有多个容器的Pod对象,也无法为Pod对象创建存储卷。因此,资源对象的更有效管理方式是使用保存有对象配置信息的配置清单。

原文始发于微信公众号(信安路漫漫):k8s系统4之k8s命令式应用编排简单使用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月8日14:06:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   k8s系统4之k8s命令式应用编排简单使用http://cn-sec.com/archives/2830254.html

发表评论

匿名网友 填写信息