k8s ingress代理外部IIS服务
# 前言
默认k8s访问流程: 域名-->ingress-->service-->endpoints-->pods
k8s代理外部iis服务访问流程: 域名-->ingress-->service-->endpoints-->iis
endpoints: 属于k8s集群中的资源对象,是servce服务后端的pod端点集合,用来记录一个service对应的所有pod的ip地址和端口,存储在etcd里面。
endpoints不仅可以记录pod信息,也可以记录k8s集群外部的服务地址信息,如果把外部服务(iis)地址信息注册到endpoints上,service就可以代理外部服务,k8s集群内部的服务调用iis服务时就可以直接使用service name的方式。
以webapihost为例:
# 1.创建Endpoints
apiVersion: v1
kind: Endpoints
metadata:
name: webapihost
namespace: default
subsets:
- addresses:
- ip: 172.26.196.176
ports:
- name: webapihost
port: 80
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 2.创建service
apiVersion: v1
kind: Service
metadata:
name: webapihost
namespace: default
spec:
ports:
- name: webapihost
port: 80
targetPort: 80
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 3.创建ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-webapihost
namespace: default
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: jazzwebapihost
servicePort: 80
path: /
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
上次更新: 2022/09/30, 15:27:27