我有一个使用此服务帐户配置的 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。我想禁用公共访问。我如何将其实现到上述配置中?
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 }}