Kubernetes学习:资源清单与分类详解

0 下载量 105 浏览量 更新于2024-08-30 收藏 1.27MB PDF 举报
在深入学习Kubernetes(k8s)的过程中,理解核心资源的概念及其管理至关重要。首先,资源是Kubernetes中的基石,它们代表了系统中可以动态创建、管理和调度的对象,如Pod、Service、Deployment等。在k8s架构中,资源分为三个主要层次: 1. **名称空间级别**: - **默认命名空间**:kubeadm安装的k8s集群通常默认使用kube-system命名空间来部署核心组件,这些组件对于用户直接创建的资源(如Pod)可能存在隐藏或受限的访问。当你使用`kubectl get pod`命令时,如果没有明确指定命名空间(-n flag),它会默认查找`default`命名空间中的资源。 - **角色(Role)**:这是一种集群级别的资源,可以在任意命名空间内定义权限策略,允许跨命名空间访问。例如,RoleBinding用于关联角色和用户或服务账户,从而控制其在不同命名空间内的访问权限。 2. **集群级别**: - **元数据型资源**:这里提到的“元数据型”资源通常指的是Horizontal Pod Autoscaler (HPA),它是一种自动扩展机制,根据Pod的CPU或内存使用情况动态调整副本集的数量,保持资源的水平扩展。 3. **资源清单**: - **YAML语法**:Kubernetes配置文件通常使用YAML格式来定义资源对象,这是一种人类可读的数据序列化语言,包括键值对来描述资源的各种属性。 - **常用字段说明**:在YAML中,关键字段如`metadata`(包含名称、标签等元数据)、`spec`(定义资源的规格,如Pod的容器、Service的端口等)和`status`(反映资源当前状态)是必不可少的。 - **操作指令**: - `kubectl apply -f yaml_file.yaml`:用于根据YAML文件应用资源定义。 - `kubectl get pod`:列出Pod,可以带`-n <namespace>`参数指定命名空间。 - `kubectl describe pod <pod_name>`:提供Pod的详细信息,包括容器、状态等。 - `kubectl logs <pod_name> -c <container_name>`:查看Pod中指定容器的日志。 作者闰土少年与猹分享的学习资源清单涵盖了基础概念和实用操作,帮助读者从命名空间的理解到编写和管理资源清单,再到实际操作和调试,为k8s的学习提供了清晰的路径。通过实践这些指令和深入理解资源类型,读者可以更好地驾驭Kubernetes的世界。