参考书籍:《Kubernetes权威指南第4版从Docker到Kubernetes实践全接触》
一、启动MySQL服务
1.创建一个RC定义文件mysql-rc.yaml
apiVersion v1 #核心API
kind ReplicationController #副本控制器RC
metadata
name mysql #RC的名称,全局唯一
spec
replicas 1 #Pod副本的期待数量
selector
app mysql #监控和管理拥有mysql标签的Pod
template
metadata
labels
app mysql #Pod的标签,必须与RC的selector一致
spec
containers#Pod内容器的定义部分
name mysql #容器名
image mysql #镜像名
imagePullPolicy IfNotPresent #本地有该镜像,就不去拉取
ports
containerPort 3306 #容器应用监听的端口
env
name MYSQL_ROOT_PASSWORD #注入容器内的环境变量
value"123456"
2.执行如下命令,将mysql-rc.yaml发布到Kubernetes集群中
kubectl create -f mysql-rc.yaml
kubectl get rc #查看刚才创建的RC
kubectl get pod #查看Pod的创建情况,STATUS为Running则创建成功
3.创建一个与之关联的Service文件mysql-svc.yaml
apiVersion v1
kind Service #表明是kubernetes Service
metadata
name mysql #Service的全局唯一名称
spec
ports
port 3306 #Service提供服务的端口号
selector#选择哪些Pod提供服务
app mysql
4.执行如下命令,创建service
kubectl create -f mysql-svc.yaml
kubectl get svc
MySQL服务被分配了一个Cluster IP,那么K8S集群中其他Pod就可以通过Cluster IP + 端口号3306来访问MySQL服务
二、启动Tomcat应用
1.创建RC文件myweb-rc.yaml
apiVersion v1
kind ReplicationController
metadata
name myweb
spec
replicas2
selector
app myweb
template
metadata
labels
app myweb
spec
containers
name myweb
image kubeguide/tomcat-app v1
ports
containerPort8080
env
name MYSQL_SERVER_HOST
value 169.169.253.143 #MySQL服务的Cluster IP,后面会通过服务名称去访问
2.运行下面命令,完成RC的创建和验证
kubectl create -f myweb-rc.yaml
kubectl get pod
3.创建对应的Service文件myweb-svc.yaml
apiVersion v1
kind Service
metadata
name myweb
spec
type NodePort #开启NodePort外网访问模式
ports
port8080
nodePort 30001 #外网访问端口
selector
app myweb
三、浏览器访问
访问地址:http://任意Node节点IP地址:30001/demo/