如何使用 kube-proxy 在 k8s 中转发 https 服务



众所周知,kube-proxy 用于代理可以通过 apiserver 从外部网络访问的服务,kube-proxy 是否支持 k8s 中的代理 https 服务或任何其他解决方案,以便我们可以通过 apiserver 访问它?

你需要通过 Nodeport 类型的服务公开你的 https pods,然后你可以通过集群中任何节点(主节点或工作节点(上定义的端口访问 https,因为 kube-proxy 会将请求转发到作为服务一部分的 pod。默认情况下,节点端口可以在 30000-32767 范围内。

使用 nginx 进行 https 服务和部署的示例配置:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
  name: nginx
  labels:
    app: nginx
spec:
  type: NodePort
  ports:
  - port: 443
    name: nginx
    targetPort: 443
    nodePort: 32756
  selector:
    app: nginx
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginxdeployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        imagePullPolicy: Always
        ports:
        - containerPort: 443

kube-proxy iptables模式适用于IP层(网络层(,它不关心数据包是http还是https

最新更新