资源:对象
service pod deployment
workload:pod,ReplicaSet,Deployment,statefulset,DaemonSet,Job,Crontabjob,...
服务发现和均衡:service ,Ingress,....
配置与存储:Volumn存储卷 ,CSI存储接口
ConfigMap,Secret,
DownwardAPI
集群级资源:namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding,
元数据型资源
HPA,PodTemplate,LimitRange
kubectl get pod myapp-84cd4b7f95-h47cj -o yaml
yml文件查看pod详细的配置清单
创建资源的方法:
apiserver仅接收JSON格式的资源定义;
yaml格式提供配置清单,apiserver可自动转为json格式,而后在提交
kubectl api-versions
大部分资源的配置清单:
apiVerison:group/version,
kind:资源类别
metadata:元数据
name
namespace
labels
annotations 资源注解
每个资源的引用PATH
/api/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME
spec:规格 期望的状态 disired state
status:当前状态,current state,本字段由kubernetes集群维护;用户不能定义
kubectl explain pods 查询pods怎么定义
kubectl explain pods.metadata 查询pods的metadata怎么定义
kubectl explain pods.spec
kubectl explain pods.spec.containers
kubectl explain pods.spec.containers.livenessProbe
例如:自定义一个pod资源
vim pod-demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
- name: busybox
image: busybox:latest
command:
- "/bin/sh"
- "-c"
- "echo $(date) >> /usr/share/nginx/html/index.html;sleep 5"
kubectl create -f pod-demo.yaml
从文件加载创建资源
kubectl get pods 再查看一下创建的pod
kubectl describe pods pod-demo 查看创建的资源的描述信息
查看容器日志
kubectl logs pod-demo myapp
pod名 pod里面的容器名
进入容器
kubectl exec -it pod-demo -c myapp -- /bin/sh
输入和终端 pod名 -c指定容器名 --执行的命令
kubectl delete -f pod-demo.yaml 删除基于资源清单yaml文件定义的资源