kubernetes 资源管理介绍
在 kubernetes 中,所有的内容都抽象称为资源,用户需要通过操作资源来管理k8s
kubernetes 的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署,就是在k8s集群中运行一个个的容器,将执行的程序运行在容器中
kubernetes 的最小管理单元是 pod 而不是容器,所以只能将容器放在 pod 中,而 k8s 一般也不会直接管理 pod,而是通过 pod 控制器来管理 pod
Dod可以提供服务,就要考虑如何访河pod中的服务,kubernetes提供了service和ingress这两种资源来时间这个功能当 pod 数据需要持久化,k8s 也提供了很多种存储系统
Yaml 语言介绍
kubernetes中资源配置文件都是基于 YAML 语言编写,JSON 相对使用较少因为该文件无法注释
Yaml 资料:Yaml 的语法简述_三虎的技术博客_51CTO博客
Yaml 转换 Json 工具: http://json2yaml.com/convert-yaml-to-json
k8s 资源管理方式
命令式对象管理: 直接使用命令对资源进行操作
kubectl run nginx-pod --image=nginx --port=80
命令式对象配置: 通过命令指定配置文件去操作资源
kubectl create -f nginx-pod.yaml
声明式对象配置: 通过 apply 命令和配置文件去操作资源,相当于更新
kubectl apply -f nginx-pod.yaml
类型 | 操作对象 | 适用环境 | 优点 | 缺点 |
命令式对象管理 | 一个资源 | 测试 | 简单 | 只能操作活动对象,无法审计,跟踪 |
命令式对象配置 | 一个文件 | 生产 | 审计,跟踪 | 项目大时,配置文件太多,操作复杂 |
声明式对象配置 | 整个目录 | 生产 | 支持目录操作 | 意外情况下难以调试 |
kubectl 命令参数
使用kubectl命令可以对集群的各种资源对象进行管理
kubectl命令语法:
kubectl [command] itype] [name] [flags]
command:要对资源进行什么操作,如create、delete、get
type:指定资源类型,如pod、deployment、service
name:指定资源的名称**flags:*指定额外的可选参数
kubectl 常见命令
# 查看所有 pod 资源
kubectl get pod
# 查看 pod 的 yaml 文件
kubectl get pod podname -o yaml
# 查看 pod 的 json 文件
kubectl get pod podname -o json
# 查看 pod 详细信息
kubectl get pod podname -o wide
查看所有的资源类型
kubectl api-resources
kubectl 基本命令参数
命令 | 含有 |
create | 创建一个资源 |
edit | 编辑一个资源 |
get | 查看一个资源信息 |
patch | 更新一个资源 |
delete | 删除一个资源 |
explain | 展示资源文档 |
kubectl 运行和调试相关命令参数
命令 | 含义 |
run | 运行一个指定的镜像 |
expose | 暴露资源为 service |
describe | 查看资源的详细输出 |
logs | 查看容器在 pod 中的日志 |
attach | 进入运行的容器 |
exec | 进入容器 |
cp | 在 pod 内外复制文件 |
rollout | 管理资源的发布 |
scale | 扩容或缩容 pod 的数量 |
autoscale | 自动跳转 pod 的数量 |
kubectl 高级命令参数
命令 | 含义 |
apply | 更新资源配置 |
label | 更新资源上的标签 |
kubectl 其他命令
命令 | 含义 |
cluster-info | 显示集群信息 |
version | 显示集群版本 |
集群管理
资源名称 | 缩写 | 资源作用 |
node | no | 集群组成部分 |
namespace | ns | 隔离 pod |
Pod 管理
资源名称 | 缩写 | 资源作用 |
replicationcontrollers | rc | 控制 Pod 资源 |
replicasets | rs | 控制 Pod 资源 |
deployment | deploy | 控制 Pod 资源 |
daemonsets | ds | 控制 Pod 资源 |
jobs | 控制 Pod 资源 | |
cronjobs | cj | 控制 Pod 资源 |
horizontalpodautoscalers | hpa | 控制 Pod 资源 |
statefulsets | sts | 控制 Pod 资源 |
服务发现
资源名称 | 缩写 | 资源作用 |
services | svc | 统一 pod 对外接口 |
ingress | ing | 统一 pod 对外接口 |
存储管理
资源名称 | 缩写 | 资源作用 |
volumeattachments | 存储 | |
persistentvolumes | pv | 存储 |
persistentvolumeclaims | pvc | 存储 |
资源配置
资源名称 | 缩写 | 资源作用 |
configmaps | cm | 配置 |
secrets | 配置 |