Kubernetes——资源介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes——资源介绍相关的知识,希望对你有一定的参考价值。
参考技术ANamespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现 多套环境的资源隔离 或者 多租户的资源隔离 。
默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的组,以方便不同的组的资源进行隔离使用和管理。
可以通过kubernetes的授权机制,将不同的namespace交给不同租户进行管理,这样就实现了多租户的资源隔离。此时还能结合kubernetes的资源配额机制,限定不同租户能占用的资源,例如CPU使用量、内存使用量等等,来实现租户可用资源的管理。
然后就可以执行对应的创建和删除命令了:
Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。
Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。
kubernetes在集群启动之后,集群中的各个组件也都是以Pod方式运行的。可以通过下面命令查看:
创建并运行
kubernetes没有提供单独运行Pod的命令,都是通过Pod控制器来实现的
查看pod信息
访问Pod
删除指定Pod
配置操作
创建一个pod-nginx.yaml,内容如下:
然后就可以执行对应的创建和删除命令了:
Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择。
Label的特点:
可以通过Label实现资源的多维度分组,以便灵活、方便地进行资源分配、调度、配置、部署等管理工作。
标签定义完毕之后,还要考虑到标签的选择,这就要使用到Label Selector,即:
当前有两种Label Selector:
标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号","进行分隔即可。例如:
* name=slave,env!=production
* name not in (frontend),env!=production
命令方式
配置方式
然后就可以执行对应的更新命令了:kubectl apply -f pod-nginx.yaml
在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。
在kubernetes中Pod控制器的种类有很多,本文只介绍一种:Deployment。
命令操作
查看创建的Pod
查看deployment的信息
查看deployment的详细信息
删除
配置操作
创建一个deploy-nginx.yaml,内容如下:
然后就可以执行对应的创建和删除命令了:
前面已经能够利用Deployment来创建一组Pod来提供具有高可用性的服务。
虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题:
这样对于访问这个服务带来了难度。因此,kubernetes设计了Service来解决这个问题。
Service可以看作是一组同类Pod 对外的访问接口 。借助Service,应用可以方便地实现服务发现和负载均衡。
操作一:创建集群内部可访问的Service
操作二:创建集群外部也可访问的Service
删除Service
配置方式
创建一个svc-nginx.yaml,内容如下:
然后就可以执行对应的创建和删除命令了:
至此,介绍了Namespace、Pod、Deployment、Service资源的基本操作,有了这些操作,就可以在kubernetes集群中实现一个服务的简单部署和访问了,但是如果想要更好的使用kubernetes,就需要深入学习这几种资源的细节和原理。
以上是关于Kubernetes——资源介绍的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes——Kubernetes资源管理+Kubernetes实战入门
Kubernetes——Kubernetes资源管理+Kubernetes实战入门
Docker&Kubernetes ❀ Kubernetes集群资源的管理与配置