【问题标题】:kubernetes force service to use httpsKubernetes 强制服务使用 https
【发布时间】:2022-01-19 03:24:03
【问题描述】:

我想使用服务公开 k8s api。我的问题是 api 仅响应 https 上的端口 6443。任何对 http 返回状态 400 错误请求的尝试。如何将服务“强制”给用户 https ?

apiVersion: v1
kind: Service
metadata:
  name: k8s-api
  namespace: kube-system
  labels:
    label: k8s-api
spec:
  ports:
  - port: 80 #Port on which your service is running
    targetPort: 6443
    protocol: TCP
    name: http
  selector:
    name: kube-apiserver-master-node 

可能是这个?

apiVersion: v1
kind: Service
metadata:
  name: k8s-api
  namespace: kube-system
  labels:
    label: k8s-api
spec:
  ports:
  - port: 443 #Port on which your service is running
    targetPort: 6443
    protocol: TCP
    name: http
  selector:
    name: kube-apiserver-master-node 

【问题讨论】:

    标签: kubernetes kubernetes-service kubernetes-apiserver


    【解决方案1】:

    如果您默认使用 Nginx 入口,它会 SSL 卸载 并在后台发送纯 HTTP

    如果您请求直接连接到 服务,更改端口 6443 可能会有所帮助。

    如果您使用的是 Nginx 入口,请确保它不会终止 SSL。

    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    

    【讨论】:

    • 所以ssl的透传属性和后端协议保证了请求会通过https发送到后台。谢谢,我一定会试试的
    猜你喜欢
    • 2020-04-07
    • 2022-06-24
    • 2023-04-05
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多