Deployment Object
A deployment includes the definition of a set of containers and the desired behavior in terms of number of replicas (underlying ReplicaSet) and deployment strategy.
kind: Deployment … spec: replicas: 1 (1) … strategy: type: Recreate (2) … template: … spec: containers: - name: tibemsd-container image: ${EMS_IMAGE_LOCATION} imagePullPolicy: Always (3) env: (4) - name: EMS_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: EMS_PUBLIC_PORT value: ${EMS_PUBLIC_PORT} … args: (5) - tibemsd livenessProbe: (6) … readinessProbe: (6) … ports: - containerPort: ${{EMS_INTERNAL_PORT}} name: tibemsd-tcp protocol: TCP … securityContext: runAsUser: ${{EMS_UID}} (7) … volumeMounts: - mountPath: /shared (8) name: tibemsd-volume (9) … restartPolicy: Always (10) … volumes: - name: tibemsd-volume (9) persistentVolumeClaim: claimName: ${{EMS_PVC}} (11)
(1): The number of replicated pods: 1, since we want a single instance of the EMS server.
(2): The deployment strategy: Recreate means that an existing pod must be killed before a new one is created.
(3): Determines if the EMS Docker image should be pulled from the Docker registry prior to starting the container.
(4): Environment variables that will passed to the container.
(5): Arguments to be passed to the Docker ENTRYPOINT. For more information, see EMS Server Configuration.
(6): For details on the liveness and readiness probes, see Liveness and Readiness Probes.
(7): The uid the container will run as.
(8): The path where our NFS shared folder will be mounted inside of the container.
(9): The internal reference to the volume defined here.
(10): The pod restart policy: Set such that the kubelet will always try to restart container. If the EMS server stops or fails, its container will exit and be restarted.
(11): The name of the PVC created by the cluster administrator.