replicator.yml中的模板部分和Kubernetes中的pod.yml之间有什么区别?

时间:2016-07-24 22:06:11

标签: docker cloud yaml cluster-computing kubernetes

我试图了解用于启动Kubernetes集群的清单文件之间的区别。

假设我有一个名为pod.yml的文件来定义我的pod,即运行它的容器:

Pod.yml

apiversion : v1 
 kind: Pod 
 metadata: 
   name : web 
 spec: 
   containers: 
   - name : webserver 
     image : httpd 
     ports : 
      - ContainerPort: 80 
        HostPort: 80`

我有replicator.yml文件来启动其中3个pod:

Replicator.yml

kind: "ReplicationController"
 apiVersion: "v1"
 metadata:
  name: "webserver-controller"
 spec:
  replicas: 3
  selector:
    app: "webserver"
  template:
    spec:
      containers:
        - name: webserver
          image: httpd
          ports:
            - containerPort: 80
              hostport: 80`

如果我已经使用pod.yml来定义用于在pod中构建容器的图像,我是否可以避免replicator.yml中的模板部分。 您是否需要所有三个清单文件pod.yml,service.yml和replicator.yml,或者您只需使用service.yml和replicator.yml来创建集群。

1 个答案:

答案 0 :(得分:0)

如果您使用的是ReplicationController,Deployment,DaemonSet或Pet Set,则不需要单独的pod定义。但是,如果要公开pod,则应定义该服务,这可以在同一文件上完成。

示例:

    apiVersion: v1
    kind: Service
    metadata:
      name: default-http-backend
      namespace: default
      labels:
        k8s-app: default-http-backend
    spec:
      ports:
      - port: 80
        targetPort: 8080
        protocol: TCP
        name: http
      selector:
        k8s-app: default-http-backend
    ---
    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: default-http-backend
      namespace: default
    spec:
      replicas: 1
      selector:
        k8s-app: default-http-backend
      template:
        metadata:
          labels:
            k8s-app: default-http-backend
        spec:
          terminationGracePeriodSeconds: 60
          containers:
          - name: default-http-backend
            image: gcr.io/google_containers/defaultbackend:1.0
            livenessProbe:
              httpGet:
                path: /healthz
                port: 8080
                scheme: HTTP
              initialDelaySeconds: 30
              timeoutSeconds: 5
            ports:
            - containerPort: 8080
            resources:
              limits:
                cpu: 10m
                memory: 20Mi
              requests:
                cpu: 10m
                memory: 20Mi