2. K8S 基础资源管理

温馨提醒
总结摘要
本文介绍了 Kubernetes 的核心资源模型与基础操作方法。内容涵盖 Kubernetes 资源对象的基本概念、API Server 的作用机制,以及通过 kubectl 工具对常见工作负载(如 Deployment、Service)进行创建、发布、扩缩容、版本升级、回滚和删除等全生命周期管理的常用命令。同时包含资源查看、日志获取、容器进入、配置编辑等日常运维操作,为初学者掌握 K8S 基础资源管理提供实用指南。

Kubernetes 资源基础管理

资源对象

K8S API 是管理各种资源对象的唯一入口,它提供了RESTful风格的CRUD(create、read、update、

delete)接口用于查询和修改集群状态,并将结果存储于集群状态存储etcd中。API server也是更新etcd

中资源对象的唯一途径。

任何RESTful风格API中的核心概念都是资源,它是具有类型、关联数据、同其他资源的关系以及可对其

执行的一组操作方法的对象。

image-20211117143419446

https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/kubernetes-objects/

查看资源类型

1
kubectl api-resources

kubectl 基本操作

创建

1
kubectl create deployment my-nginx --image=nginx:1.20.1 --replicaas=3

运行语法

1
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] [--overrides=inline-json] [--command] -- [COMMAND] [args...] [options]

发布

1
kubectl expose deployment my-nginx --port=80 --target-port=80 --type=NodePort --name=web

资源升级

1
kubectl set image deployment/my-nginx nginx=nginx:1.18.2

扩容

1
kubectl scale --replicas=5 deployment/my-nginx

资源回滚

1
2
3
kubectl rollout history deployment/my-nginx
kubectl rollout undo deployment/my-nginx
kubectl rollout undo deployment/my-nginx --to-revision=2

删除资源

1
2
kubectl delete deployment/my-mginx
kubectl delete service/web

查看

1
2
3
4
5
kubectl get nodes ##查看节点状态
kubectl get pod,svc [ -o wide | -o yaml ] ##查看资源,及输出
kubectl get all [ -A | -n ns ] ##查看所有资源
kubectl describe deployment.apps/my-nginx ##查看资源的详细信息
kubectl logs deployment.apps/my-nginx ##查看日志

查看某些资源详细配置信息

1
kubectl describe pod [pod名称]

查看所有资源的标签

1
kubectl get all --show-labels

进到指定pod容器内

1
kubectl exec -it pod/nginx-pod -- /bin/bash

编辑某个资源

1
kubectl edit NAME   (NAME可以通过·kubectl get all -o wide·去查看)