限制外部对 Pod 的访问

问题描述 投票:0回答:1

我有一个使用此服务帐户配置的 Helm Chart:

apiVersion: v1
kind: Service
metadata:
  name: {{ include "router.fullname" . }}
  labels:
    {{- include "router.labels" . | nindent 4 }}
spec:a
  type: {{ .Values.service.type }}
  ports:
    - name: http
      nodePort: 30079 # Public port to access router resources. For example, http://<Kubernetes node IP>:30079
      protocol: TCP
      port: 80 # Will expose the kubernetes service within the cluster so communication between multiple different pods can happen and will redirect the request to TargetPort
      targetPort: 8180 # Microservice port. For router it's port 8180
  selector:
    {{- include "router.selectorLabels" . | nindent 4 }}

我只需要从内部 pod 访问 pod。我想禁用公共访问。我如何将其实现到上述配置中?

kubernetes kubernetes-helm
1个回答
0
投票

service: { type: }
控制此。 共有三种服务类型
ClusterIP
是从集群外部无法访问的服务类型。

通过此设置,使用可更改该设置的 Helm 值设置进行部署几乎就足够了

# deploy.yaml
service:
  type: ClusterIP
helm upgrade --install -f deploy.yaml ...

一个技巧是

nodePort:
不是 ClusterIP 类型服务的有效设置,因此您还需要更新图表代码以不部署它。 (我还将实际端口号设置为可选且可配置。)

spec:
  type: {{ .Values.service.type }}
  ports:
    - name: http
{{- if and (ne .Values.service.type "ClusterIP") .Values.service.nodePort }}
      nodePort: {{ .Values.service.nodePort }}
{{- end }}
© www.soinside.com 2019 - 2024. All rights reserved.