Pagids 的答案具有大部分基础知识。Deployments
您应该为您的场景创建 4 个。每个部署都会创建一个ReplicaSet
调度和监督PODs
.Deployment
每个Deployment
人很可能还需要Service
在其前面进行访问。我通常创建一个单独的 yaml 文件,其中包含 aDeployment
和对应Service
的文件。这是我使用的示例nginx.yaml
:
apiVersion: v1
kind: Service
metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- port: 80
name: nginx
targetPort: 80
nodePort: 32756
selector:
app: nginx
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginxdeployment
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginxcontainer
image: nginx:latest
imagePullPolicy: Always
ports:
- containerPort: 80
这里有一些额外的信息需要澄清:
- A
POD
不是可扩展单元。调度 POD 的ADeployment
是。
- A
Deployment
表示一组 POD 一起完成一个单一的目的。
- 您可以
Deployments
在集群的虚拟网络中同时进行许多工作。
- 要访问
Deployment
可能包含许多PODs
在不同节点上运行的服务,您必须创建一个服务。
- 部署旨在包含无状态服务。如果您需要存储您需要创建的状态
StatefulSet
(例如,用于数据库服务)。