上文《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

















还没有评论,来说两句吧...