kubernetes强制服务使用https
kubernetes force service to use https
我想公开 k8s api 的使用服务。我的问题是 api 仅在 https 上的端口 6443 上响应。对 http return 状态 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
如果您默认使用 Nginx 入口,它会 SSL 卸载 并发送普通的 HTTP 在后台。
如果您请求直接连接到 服务,更改端口 6443 可能会有帮助。
如果您使用的是 Nginx 入口,请确保它不会终止 SSL。
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
我想公开 k8s api 的使用服务。我的问题是 api 仅在 https 上的端口 6443 上响应。对 http return 状态 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
如果您默认使用 Nginx 入口,它会 SSL 卸载 并发送普通的 HTTP 在后台。
如果您请求直接连接到 服务,更改端口 6443 可能会有帮助。
如果您使用的是 Nginx 入口,请确保它不会终止 SSL。
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"