上文《Kubernetes部署微服务实战(二)运行VUE前端》我们已经成功的在kuboard上运行了VUE项目,但是我们会发现一个问题,就是pod是会漂移的,如果pod漂移后,那么pod就不在当前的机器上了,此时使用当前机器上的ip+端口就无法实现访问了,因此这里我们为了保证pod无论如何漂移,我们都可以访问,所以这里我们使用service来进行部署。本文我们来介绍下应用路由service的应用。下面我们直接开始演示:
1)编辑pod
这里我们进入到kuboard的界面,找到刚才的show-web应用,点击编辑
2)修改容器信息
在前面我们配置了一个容器端口,9000,39000
这里我们把这个端口给他删除掉,删除掉之后就不需要配置了,最后的内容是:
3)编辑服务/应用路由
这里我们点击最后面的服务/应用路由
然后我们勾选这个服务,会出现服务发布的具体配置:
服务类型我们选择NodePort,然后这里需要配置3个端口,分别是:port/nodePort/targetport,
我们这里配置9000/31200/9000端口
然后我们再点击保存,更待pod进行更新。
然后我们随便找一台机器,访问这个31200端口
这里我们就可以看到访问到了前面的VUE项目。然后我们再试试最开始的39000端口:
可以看到就访问不到了。
以上就是我们给应用添加应用路由的案例,这里比在最开始配置容器端口映射简单得多。最后我们再提供一份最新的当前show-web的最新部署文件:
--- apiVersion: apps/v1 kind: Deployment metadata: annotations: k8s.kuboard.cn/displayName: 前端 labels: k8s.kuboard.cn/layer: web k8s.kuboard.cn/name: show-web name: show-web namespace: default resourceVersion: '935755' spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: k8s.kuboard.cn/layer: web k8s.kuboard.cn/name: show-web strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: creationTimestamp: null labels: k8s.kuboard.cn/layer: web k8s.kuboard.cn/name: show-web spec: containers: - image: 'a85791d9bf0b9ade/k8s-show:1.0' imagePullPolicy: IfNotPresent name: show-web resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 --- apiVersion: v1 kind: Service metadata: annotations: {} labels: k8s.kuboard.cn/layer: web k8s.kuboard.cn/name: show-web name: show-web namespace: default resourceVersion: '936972' spec: clusterIP: 10.233.111.116 clusterIPs: - 10.233.111.116 externalTrafficPolicy: Cluster internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - name: facw4x nodePort: 31200 port: 9000 protocol: TCP targetPort: 9000 selector: k8s.kuboard.cn/layer: web k8s.kuboard.cn/name: show-web sessionAffinity: ClientIP sessionAffinityConfig: clientIP: timeoutSeconds: 10800 type: NodePort
还没有评论,来说两句吧...