一、实验注意:若用虚拟机,虚机的内存和CPU设置请酌情调大,否则可能无法启动tomcat。此实验对mysql的版本有要求,不能用最新的,故选择5.7版本的
二、在每个node上拉取Tomcat镜像和Mysql镜像
docker pull kubeguide/tomcat-app:v2
docker pull daocloud.io/library/mysql:5.7
三、构建Mysql RC定义文件——即创建Pod的源文件mysql-rc.yaml
设置了环境变量 MYSQL_ROOT_PASSWORD的值为123456
[root@master ~]# cat mysql_rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: mysql
spec:
replicas: 1
selector:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: daocloud.io/library/mysql:5.7
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
构建Mysql Kubernetes Service定义文件mysql-svc.yaml
[root@master ~]# cat mysql-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
构建Tomcat RC定义文件myweb-rc.yaml
[root@master ~]# cat myweb-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 1
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: docker.io/kubeguide/tomcat-app:v2
ports:
- containerPort: 8080
env:
- name: MYSQL_SERVICE_HOST
value: 'mysql'
- name: MYSQL_SERVICE_PORT
value: '3306'
构建Tomcat Kubernetes Service定义文件myweb-svc.yaml
[root@master ~]# cat myweb-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
name: myweb-svc
nodePort: 30001
selector:
app: myweb
四、创建rc和svc
kubectl create -f mysql_rc.yaml
kubectl create -f mysql-svc.yaml
kubectl create -f myweb-rc.yaml
kubectl create -f myweb-svc.yaml
五、查看
[root@master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
mysql-69fv2 1/1 Running 4 15h 172.17.95.4 node1
myweb-3zn7d 1/1 Running 3 15h 172.17.95.3 node1
[root@kvm1 ~]# kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.254.0.1 <none> 443/TCP 20h
mysql 10.254.230.240 <none> 3306/TCP 15h
myweb 10.254.214.235 <nodes> 8080:30001/TCP 15h
外部机器通过相应的nodeip30001访问页面
容器通过clusterip:8080访问界面
[root@master ~]# curl node1:30001
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
.............略.............................
容器访问测试可在node1上创建一个centos的容器用10.254.214.235 8080访问测试,略。
打开浏览器,访问node1ip:30001/demo应出现例如下图的页面。