kubernets对外暴露服务端口

1、进入/root目录,编辑对应的yaml文件
2、修改/增加spec/template/spec/containers/ports节点,增加以下内容
- containerPort: 8080
          protocol: TCP

3、增加服务的yaml文件,通常以xxxx-srv.yaml方式命名,xxxx为服务名。内容如下:
apiVersion: v1
kind: Service
metadata:
  name: 服务名
  namespace: default
  labels:
    k8s-app: 服务名(这个需要与xxxx-rc.yaml文件中命名的k8s-app字段一致)
    kubernetes.io/name: "服务名"
spec:
  type: NodePort 
  selector:
    k8s-app: 服务名
  ports:
  - name: 服务名-sv
    port: 8081(pod上的端口)
    targetPort: 8081(service上的端口)
    nodePort: 30964(node上的端口,如果不设置则由kubernets自动分配)

4、创建服务
kubectl create -f xxxx-svc.yaml 

5、查看服务端口号,其中NodePort即是该服务对外暴露的端口号
kubectl describe service xxxx-service

6、编辑/opt/haproxy/config/haproxy.cfg,增加haproxy配置。
listen servicename
    bind 本地ip:对外开放的地址
    mode tcp
    server server1 服务地址:服务端口号 check port 服务端口号 inter 2000 rise 2 fall 2

猜你喜欢

转载自sensejw.iteye.com/blog/2384449