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 |
配置 |