1

Предполагая, что у меня есть несколько контейнеров и контейнеров с несколькими контейнерами для отображения контейнеров в кластер. У меня также есть контроллер репликации для поддержания количества контейнеров в любое время.Как включить все объекты кубернетов в один файл

Этот кластер представляет собой тривиальный пример. В этом пункте у меня есть два файла подкачки, два служебных файла и два файла RC. Это затрудняет управление файлами.

Я знаю, что все файлы могут быть помещены в каталог и использовать kubectl create -f directory выполнить целую вещь в одной команде. Но я считаю, что управление файлами является накладными расходами. Есть что-то вроде docker-compose.yml, где мы можем включать все контейнеры в один файл.

Я хотел бы знать лучшие практики использования кубернетов в производстве. Изменение многих файлов на производстве не кажется хорошей идеей.

ответ

3

Вы можете использовать тройные черточки или список ресурсов, как в этих примерах:

примеры:

Список

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