Objects
k8s资源对象是持久化在k8s系统中的实体,k8s的操作的都是这些对象,对象一表描述如下信息
- 那些容器被运行,运行在那些节点上
- 使用资源的约束
- 运行时的策略,比如重启、升级、容错
如下是一个典型的Deployment资源对象yaml描述:
apiVersion: apps/v1
kind: Deployment
metadata:
name: simple-deployment
labels:
app: simple
spec:
replicas: 3
selector:
matchLabels:
app: simple
template:
metadata:
labels:
app: simple
spec:
containers:
- name: simple
image: wwcd-release-docker.artnj.zte.com.cn/aha/simple:1.1
创建资源可以通过kubectl命令行工具来实化上述的Deployment资源对象
kubectl apply -f app-http-deployment.yaml
资源对象的常用操作
# 创建资源
kubectl apply -f RESOUCE.yaml
# 查询所有支持的资源对象
kubectl api-resources
# 查询资源列表
kubectl [-n NAMESPACE] get RESOUCE -o wide
# 查询详情
kubectl [-n NAMESPACE] describe RESOUCE NAME
# 删除
kubectl [-n NAMESPACE] delete RESOUCE NAME
# 修改
kubectl [-n NAMESPACE] edit RESOUCE NAME
Namespaces
Namespaces是k8s中资源隔离的手段, k8s自带三个默认Namespace
- default: 默认namespaces,不指定的话,默认使用此namespace
- kube-system: k8s系统自身使用
- kube-public: 全局可读的namespace
查看所有的Namespaces
kubectl get namespaces
Lables和Selectors
Lables和Selectors是引入是为了资源之间的组织解耦,不需要存储资源之间的资源拓扑关系
Lable是资源的属性,资源之间关系通过Selector来动态关联