-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