BHOL404 - k8s应用开发部署 - 使用Service对外提供服务
在这几节实验中,我们将完成我们的 Hello Boathouse 应用的k8s部署过程,其中会涉及到一下k8s中的对象
- Pod
- Deployment
- Service
- Secret
- Namespace
这些内容基本上覆盖了我们k8s集群进行应用开发部署的主要对象。
01 - 实验准备
刚才我们都在使用kubectl命令的方式来完成service的创建,其实我们也可以使用yaml文件对service进行配置。
首先清理我们刚才用kubectl方式创建的service
kubectl delete service hello-boathouse-service
02 - 使用 NodePort 方式
使用vscode创建 hello-boathouse-nodeport-service.yaml
apiVersion: v1kind: Servicemetadata:name: hello-boathouse-servicespec:ports:- port: 31001nodePort: 31001targetPort: nodejs-portprotocol: TCPselector:app: hello-boathousetype: NodePort
使用以下命令提交部署
kubectl apply -f kube-deploy/hello-boathouse-nodeport-service.yamlkubectl get services
03 - 使用 Load Balancer 方式
使用vscode创建 hello-boathouse-lb-service.yaml
apiVersion: v1kind: Servicemetadata:labels:app: hello-boathousename: hello-boathouse-lb-servicespec:type: LoadBalancerports:- port: 80targetPort: 3000selector:app: hello-boathousestatus:loadBalancer: {}
如果使用minikube运行,需要先启动 tunnel 服务,tunnel服务是在minikube上模拟 Load Balancer 服务的扩展。另外打开一个terminal窗口运行:
minikube tunnel
ps:该命令在window10上需要使用管理员权限执行
使用以下命令提交部署
kubectl apply -f kube-deploy/hello-boathouse-lb-service.yamlkubectl get services
观察tunnel服务状态:

最后通过如下命令获取访问地址:
minikube service hello-boathouse-lb-service --url
