k8s traefik 映射外部服务,映射其他域名,映射内网其他服务
需求1.已有 k8s 服务器2.内网有一个单独云盘,需要做外网访问3.公网用pan.foxwho.com域名可以直接访问内网网盘。已知域名已绑定公网ip,可以用xxx域名可以直接访问内网k8s某个服务fox.风配置 Service方式一: 内网云盘访问地址是 http://10.10.10.5:800在内网 用http://10.10.10.5:800 可以直接访问网盘定义一个 Service ,
·
需求
1.已有 k8s 服务器
2.内网有一个单独云盘,需要做外网访问
3.公网用pan.foxwho.com
域名可以直接访问内网网盘。已知域名已绑定公网ip,可以用xxx域名可以直接访问内网k8s某个服务
fox.风
案例:映射网盘
配置 Service
方式一: 内网云盘访问地址是 http://10.10.10.5:800
在内网 用http://10.10.10.5:800
可以直接访问网盘
定义一个 Service
, service.yaml
apiVersion: v1
kind: Service
metadata:
name: pan
spec:
type: ExternalName
## 域名,或者 直接能用ip和端口直接访问的
externalName: 192.168.10.5
ports:
# 我这网盘端口是 800
- port: 800
方式二: 内网云盘访问地址是 http://pan.fox
在内网 用http://pan.fox
可以直接访问网盘
定义一个 Service
, service.yaml
apiVersion: v1
kind: Service
metadata:
name: pan
spec:
type: ExternalName
## 域名
externalName: pan.fox
ports:
- port: 80
配置 traefik Ingress
定义一个 Ingress
, ingress.yaml
## Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik
name: pan
spec:
rules:
- host: pan.foxwho.com
http:
paths:
- backend:
service:
name: pan
port:
number: 800
path: /
pathType: ImplementationSpecific
应用并生效
kubectl apply -f service.yaml
kubectl apply -f ingress.yaml
浏览器访问
http://pan.foxwho.com
看到 网盘网页 即 配置正确
案例:利用Service NodePort 端口直接对外端口映射数据库
Endpoints
定义一个 Endpoints
, endpoints.yaml
kind: Endpoints
apiVersion: v1
metadata:
name: mongodb
subsets:
- addresses:
- ip: 10.10.10.6
ports:
- port: 27017
name: mongodb
protocol: TCP
Service
定义一个 Service
, service.yaml
kind: Service
apiVersion: v1
metadata:
name: mongodb
spec:
type: NodePort
ports:
- port: 27017
name: mongodb
targetPort: 27017
nodePort: 27017
应用并生效
kubectl apply -f endpoints.yaml
kubectl apply -f service.yaml
案例:内部服务要使用外部的mongodb
Endpoints
定义一个 Endpoints
, endpoints.yaml
kind: Endpoints
apiVersion: v1
metadata:
name: mongodb
subsets:
- addresses:
- ip: 10.10.10.6
ports:
- port: 27017
name: mongodb
protocol: TCP
Service
定义一个 Service
, service.yaml
kind: Service
apiVersion: v1
metadata:
name: mongodb
spec:
ports:
- port: 27017
name: mongodb
nodePort: 27017
应用并生效
kubectl apply -f endpoints.yaml
kubectl apply -f service.yaml
服务使用
数据库连接使用
以前
mongodb://fox:password@10.10.10.6:27017/api
现在
mongodb://fox:password@mongodb/api
更多推荐
已为社区贡献20条内容
所有评论(0)