1:k8s常用资源对象
- nodes
- pods
- namespaces
- sa
- services
- ingresses
- deployments
- statefulsets
- jobs
- cronjobs
- daemonsets
- pv
- pvc
- roles
- clusterroles
- rolebindings
- clusterrolebindings
- networkpolicies
- secrets
- configmaps
- storageclasses
- resourcequota
- limitrange
1.1:操作对象的动作
- 增
- create
- apply
- 删
- delete
kubectl delete nodes k8s02
- delete
- 改
- edit
- apply
- 查
- describe
kubectl describe nodes k8s02
- describe
- 列出
- get
1.2:常用参数
- -n namespace
- -A
- -l key=value
- –show-labels
- -o wide
- -o yaml
1.3:资源对象的作用域
- namespace级别:namespace级别的资源对象必须位于一个namespace当中,如果创建时未指定namespace,则默认kubernetes会将其创建在一个名为default的namesapce当中
- kube-system: 一般用于存放kubernetes的管理组件容器
- default: 默认的namespace
- 非namespace级别:非namespacke级别的资源对象是全局的,不属于任何一个namespace,无法通过namesapce实现隔离。
node
- Node是Pod真正运行的主机,可以物理机,也可以是虚拟机。为了管理Pod,每个Node节点上至少要运行container runtime(比如docker或者rkt)、kubelet和kube-proxy服务。
namespace
- Namespace是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。
- 常见的pods, services, replication controllers和deployments等都是属于某一个namespace的(默认是default),而node, persistentVolumes等则不属于任何namespace。
- kube-system :一般用于存放kubernetes的管理组件容器
- default:默认的namespace
labels
- Label是一个 key=value的键值对,由用户指定,可以附加到K8S资源之上。
- 给某个资源定义一个标签,随后可以通过label进行查询和筛选,类似SQL的where语句。
- Label可以给对象创建多组标签
- Label定义好后其他对象可以使用Label Selector来选择一组相同label的对象(比如ReplicaSet和Service用label来选择一组Pod)。Label Selector支持以下几种方式:
- 等式,如app=nginx和env!=production
- 集合,如env in (production, qa)
- 多个label(它们之间是AND关系),如app=nginx,env=test
- 标签尽可能做到见名知意
- 一个资源对象可以打任意多个标签
- kubernetes·通过标签对资源进行分类,方便用户查询
- 创建标签:kubectl label node k8s02 disk=ssd
- 删除标签:kubectl label node k8s02 env-
- 查询标签:kubectl get nodes --show-labels
- 修改标签:kubectl label node k8s02 disk=hdd --overwrite
- 基于标签查询:kubectl get nodes -l disk=hdd 、kubectl get nodes -l disk
annotations
- Annotations是key/value形式附加于对象的注解。不同于Labels用于标志和选择对象,Annotations则是用来记录一些附加信息,用来辅助应用部署、安全策略以及调度策略等。比如deployment使用annotations来记录rolling update的状态。
- 创建注释:kubectl annotate node k8s02 name=k8s02
- 删除注释:kubectl annotate node k8s02 name-
- 查询注释:kubectl describe node k8s03
- 修改注释:kubectl annotate node k8s03 name=k8s02 --overwrite