k8s 容器内部服务访问外部服务
一、问题
在宿主机可以通过 curl http://10.244.52.13:38000/MES, 但是在 pod里边通过 curl http://10.244.52.13:38000/MES 访问连接超时
二、处理
1.使用 hostNetwork参数
Pod与宿主机IP在同一网段
cat mysql.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx5
labels:
app: mysql
spec:
hostNetwork: true # 添加网络参数
containers:
- name: db-mysql
image: nginx:latest
imagePullPolicy: Never
2.使用endpoints组件
cat endpoint.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: mysql-test
namespace: default
subsets:
- addresses:
- ip: 192.168.54.130 --指定宿机主mysql服务器
ports:
- port: 3306 --指定端口
---
apiVersion: v1
kind: Service
metadata:
name: mysql-test --service后端指向endpoints地址
labels:
app: abc
spec:
ports:
- port: 3306
---
apiVersion: v1
kind: Pod
metadata:
name: nginx6 --启动一个容器,测试连接mysql
labels:
app: db
spec:
containers:
- name: mysql-test
image: nginx:latest
imagePullPolicy: Never
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)