k8s集群中的名词非常多,不过不用慌,我们会一个个依次学习到。上一节我们已经成功创建了一个集群,这一节我们先了解下k8s中对于这些名词的分类方式,并在上一节集群里面以创建一个pod为例来初窥k8s中yaml配置文件各个字段的用法。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
k8s中的资源
k8s中所有的内容都是资源,资源实例化之后叫做对象。
名称空间级别
下面这些资源在创建的时候都是和名称空间绑定的,也就是在执行kubectl get xx
等操作的时候后面要加上-n xxx
的名称空间,例如系统容器所对应的kube-system
空间,或者是利用--all-namespaces
直接在所有命名空间中查找。不然会出现资源找不到的报错。
这一节主要是认识下pod,后面的这些在这里先有个简单印象,后面我们会一个个学习到。
工作负载型资源
- Pod
最小资源级别 - ReplicaSet
通过标签控制Pod - Deployment
通过控制RS去控制Pod - StatefulSet
- DaemonSet
- Job/CronJob
服务发现及负载均衡型资源
- Service
- Ingress
配置与存储型资源
- Volume
- CSI(Container Storage Interface)
用来扩充第三方volume
特殊类型的存储卷
- ConfigMap
存储一些配置文件,达到热更新的状态 - Secret
保存敏感数据 - DownwardAPI
把外部环境中的信息输出给容器
集群级别
下面这些资源是整个集群级别的。
- Namespace
- Node
- Role
- ClusterRole
- RoleBinding
- ClusterRoleBinding
元数据
下面这些数据规定了一些指标,同时对应着一些相应操作。
- HPA
- PortTemplate
- LimitRange
YAML
K8s里面的配置文件基本都是YAML格式的,类似于json是一种标记语言。这里不会对起语法规范做详细解释,如果有不熟悉的朋友可以先参考YAML教程进行了解。
想在k8s集群里面创建任何资源,都可以通过新建一个对应的yaml配置文件,直接通过kubectl去apply即可。下面我们就会用实例来感受到。
常用字段
下面看一下在定义一个资源的时候有哪些字段需要放在yaml文件中的。这里只是列出了一些常用的,全部的资源字段可以通过kubectl explain xx
来查看,例如kubectl explain pod
来查看Pod的所有字段,然后进一步通过kubectl explain pod.spec
之类的去层层递进地查看。
用docker-compose构建过容器的朋友应该会很熟悉。
字段名 | 字段类型 | 说明 |
---|---|---|
version | string | RESTFu |