假设我有两个多容器窗格和服务,用于将窗格暴露给群集。我还有Replication控制器,可以随时保持pod的数量。
以上群集是一个简单的例子。在这一点上,我有两个pod文件,两个服务文件和两个RC文件。这使文件管理变得困难。
我知道所有文件都可以放在一个目录中,并使用 kubectl create -f directory 在一个命令中执行整个操作。但是,我觉得文件管理是一个开销。有没有像docker-compose.yml这样的东西,我们可以将所有pod包含在一个文件中。
我想知道在生产中使用kubernetes的最佳实践。在生产中更改许多文件似乎不是一个好主意。
答案 0 :(得分:4)
您可以使用三重破折号或列表资源,如下例所示:
的示例:
<强>列表强>
apiVersion: v1
kind: List
items:
- apiVersion: v1
kind: Service
metadata:
name: list-service-test
spec:
ports:
- protocol: TCP
port: 80
selector:
app: list-deployment-test
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: list-deployment-test
labels:
app: list-deployment-test
spec:
replicas: 1
template:
metadata:
labels:
app: list-deployment-test
spec:
containers:
- name: nginx
image: nginx
三次破折号:
---
apiVersion: v1
kind: Pod
metadata:
labels:
name: redis
redis-sentinel: "true"
role: master
name: redis-master
spec:
containers:
- name: master
image: kubernetes/redis:v1
env:
- name: MASTER
value: "true"
ports:
- containerPort: 6379
resources:
limits:
cpu: "0.5"
volumeMounts:
- mountPath: /redis-master-data
name: data
- name: sentinel
image: kubernetes/redis:v1
env:
- name: SENTINEL
value: "true"
ports:
- containerPort: 26379
volumes:
- name: data
emptyDir: {}
---
apiVersion: v1
kind: Pod
metadata:
labels:
name: redis-proxy
role: proxy
name: redis-proxy
spec:
containers:
- name: proxy
image: kubernetes/redis-proxy:v1
ports:
- containerPort: 6379
name: api