集群外部服务通过k8s代理出来

captains 2023-12-05 PM 13720℃ 24条

[TOC]

1、概述

  • 有些服务部署在k8s集群外部,但需要在k8s集群内部通过svc访问或ingress代理出来。
  • 集群外部部署nacos访问地址:http://192.168.203.40:8848

2、解决方式

  • 通过 Endpoints--->Svc(clusterip)--->ingress(nginx)解决

3、创建yaml文件

3.1、创建 endpoints yaml文件

kind: Endpoints
apiVersion: v1
metadata:
  name: svc-en-nacos
  namespace: dolab-namespace
subsets:
- addresses:
  - ip: 192.168.203.40
  ports:
  - port: 8848
    name: nacos-8848
    appProtocol: http
    protocol: TCP

3.2、创建svc yaml文件

apiVersion: v1
kind: Service
metadata:
  name: svc-en-nacos
  namespace: dolab-namespace
spec:
  type: ClusterIP
  ports:
    - port: 8848
      targetPort: 8848
      protocol: TCP

3.3、创建ingress yaml文件

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: svc-en-nacos
  namespace: dolab-namespace
spec:
  ingressClassName: nginx
  rules:
  - host:
    http:
      paths:
      - path: /nacos
        pathType: Prefix
        backend:
          service:
            name: svc-en-nacos
            port:
              number: 8848

4、部署

kubectl apply -f ./

5、访问

  • 获取ingress地址
kubectl get svc -A |grep nginx
ingress-nginx          ingress-nginx-controller             LoadBalancer   10.98.140.199   192.168.203.131   80:31708/TCP,443:30325/TCP   18d
ingress-nginx          ingress-nginx-controller-admission   ClusterIP      10.107.93.225   <none>            443/TCP                      18
  • 访问
http://192.168.203.131/nacos
标签: K8S

非特殊说明,本博所有文章均为博主原创。

评论啦~