一、Pod 定义
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image
ports:
- containerPort: 8080
apiVersion:指定 Kubernetes API 的版本,对于 Pod 通常是v1。kind:表明资源的类型,这里是Pod。metadata:包含 Pod 的元数据信息。name:Pod 的名称,在集群中必须是唯一的。labels:用于标识 Pod 的标签,可以用于选择器和分组。
spec:定义 Pod 的具体规格。containers:列出 Pod 中的容器。name:容器的名称。image:容器使用的镜像名称。ports:容器暴露的端口列表。containerPort:容器内部监听的端口号。
二、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: my-image
ports:
- containerPort: 8080
apiVersion:对于 Deployment,通常是apps/v1。kind:资源类型为Deployment。metadata:name:Deployment 的名称。
spec:replicas:指定要创建的 Pod 副本数量。selector:用于选择要管理的 Pod 的标签选择器。template:定义 Pod 的模板,与 Pod 的定义类似。
三、Service 定义
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
apiVersion:通常是v1。kind:资源类型为Service。metadata:name:Service 的名称。
spec:selector:选择要关联的 Pod 的标签。ports:定义服务的端口。
protocol:协议类型,通常是TCP或UDP。port:服务对外暴露的端口。targetPort:后端 Pod 上的端口。
type:服务的类型,可以是ClusterIP、NodePort、LoadBalancer等。
...