-bash-4.2# hostname

servera.pod0.example.com

-bash-4.2# curl -O http://cla***oom.example.com/materials/docker-images/webserver.tar.xz
-bash-4.2# curl -O http://cla***oom.example.com/materials/docker-images/db.tar.xz
-bash-4.2# docker load -i webserver.tar.xz
-bash-4.2# docker load -i db.tar.xz
-bash-4.2# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
rhel7               webserver           94dd54abd5e8        2.752324 years ago   411.5 MB
rhel7               db                  561488c47869        2.752326 years ago   572.1 MB

-bash-4.2# hostname

serverc.pod0.example.com

  • -bash-4.2# vi /etc/kubernetes/controller-manager

KUBELET_ADDRESSES="--machines=servera.pod0.example.com"

  • -bash-4.2# vi /etc/kubernetes/config

#KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:4001"
KUBE_MASTER="--master=http://serverc.pod0.example.com:8080"

  • -bash-4.2# vi /etc/kubernetes/apiserver

    KUBE_API_ADDRESS="--address=0.0.0.0"
    #KUBE_MASTER="--master=127.0.0.1:8080"
    KUBE_SERVICE_ADDRESSES="--portal_net=192.168.100.0/24"
    KUBE_ETCD_SERVERS="--etcd_servers=http://serverc.pod0.example.com:4001"

    -bash-4.2# for SERVICE in etcd kube-apiserver kube-controller-manager kube-scheduler

    do
    systemctl restart ${SERVICE}
    systemctl enable ${SERVICE}
    systemctl status ${SERVICE}
    done

-bash-4.2# curl -s -L http://serverc.pod0.example.com:4001/version
-bash-4.2# curl -s -L http://serverc.pod0.example.com:8080/version | python -mjson.tool
-bash-4.2# curl -s -L http://serverc.pod0.example.com:8080/api/v1beta1/minions

-bash-4.2# hostname

servera.pod0.example.com

  • -bash-4.2# vi /etc/kubernetes/config

#KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:4001"
KUBE_MASTER="--master=http://serverc.pod0.example.com:8080"

  • -bash-4.2# vi /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname_override=servera.pod0.example.com"
KUBELET_ARGS="--auth_path=/var/lib/kubelet/auth"
KUBE_ETCD_SERVERS="--api_servers=http://serverc.pod0.example.com:8080"

  • -bash-4.2# vi /etc/kubernetes/proxy

KUBE_PROXY_ARGS="--master=http://serverc.pod0.example.com:8080"

  • -bash-4.2# echo "{}" > /var/lib/kubelet/auth

-bash-4.2# for SERVICE in docker kube-proxy kubelet
do
systemctl restart ${SERVICE}
systemctl enable ${SERVICE}
systemctl status ${SERVICE}
done

-bash-4.2# hostname

serverc.pod0.example.com

-bash-4.2# kubectl get minions
-bash-4.2# curl http://servera.pod0.example.com:10250/healthz

-bash-4.2# hostname
serverc.pod0.example.com
-bash-4.2# curl -O http://cla***oom.example.com/materials/templates/webserver-service.yaml
-bash-4.2# vi webserver-service.yaml

id: "webserver-service"
kind: "Service"
apiVersion: "v1beta1"
port: 80
publicIPs:
- 172.25.0.10
selector:
name: "webserver"
labels:
name: "webserver"

-bash-4.2# kubectl create -f webserver-service.yaml
-bash-4.2# curl -O http://cla***oom.example.com/materials/templates/db-service.yaml
-bash-4.2# vi db-service.yaml

id: "db-service"
kind: "Service"
apiVersion: "v1beta1"
port: 3306
selector:
name: "db"
labels:
name: "db"

-bash-4.2# kubectl create -f db-service.yaml

-bash-4.2# kubectl get services

-bash-4.2# curl -O http://cla***oom.example.com/materials/templates/webserver-pod.yaml
-bash-4.2# vi webserver-pod.yaml

id: "webserver"
kind: "Pod"
apiVersion: "v1beta1"
desiredState:
manifest:
version: "v1beta1"
containers:

  • name: "apache-frontend"
    image: "rhel7:webserver"
    ports:
  • containerPort: 80
    hostPort: 80
    labels:
    name: "webserver"

-bash-4.2# kubectl create -f webserver-pod.yaml

-bash-4.2# curl -O http://cla***oom.example.com/materials/templates/db-pod.yaml
-bash-4.2# vi db-pod.yaml

id: "db"
kind: "Pod"
apiVersion: "v1beta1"
desiredState:
manifest:
version: "v1beta1"
containers:

  • name: "mariadb"
    image: "rhel7:db"
    ports:
  • containerPort: 3306
    labels:
    name: "db"

-bash-4.2# kubectl create -f db-pod.yaml
-bash-4.2# kubectl get pods

-bash-4.2# hostname
servera.pod0.example.com
-bash-4.2# docker ps

[root@workstation ~]# curl http://servera.pod0.example.com/cgi-bin/action

-bash-4.2# hostname

serverc.pod0.example.com

-bash-4.2# kubectl delete services
-bash-4.2# kubectl delete pods

-bash-4.2# hostname

serverc.pod0.example.com

  • -bash-4.2# vi /etc/kubernetes/controller-manager

    KUBELET_ADDRESSES="--machines=servera.pod0.example.com,serverb.pod0.example.com"

