k8s学习(3):资源清单-资源类型

概念:k8s中的资源

1
2
3
4
集群资源分类
名称空间级别:kubeadm k8s kube-system
集群级别:role
元数据型:HPA(通过CPU利用率进行平滑扩展)

概念:K8S中所有的内容都抽象为资源,资源实例化之后,叫做对象

工作负载型资源(workload):Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、CronJob(ReplicationController在v1.11版本中被废弃)

服务发现及负载均衡型资源(ServiceDiscovery LoadBalance):Service、Ingress、…

配置域存储型资源:Volume(存储卷)、CSI(容器存储接口、可以扩展各种各样的第三方存储卷)

特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感数据)、DownwardAPI(把外部环境中的信息输出给容器)

集群级资源:Namespace、Node、Role、ClusterRole、RoleBinding、ClusterRoleBinding

元数据型资源:HPA、PodTemplate、LimitRange

常用字段解释说明

必须存在的属性

image-20200128204708542

主要对象

image-20200128205232226

image-20200128205359305

image-20200128205445846

额外的参数项

image-20200128205520664

系统中使用 kubectl api-resources和 kubectl explain <资源对象> 可以查询下一级所有字段和类型

第一个pod例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# vi pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
version: v1
spec:
containers:
- name: app
image: hub.test.com/library/myapp:v1
- name: test
image: hub.test.com/library/myapp:v1
# kubectl create -f pod.yaml

这个例子会一直重启pod

1
2
3
kubectl describe pod myapp-pod # 查看pod重启原因
## 查看重启的容器的日志,可以发现80端口被占用了
kubectl log myapp-pod -c test

找到原因之后,把删除pod,重新编辑pod.yaml文件,删除test容器即可