管理k8s核心资源的仨方法
- 一、方法分类
- 陈述式--主要依赖命令行工具`kubectl`进行管理
- 声明式-主要依赖统一资源配置清单进行管理
- GUI式-主要依赖图形化操作界面进行管理
- 二、kubectl命令行工具
- 增加`kubectl`自动补全
- `get` 查
- 查看名称空间`namespace`
- 查看`namespace`中的资源
- `-o yaml`查看资源配置清单详细信息
- 创建删除名称空间
- 管理POD控制器和POD
- service资源管理
- 创建`service`资源
- 扩容`POD`看`service`怎么调度
- `explain`查看属性的定义和用法
- 统一资源配置清单
- 语法格式
- 初略用法
- 查看已有资源的资源配置清单
- 创建并应用资源配置清单
- 修改资源配置清单
- 删除资源配置清单
一、方法分类
陈述式–主要依赖命令行工具kubectl
进行管理
- 优点
- 可以满足90%以上的使用场景
- 对资源的增、删、查操作比较容易
- 缺点
- 命令冗长,复杂,难以记忆
- 特定场景下,无法实现管理需求
- 对资源的修改麻烦,需要patch来使用json串更改。
声明式-主要依赖统一资源配置清单进行管理
GUI式-主要依赖图形化操作界面进行管理
二、kubectl命令行工具
官方中文:点击跳转
增加kubectl
自动补全
get
查
查看名称空间namespace
kubectl get namespaces
查看namespace
中的资源
kubectl get all
- 默认是查询default名称空间的资源,查询其他的方式
kubectl get all -n kube-public
get pods
查询所有pod
kubectl get pods -n default
get nodes
查询所有node
节点
kubectl get nodes -n default
-o yaml
查看资源配置清单详细信息
-o yaml
查看yaml
格式的资源配置清单详情
- 查看
pod
清单kebuctl -n kube-public get pod test -o yaml
- 查看
deploy
的清单
kubectl -n default get deploy nginx-dp -o yaml
- 查看
service
的清单
kubectl -n default get service -o yaml -n dedault
创建删除名称空间
create namespace
创建名称空间
kubectl create namespace app
- 删除名称空间
delete namespaces
kubectl delete namespaces app
管理POD控制器和POD
- 创建
pod
控制器
kubectl create deployment test-pod --image=链接
-o wide
查看扩展信息
- 查看
pod
控制器信息,比基础信息多出了镜像来源选择器等
kubectl get deployments -o wide -n default
- 查看
pod
信息,比基础信息多出了pod
的ip
地址,节点位置等
kubetl get pod -o wide -n default
describe
查看资源详细信息
- 查看
pod
控制器详细信息
kubectl describe deployments test-pod -n default
- 查看
pod
详细信息
kubectl describe pod test -n default
exec
进入某个pod
类似docker exec
kubectl -n default exec -it test-pod bash
scale
扩容pod
kubectl -n default scale deployments test-pod --replicas=2
设置为2
delete
删除pod
和pod
控制器—删除控制器有效果
- 删除
pod
kubectl -n default delete pods podname
- 删除所有强制
kubectl -n default delete --all --force
- 删除
pod
控制器
kubectl -n default delete deployments test-pod
service资源管理
-
service
的功能:相当于一个反向代理,不管后端pod
怎么变化,server
提供的服务都不会变化,可用为pod
资源提供稳定的接入点
创建service
资源
kubectl -n default create deployment nginx-dp --image=链接地址
创建pod控制器kubectl -n default get service
ipvsadm -Ln
查看lvs
信息,可用看到转发条目
扩容POD
看service
怎么调度
kubectl -n default scale deployment nginx-dp --replicas=2
ipvsadm -Ln
explain
查看属性的定义和用法
- 查看
service
资源下metadata
的定义及用法
kubectl explain service.metadata
统一资源配置清单
统一资源配置清单,就是一个
yaml
格式的文件,文件中按指定格式定义了所需内容,然后通过命令行工具kubectl
应用即可
语法格式
kubectl create/apply/delete -f /path_to/test.yaml
初略用法
查看已有资源的资源配置清单
kubectl get svc test-dp -o yaml -n fefault
- 必须存在的四个部分
apiVersion
kind
metadata
spec
- 通过explain获取 某一项的
kubectl explain service.kind
创建并应用资源配置清单
- 创建
yaml
配置文件
- 必须存在的四个部分
apiVersion
kind
metadata
spec
- 应用配置创建资源
kubectl create -f test-svc.yaml
- 或者
kubectl apply -f test.yaml
- 查看结果
kubectl get -f test.yaml
create
和apply
命令都会根据配置文件创建资源,但是
create
命令只会新建,如果资源文件已使用过, 则会提示错误- 如果资源不存在,
apply
命令会新建,如果已存在,则会根据配置修改 - 如果是
create
命令新建的资源,使用apply
修改时会提示 apply
比较ok
修改资源配置清单
- 在线修改
- 使用
edit
命令,会打开一个在线的yaml
格式文档,直接修改改文档后,修改立即生效 kubectl edit svc test-ds -n default
- 离线修改
- 离线修改就是修改原来的
yaml
文件,然后使用apply
命令重新配置即可
edit
修改过资源,再用apply
修改,会报错 使用--force
强制修改
kubectl apply -f test.yaml --force
删除资源配置清单
- 陈述式删除:直接删除创建好的资源
kubectl delete svc test-ds -n default
- 声明式删除:通过定制配置文件的方式,删除用改配置文件创建的资源
kubectl delete -f test.yaml