如何使用 helm charts 将 docker 容器端口绑定到主机

Nag*_*hab 5 docker dockerfile kubernetes-helm

我正在为 golang 编写一个简单的 docker 文件,但我仍然熟悉 docker,所以我知道我想做什么只是不知道该怎么做:

我现在(下面)所拥有的是公开端口 8080,但我想公开端口 80 但将其转发到端口 8080。

我知道我可以通过它来完成,docker run -p但我想知道是否有一种方法可以设置它Dockerfile或其他方式。我试图找到如何通过 Helm 做到这一点。

Dockerfile:

FROM scratch

COPY auth-service /auth-service

EXPOSE 8080

CMD ["/auth-service","-logtostderr=true", "-v=-1"]
Run Code Online (Sandbox Code Playgroud)

Dhi*_*aTN 6

EXPOSE通知 Docker 容器在运行时侦听指定的网络端口,但实际上并未使端口可访问。只有-p你已经提到会这样做:

docker run -p :$HOSTPORT:$CONTAINERPORT

或者你可以选择一个 docker-compose 文件,额外的文件,但也可以为你做这件事:

version: "2"
services:
  my_service:
    build: .
    name: my_container_name
    ports:
      - 80:8080
    .....
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您使用的是 helm,则只需使用暴露的 docker 端口作为您的targetPort

apiVersion: v1
kind: Service
metadata:
  name: {{ template "fullname" . }}
  labels:
    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
spec:
  type: {{ .Values.service.type }}
  ports:
  - port: {{ .Values.service.externalPort }}
    targetPort: {{ .Values.service.internalPort }} #8080
    protocol: TCP
    name: {{ .Values.service.name }}
  selector:
    app: {{ template "fullname" . }}
Run Code Online (Sandbox Code Playgroud)