云服务器以域名形式访问机房Kubernetes集群服务之解决方案

1. 背景介绍

1)机房K8S集群采用KubeSphere方式部署,集群信息如下:

|----------|--------------|----------------|-----------|--------|------------------------|
| 服务器 | 内网地址 | 主机名 | 备注 | 配置 | 部署方式 |
| ESXI 虚拟机 | 10.10.18.151 | test-master151 | 主节点 | 4C16G | 1master 3worker 脚本自动部署 |
| ESXI 虚拟机 | 10.10.18.154 | test-node154 | node154节点 | 16C32G | 1master 3worker 脚本自动部署 |
| ESXI 虚拟机 | 10.10.18.155 | test-node155 | node155节点 | 16C32G | 1master 3worker 脚本自动部署 |
| ESXI 虚拟机 | 10.10.18.156 | test-node156 | node156节点 | 16C32G | 1master 3worker 脚本自动部署 |

2)上述节点公用同一联通专线出站公网IP,地址为1.1.1.1 ;入站公网IP为2.2.2.2

3)机房入站公网IP2.2.2.2的80和443端口未做互联网备案

4)云服务器IP为3.3.3.3

2. 访问需求

通过HTTPS域名形式【https://www.lmzf.com】访问机房k8s集群服务。

3. 解决方案

3.1 转发流程

https://www.lmzf.com------>3.3.3.3:443------> 2.2.2.2:32532------>10.10.18.151:32532

3.2 方案配置

3.2.1 域名解析

www.lmzf.com解析至3.3.3.3

3.2.2 Nginx配置

服务器3.3.3.3上nginx配置如下

复制代码
[root@3.3.3.3 ~]# cat  /etc/nginx/conf.d/www.lmzf.com.conf
server {
    listen 443 ssl;
    server_name www.lmzf.com;

    ssl_certificate    /etc/nginx/ssl/www.lmzf.com.pem;
    ssl_certificate_key   /etc/nginx/ssl/www.lmzf.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;


    location / {
        proxy_pass https://2.2.2.2:32532;  # 指向Kubesphere网关的节点端口
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Content-Type';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    error_log  /var/log/www.lmzf.com.error.log;
}

备注:服务器3.3.3.3的防火墙需放开32532端口

3.2.3 网关映射

路由器NAT配置或Nginx四层转发实现

2.2.2.2:32532------映射------>10.10.18.151:32532

3.2.4 KubeSphere网关配置

3.3.5 Ingress配置

复制代码
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: www.lmzf.com
  namespace: lmzf
  creationTimestamp: '2025-07-21T08:06:16Z'
  annotations:
    kubesphere.io/alias-name: lmzf
    kubesphere.io/creator: admin
spec:
  ingressClassName: kubesphere-router-cluster
  tls:
    - hosts:
        - www.lmzf.com
      secretName: www.lmzf.com_ssl
  rules:
    - host: www.lmzf.com
      http:
        paths:
          - path: /
            pathType: ImplementationSpecific
            backend:
              service:
                name: lmzf-nginx-web
                port:
                  number: 80

3.2.6 域名访问

浏览器输入:https://www.lmzf.com

相关推荐
武子康16 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
ping某2 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
java_cj4 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵4 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
難釋懷4 天前
Nginx反向代理中的容错机制
运维·nginx
杨浦老苏4 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主4 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
bloglin999994 天前
Nginx高危漏洞CVE-2021-23017及配置样例
运维·nginx
kiros_wang4 天前
Docker 使用完整指南
运维·docker·容器