首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有转发tcp服务的Kubernetes haproxy负载均衡器

没有转发tcp服务的Kubernetes haproxy负载均衡器
EN

Stack Overflow用户
提问于 2021-11-09 11:14:31
回答 1查看 381关注 0票数 0

我目前正在尝试用kubernetes自动调整我的tcp服务。我不使用云基础设施(亚马逊,aws..etc),所以我使用haproxy来进行负载平衡。我的tcp服务不是http协议,所以我用--configmap-tcp-services参数添加了我的服务。

代码语言:javascript
复制
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: prokittest
    spec:
      replicas: 1
      selector:
        matchLabels:
            app: prokit-server-label
      template:
        metadata:
          labels:
            app: prokit-server-label
        spec:
          volumes:
          - name: host-volume
            hostPath: 
              path: /cosmo/
              type: DirectoryOrCreate
          containers:
          - name: flask-web-server
            image: jakgon/app:2.2
            securityContext:
              privileged: true
            volumeMounts:
            - name: host-volume
              mountPath: /node/plugins
            env:
            - name: POD_HOSTNAME
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: SERVER_GROUP
              value: "lobby"
            - name: MAX_PLAYER
              value: "100"
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            ports:
            - name: server-port
              containerPort: 25565
            - name: healthz-checker
              containerPort: 8088
    ---
    kind: Service
    apiVersion: v1
    metadata:
      name: prokittest
      annotations:
        haproxy.org/send-proxy-protocol: proxy-v2
        haproxy.org/load-balance: "leastconn"
        haproxy.org/check: "true"
        haproxy.org/check-interval: "10s"
      labels:
        run: prokittest
        app: service-monitor-label
    spec:
      selector:
        app: prokit-server-label
      ports:
      - name: server-port
        port: 25565
      - name: healthz-checker
        port: 8088
        targetPort: 8088
    ---
    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: blog-service-monitor
      labels:
        release: prometheus-operator
    spec:
      selector:
        matchLabels:
            app: service-monitor-label
      endpoints:
      - port: healthz-checker

下面是configmap-tcp-services的configmap

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: default
data:
  9000: "cosmoage/prokittest:25565"

在此应用之后,当服务舱调整大小时,haproxy.cfg会自动更改。但是,如果没有像这样手动的端口转发,我就无法访问haproxy服务器:

代码语言:javascript
复制
kubectl port-forward [[ingress pod name]] 9000:9000 --address 0.0.0.0

我对haproxy有误解吗?入口豆荚名称不固定,所以端口前进不是一个好主意的使用。

EN

回答 1

Stack Overflow用户

发布于 2022-08-21 09:56:44

你查过入口记录了吗?我可以看到,您的服务在默认名称空间中,而不是在cosmoage中。

试着使用这个configmap代替:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: default
data:
  "9000": default/prokittest:25565
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69897143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档