Learn OpenShift
上QQ阅读APP看书,第一时间看更新

Creating kubernetes services using YAML and JSON files

You can also create Kubernetes resources manually using YAML and JSON files. Let's go ahead and create a simple pod running a httpd web server using the kubectl create command. We will have to create a YAML-formatted file:

$ cat httpd-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: httpd
namespace: default
spec:
containers:
- name: httpd-container
image: httpd
ports:
- containerPort: 80
Reading YAML and JSON-formatted files is critical for Kubernetes and for later, in the OpenShift chapter. If you feel uncomfortable reading YAML or JSON files, read up on these subjects. Check the Further reading section for more information.

It may look a bit complicated and hard to understand, but as we move on in this book, you will see a lot of similarities between these YAML and JSON files. 

YAML configuration files are very structured and each resource is a set of keys and values. You can use the Kuberentes API documentation to find out what every parameter does:  https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/.

Create a pod using the httpd-pod.yaml file:

$ kubectl create -f httpd-pod.yaml

$ kubectl get all
NAME READY STATUS RESTARTS AGE
po/httpd 1/1 Running 0 25s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 56s

This command creates a pod named httpd; it does not create anything else. In larger deployments with heavy automation involved, this is the way to deploy Kubernetes resources, but this, of course, requires better Kubernetes skills.

Similarly, we can create other Kubernetes resources, including ReplicaSet, Deployment, and others.