3. 部署服务
由于deployment是一个弹性组件,其管理的应用实例不是固定的,而是可以任意伸缩。这带来了很多的好处,例如可以支持弹性伸缩、滚动更新等等。但是相反的,这也会导致应用实例IP不固定,从访问者的角度我们不可能每次去查找当前的应用实例。所以,为了能提供稳定的访问入口,我们还需要部署服务来接收请求,并屏蔽内部的弹性机制。
本步骤将指导您如何部署服务。
- 执行如下命令,创建service.yaml文件。
vim service.yaml
- 按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键保存并退出。
参数说明:
- selector:这是一个选择器,通过name=myapp这个条件来选择需要代理的Pod。
- ports:这里定义了服务自身暴露的端口和需要访问的应用的端口。
apiVersion: v1 kind: Service metadata: name: myapp-service namespace: app-ns spec: ports: - port: 80 targetPort: 80 protocol: TCP type: ClusterIP selector: name: myapp
- 执行如下命令,运行service.yaml文件,部署服务service。
kubectl apply -f ~/service.yaml
- 执行如下命令,查看部署的服务service。
kubectl get service -n app-ns
返回结果如下,您可查看到服务service的相关信息。
这里我们就完成了服务的部署。下面我们通过ingress将内部的服务暴露出去。