管理k8s核心资源的仨方法
一、方法分类
陈述式–主要依赖命令行工具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查询所有podkubectl 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 namespaceskubectl 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 execkubectl -n default exec -it test-pod bash
scale扩容podkubectl -n default scale deployments test-pod --replicas=2设置为2
delete删除pod和pod控制器—删除控制器有效果- 删除
podkubectl -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 serviceipvsadm -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- 必须存在的四个部分
apiVersionkindmetadataspec
- 通过explain获取 某一项的
kubectl explain service.kind
创建并应用资源配置清单
- 创建
yaml配置文件- 必须存在的四个部分
apiVersionkindmetadataspec
- 必须存在的四个部分
- 应用配置创建资源
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
版权声明:本文为wuzeipero原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。