Kubernetes 中spec解析
发布时间
阅读量:
阅读量
在 Kubernetes 系统中,“spec”标签是配置资源的核心文件,“它”明确了资源预期的状态或配置信息。与 “metadata”不同之处在于,“spec” 详细描述了资源的实际功能及其运行方式。“例如,在一个 Pod 中应运行哪些容器,“Deployment”应管理多少个副本,“服务”如何路由流量等信息都包含在内。“通过分析几个典型资源类型及其配置实例,“我们可以更深入地理解 “spec”的核心要素及其实际应用。”
1、对于 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx:latest
ports:
- containerPort: 80
- replicas: 确定应运行的具体副本总数。
- selector.matchLabels: 根据标签匹配规则筛选出符合条件的Pods。
- template: 它描述了Pod使用的模板结构。
容器列表及其配置:它定义了包含镜像版本、端口设置等内容的具体容器集合。
2、对于 Service
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 9376
type: ClusterIP
- label selector:根据指定标签进行 pods 匹配以实现 correct routing 到对应的 pods。
- port configuration 配置了 service 与 container 之间的 port 映射关系。
- service type definition 确定了 service 的类型标识符(如 ClusterIP, NodePort, LoadBalancer, ExternalName)以决定其 accessibility methods。
3、对于 Pod
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- mountPath: /var/log/nginx
name: nginx-logs
volumes:
- name: nginx-logs
emptyDir: {}
- containers : 说明了Pod中包含的各种容器及其配置信息。
- volumeMounts : 指定了容器内部挂载的文件夹位置,并与
volumes相关联。 - volumes : 指出了Pod所使用的存储设备。例如,在本例中使用的是一个空目录
emptyDir作为示例。
- volumeMounts : 指定了容器内部挂载的文件夹位置,并与
全部评论 (0)
还没有任何评论哟~
