【问题标题】:How to include all kubernetes objects into one file如何将所有 Kubernetes 对象包含到一个文件中
【发布时间】:2016-12-08 08:14:27
【问题描述】:

假设我有两个多容器 pod 和用于将 pod 暴露给集群的服务。我还有用于随时维护 pod 数量的复制控制器。

上面的集群是一个简单的例子。在这一点上,我有两个 pod 文件、两个服务文件和两个 RC 文件。这使得文件管理变得困难。

我知道所有文件都可以放在一个目录中,并使用 kubectl create -f directory 在单个命令中执行整个操作。但是,我觉得文件管理是一种开销。有没有类似 docker-compose.yml 的东西,我们可以将所有 pod 包含在一个文件中。

我想知道在生产中使用 Kubernetes 的最佳实践。在生产环境中更改许多文件似乎不是一个好主意。

【问题讨论】:

    标签: kubernetes google-cloud-platform google-kubernetes-engine


    【解决方案1】:

    您可以使用三个破折号或列表资源,如以下示例所示:

    例子:

    列表

    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
    

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 2021-04-24
      • 1970-01-01
      • 2013-11-22
      • 2013-03-29
      • 2011-11-24
      • 2017-04-06
      • 1970-01-01
      相关资源
      最近更新 更多