k8s中kubectl陈述式资源管理

1、 理论

1.1、 管理k8s核心资源的三种基本方法 :

1.1.1陈述式的资源管理方法:

主要依赖命令行工具kubectl进行管理

1.1.1.1、优点:

可以满足90%以上的使用场景

对资源的增、删、查操作比较容易

1.1.1.2、缺点:

命令冗长,复杂,难以记忆

特定场景下,无法实现管理需求

对资源的修改麻烦,需要patch来使用json串更改**。**

1.1.2、声明式资源管理方法

主要依赖统一资源配置清单进行管理

1.1.3、GUI式资源管理方法

主要依赖图形化操作界面进行管理

1.2、陈述式资源管理方法

  1. kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口
  2. kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径
  3. kubectl 的命令大全
  4. 对资源的增、删、查操作比较方便,但对改的操作就不容易了

k8s中文文档:http://docs.kubernetes.org.cn/683.html

2. 对资源的增、删、查操作

2.1、查看版本信息

bash 复制代码
kubectl version

2.2、查看资源对象简写

kubectl api-resources

2.3、查看集群信息

bash 复制代码
kubectl cluster-info

2.4、配置kubectl自动补全

1、直接命令行输出

bash 复制代码
source <(kubectl completion bash)

2、进入配置文件进行自动配置

bash 复制代码
vim /root/.bashrc
source <(kubectl completion bash)

2.5、node节点查看日志

bash 复制代码
journalctl -u kubelet -f

2.6、基本信息查看

kubectl get <resource> -o wide\|json\|yaml -n namespace

获取资源的相关信息,-n 指定命令空间,-o 指定输出格式

resource可以是具体资源名称,如pod nginx-xxx;也可以是资源类型,如pod;或者all(仅展示几种核心资源,并不完整)

--all-namespaces 或 -A :表示显示所有命令空间,

--show-labels :显示所有标签

-l app :仅显示标签为app的资源

-l app=nginx :仅显示包含app标签,且值为nginx的资源

2.7、显示所有的命名空间,详细信息

bash 复制代码
kubectl get --all namespces -A pod

2.8、查看pod wide格式相关详细信息

bash 复制代码
kubectl get pod -owide

2.9、yaml格式的

2.10、创建标签为ky29

bash 复制代码
kubectl create deployment ky29 --image=soscscs/myapp:v1

2.11查看通过标签创建的信息

bash 复制代码
kubectl get pod 

2.12、 显示所有的·app标签

2.13、查看 master 节点状态

bash 复制代码
kubectl get componentstatuses
kubectl get cs

2.14、查看命令空间

命令空间的作用:用于允许不同 命令空间 的 相同类型 的资源 重名的

bash 复制代码
kubectl get namespace
kubectl get ns

2.15、查看kube-system命名空间的所有资源

bash 复制代码
kubectl get all -n default

2.16、查看命名空间为default下面,ky29的信息

2.17、创建命名空间app

bash 复制代码
kubectl create ns app
kubectl get ns

创建命名空间ky10,并查看所有的命名空间

2.18、删除命名空间app

bash 复制代码
kubectl delete namespace app
kubectl get ns	

2.19、在命名空间ky10中创建一个创建一个名为"ky15-nginx"的部署,并使用镜像nginx

创建成功

2.20、描述某个资源的详细信息

bash 复制代码
kubectl describe pod ky15-nginx -n ky10

2.21、查看命名空间kuy10中的pod 信息

bash 复制代码
kubectl get pods -n ky10

2.22、kubectl exec可以跨主机登录容器,docker exec 只能在容器所在主机上登录

bash 复制代码
kubectl exec -it ky15-nginx bash -n ky10

2.23、删除pod资源

bash 复制代码
kubectl get pod -o wide
kubectl delete deployments.apps ky29
相关推荐
工业一体机老司机15 小时前
Docker部署工控机采集服务 Compose编排与开机自启
运维·docker·容器
miaobinfei21 小时前
docker拉取dify镜像,执行docker compose up -d 报错
运维·docker·容器
kobe_OKOK_1 天前
docker compose命名卷 映射到宿主机的路径
运维·docker·容器
无言听风雨丶1 天前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
晨陌y1 天前
Flare自托管导航页教程:Docker部署、多用户、API与公网访问
运维·docker·容器
无言听风雨丶1 天前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
梅孔立1 天前
Docker 容器网络不通:Tomcat 无法解析 MySQL、Nginx 无法反代 Tomcat 的生产级排查与治理
网络·docker·tomcat
无言听风雨丶2 天前
Kubernetes 控制平面深度剖析:从 kubectl apply 到 etcd 写入的全链路
平面·kubernetes·etcd
openFuyao2 天前
openFuyao x 复旦大学软件工程实验室 Panel 回顾:Agentic时代,集群调度技术体系将如何演进?
kubernetes·openfuyao
螺蛳粉 螺蛳粉2 天前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver