apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
annotations: # misc info (not used by K8s)
podVersion: 1.2
spec:
containers:
- name: nginx-container
image: nginx
YAML config file to create and maintain objects in a Kubernetes cluster
It has 4 top level required fields
apiVersion
- string
kind
- the kind of K8s object being created (string)
metadata
- metadata about the K8s object being created (dictionary)
name
- name of the K8s object (string)labels
- key-value pairs for grouping K8s objects after creation (dictionary)annotations
- used to specify misc information not directly used by K8s but could be used by other tools running on the k8s cluster (dictionary)spec
- specifications (dictionary)
Once you have the YAML file, you can deploy the K8s object by kubectl apply -f <filename>.yaml
To override the Dockerfile
CMD
, specify the command as args
in JSON array format. Similarly, to override the ENTRYPOINT
, specify the new docker entrypoint as command
in the config file.
Example:
FROM Ubuntu
ENTRYPOINT sleep
CMD 5
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-sleeper-pod
spec:
containers:
- name: ubuntu-sleeper
image: ubuntu-sleeper
command: ['sleeper']
args: ['100']