管理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信息,比基础信息多出了podip地址,节点位置等
  • 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 删除podpod控制器—删除控制器有效果
  • 删除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信息,可用看到转发条目

扩容PODservice怎么调度

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
  • createapply命令都会根据配置文件创建资源,但是
  • 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