-bash-4.2# for service in etcd kube-apiserver kube-controller-manager kube-scheduler
do
systemctl restart $service
systemctl enable $service
systemctl status $service
done

-bash-4.2# hostname
serverb.pod0.example.com
-bash-4.2# cd /var/tmp/
-bash-4.2# curl -O http://cla***oom.example.com/materials/docker-images/webserver.tar.xz
-bash-4.2# curl -O http://cla***oom.example.com/materials/docker-images/db.tar.xz
-bash-4.2# docker load -i webserver.tar.xz
-bash-4.2# docker load -i db.tar.xz

  • -bash-4.2# vi /etc/kubernetes/config

#KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:4001"
KUBE_MASTER="--master=http://serverc.pod0.example.com:8080"

  • -bash-4.2# vi /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname_override=serverb.pod0.example.com"
KUBELET_ARGS="--auth_path=/var/lib/kubelet/auth"
KUBE_ETCD_SERVERS="--api_servers=http://serverc.pod0.example.com:8080"

  • -bash-4.2# vi /etc/kubernetes/proxy

KUBE_PROXY_ARGS="--master=http://serverc.pod0.example.com:8080"

  • -bash-4.2# echo "{}" > /var/lib/kubelet/auth

-bash-4.2# for service in docker kube-proxy kubelet
do
systemctl restart $service
systemctl enable $service
systemctl status $service
done

-bash-4.2# hostname
serverc.pod0.example.com
-bash-4.2# kubectl get minions

-bash-4.2# hostname
servera.pod0.example.com
-bash-4.2# systemctl status kubelet

-bash-4.2# hostname
serverb.pod0.example.com
-bash-4.2# systemctl status kubelet

servera|serverb|serverc|#rpm -q flannel

-bash-4.2# hostname

serverc.pod0.example.com

-bash-4.2# vi flannel-config.json

{
"Network":"10.50.0.0/16",
"SubnetLen":24,
"Backend":{
"Type":"vxlan",
"VNI":1
}
}

-bash-4.2# curl -L http://serverc.pod0.example.com:4001/v2/keys/coreos.com/network/config -XPUT --data-urlencode [email protected]

-bash-4.2# curl -L http://serverc.pod0.example.com:4001/v2/keys/coreos.com/network/config

  • -bash-4.2# vi /etc/sysconfig/flanneld

FLANNEL_ETCD="http://172.25.0.12:4001"
FLANNEL_OPTIONS="eth0"

-bash-4.2# systemctl restart flanneld
-bash-4.2# systemctl enable flanneld
-bash-4.2# systemctl status flanneld

-bash-4.2# ip link show flannel.1

-bash-4.2# hostname

servera.pod0.example.com

-bash-4.2# vi /etc/sysconfig/flanneld

FLANNEL_ETCD="http://172.25.0.12:4001"
FLANNEL_OPTIONS="eth0"

-bash-4.2# hostname
serverb.pod0.example.com

  • -bash-4.2# vi /etc/sysconfig/flanneld

FLANNEL_ETCD="http://172.25.0.12:4001"
FLANNEL_OPTIONS="eth0"

servera and serverb exec blow
-bash-4.2# systemctl restart flanneld
-bash-4.2# systemctl enable flanneld
-bash-4.2# systemctl status flanneld
-bash-4.2# curl -L http://serverc.pod0.example.com:4001/v2/keys/coreos.com/network/subnets | python -mjson.tool

-bash-4.2# hostname
serverc.pod0.example.com
-bash-4.2# kubectl create -f webserver-service.yaml
-bash-4.2# kubectl create -f db-service.yaml

-bash-4.2# curl -O http://cla***oom.example.com/materials/templates/webserver-rc.yaml

  • -bash-4.2# vi webserver-rc.yaml

id: "webserver-controller"
kind: "ReplicationController"
apiVersion: "v1beta1"
desiredState:
replicas: 1
replicaSelector:
selectorname: "webserver"
podTemplate:
desiredState:
manifest:
version: "v1beta1"
containers:

  • name: "apache-frontend"
    image: "rhel7:webserver"
    ports:
  • containerPort: 80
    hostPort: 80
    labels:
    name: "webserver"
    selectorname: "webserver"
    uses: "db"
    labels:
    name: "webserver-controller"

-bash-4.2# kubectl create -f webserver-rc.yaml

-bash-4.2# curl -O http://cla***oom.example.com/materials/templates/db-rc.yaml

  • -bash-4.2# vi db-rc.yaml

id: "db-controller"
kind: "ReplicationController"
apiVersion: "v1beta1"
desiredState:
replicas: 1
replicaSelector:
selectorname: "db"
podTemplate:
desiredState:
manifest:
version: "v1beta1"
containers:

  • name: "mariadb"
    image: "rhel7:db"
    ports:
  • containerPort: 3306
    labels:
    name: "db"
    selectorname: "db"
    labels:
    name: "db-controller"

-bash-4.2# kubectl create -f db-rc.yaml

[root@workstation ~]# curl http://servera.pod0.example.com/cgi-bin/action

modify webserver-rc.yaml and increase the replicas count to 2
kubectl update -f webserver-rc.yaml

kubectl describe po POD_ID