![Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/305/47379305/b_47379305.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.3 启动Tomcat应用
前面定义和启动了MySQL服务,接下来采用同样的步骤完成Tomcat应用的启动。首先,创建对应的RC文件myweb-deploy.yaml,内容如下:
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt001_11.jpg?sign=1739700959-CDJNsVV7wQKIo2KhGx6LfRoXWTxZOlpD-0-08ffe6763ab096afc5b0ac02d9d16e72)
注意:在Tomcat容器内,应用将使用环境变量MYSQL_SERVICE_HOST的值连接MySQL服务,但这里为什么没有注册该环境变量呢?这是因为Kubernetes会自动将已存在的Service对象以环境变量的形式展现在新生成的Pod中。其更安全、可靠的方法是使用服务的名称mysql,这就要求集群内的DNS服务(kube-dns)正常运行。运行下面的命令,完成Deployment的创建和验证工作:
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt001_12.jpg?sign=1739700959-p9prQDEdPJXijQ7EtgDh6h0f7DXx3pmr-0-2901939afc5d74dcf592404c353459c2)
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt001_13.jpg?sign=1739700959-Gg9ZEb7XGtLFeUqUCeQuYysWNwAI3gx5-0-ee2ab9a515d1e399a07957b794ca7e28)
最后,创建对应的Service。以下是完整的YAML定义文件(myweb-svc.yaml):
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt001_14.jpg?sign=1739700959-y8fdO3WyIT5D3nSwM0opaBSqbH2HkzNj-0-8190b0167d7bbd57122e0eff2d40b437)
“type:NodePort”和“nodePort:30001”表明此Service开启了NodePort格式的外网访问模式。比如,在Kubernetes集群外,客户端的浏览器可以通过30001端口访问myweb(对应8080的虚端口)。运行kubectl create命令进行创建:
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt001_15.jpg?sign=1739700959-rNYQkBIzdBYqUrwH80ajr1nrlFZYBXkz-0-1e93b4f9aba2dd97205a5e9c4f393825)
运行kubectl get命令,查看已创建的Service:
![img](https://epubservercos.yuewen.com/EB1063/26763832509462206/epubprivate/OEBPS/Images/txt001_16.jpg?sign=1739700959-xtvusl6jsMYOAVO4N1uE0XqVXZLNBHoX-0-58b1ce27f5b7691bfa9cbb784e8c4089)
至此,我们的第1个Kubernetes例子便搭建完成了,下一节将验证结果。