k8s-对象
Table of Contents
对象范畴 #
对象包括:
- pod:简写po
- node
- ReplicationController:简写rc
- ReplicaSet:简写rs
- events
- ServiceAccount:简写sc
- Secret
- ConfigMap
- PodSecurityPolicy:简写psp
- LimitRange
- ResourceQuota:简写quota
- HorizontalPodAutoscaler:简写hpa
- PodDisruptionBudget
label #
label用于对象分组。
可以通过label来筛选对象。
annotation #
annotation以键值对的形式存在,它不存储标识信息,也不能用于分组、筛选,它起到注释的作用,用于解释、说明。
namespace #
namespace实现了更大粒度上的分组,往往用于隔离不同环境中的资源(如实现开发、测试、正式环境之间的资源隔离)以及不同的团队使用相同的集群。
通过yaml文件创建 #
apiVersion: vl
kind: Namespace
metadata:
name: custom-ns
通过命令创建 #
kubectl create namespace xxx
命令 #
对象说明 #
通过kubectl explain pods
可获取pod的使用说明。
通过kubectl explain pod.spec
可获取pod下的spec的使用说明。
其他对象同理。
对象描述 #
通过kubectl describe rc xxx
可获取名为xxx的rc的信息。
其他对象同理。
根据yaml文件创建资源 #
kubectl create -f xxx.yaml
- 指定namespace:
-n custom-namespace
修改对象 #
命令 | 描述 |
---|---|
kubectl edit | 使用默认编辑器打开对象的声明文件,一旦保存就会进行更新。ex:kubect1 edit deployment kubia |
kubectl patch | 更改对象的单个属性,ex: kubect1 patch deployment kubia -p’ {“spec” : {“template”: {“spec”: {“containers”: [{“name”: “nodejs”, “image” : “luksa/kubia:v2”}]}}}}' |
kubectl apply | 根据配置文件更新(不存在时创建)对象,ex: kubect1 apply -f kubia-deployment-v2. yaml |
kubectl replace | 根据配置文件替换(不存在则报错)对象,ex: kubect1 replace -f kubia-deployment-v2. yaml |
kubectl set image | 更改声明文件(Pod、RC、RS、Deployment、Demonset、Job)中指定的容器镜像,ex: kubectl set image deployment kubia nodejs=luksa/kubia:v2 |