Kubernetes——资源介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes——资源介绍相关的知识,希望对你有一定的参考价值。

参考技术A

Namespace是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实战入门

Kubernetes——Kubernetes资源管理

Docker&Kubernetes ❀ Kubernetes集群资源的管理与配置

Docker&Kubernetes ❀ Kubernetes集群资源的管理与配置

kubernetes的Ingress资源介绍