CentOS 7
Ads

Kubernetes : Create Pods
2015/12/13
 
Containers in Kubernetes Cluster are managed as a Pod.
It's possible to run Containers to create Pods.
This example is based on the environment like follows.
                       +---------------------+
                       | [   Admin Node    ] |
                       |    dlp.srv.world    |
                       |                     |
                       +----------+----------+
                                  |
+----------------------+          |          +----------------------+
| [       Node01     ] |10.0.0.51 | 10.0.0.52| [       Node02     ] |
|   node01.srv.world   +----------+----------+    node02.srv.world  |
|                      |                     |                      |
+----------------------+                     +----------------------+

 
For example, Create a Pod with single container which httpd is installed.
[1]
Create a Container image which httpd is installed on a Node, refer to here.
The image name is "web_server" for configuratuion on this exmaple.
[2] Copy a container image just created above to all other Nodes like follows.
# output container image to a file

[root@node01 ~]#
docker save web_server > web_server.tar
# copy the image to other Nodes

[root@node01 ~]#
scp web_server.tar node02:/root/web_server.tar

[3] Load the comtainer image just copied.
[root@node02 ~]#
docker load < web_server.tar

[root@node02 ~]#
docker images

REPOSITORY          TAG       IMAGE ID            CREATED             VIRTUAL SIZE
web_server          latest    084ef53f3d83        11 minutes ago      283.9 MB
docker.io/centos    latest    ce20c473cd8a        8 weeks ago         172.3 MB
[4] Create a Pod on Admin Node.
[root@dlp ~]#
vi pod-webserver.yaml
apiVersion: v1
kind: Pod
metadata:
  # name of Pod
  name: httpd
  labels:
    # rabel of Pod
    app: web_server
spec:
  containers:
    # name of Container
  - name: httpd
    # Container image
    image: web_server
    ports:
      # Container Port
    - containerPort: 80

# create Pod

[root@dlp ~]#
kubectl create -f pod-webserver.yaml

pods/httpd
# show Pods list

[root@dlp ~]#
kubectl get pods -o wide

NAME      READY     STATUS    RESTARTS   AGE       NODE
httpd     0/1       Running   0          8s        node01

# display assigned IP address on the Pod

[root@dlp ~]#
kubectl get pod httpd -o yaml | grep "podIP"

podIP: 172.16.35.10
# access to the Pod

[root@dlp ~]#
curl http://172.16.35.10/

Hello DockerFile
[5] If you'd like to remove a Pod, do like follows.
[root@dlp ~]#
kubectl delete pod httpd

pods/httpd
 
Tweet