【Kubernetes】K8s 集群外服务配置 Service 访问
·
在 Kubernetes 集群中,内部服务可通过 Service-name 进行访问。那么,对于集群外的服务,Pod 应该如何通过 Service 进行访问呢?一起来看看吧!
- 此处举例以 Pod 访问集群外部的 Mysql 数据库
1、创建 Service
# 创建 Service 时不指定 Selector
# vi external-mysql-service.yaml
apiVersion: v1
kind: Service
metadata:
name: external-mysql
namespace: mysql
spec:
ports:
- port: 3306 # 服务公开的端口
targetPort: 3306 # 同上
protocol: TCP
name: http
type: ClusterIP
# 应用
kubectl apply -f external-mysql-service.yaml


2、创建 Endpoint
# 手动创建与 Service 同名的 Endpoint
# vi external-mysql-ep.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: external-mysql
namespace: mysql
subsets:
- addresses:
- ip: 172.16.12.214 # 外部服务的 IP 地址
ports:
- port: 3306 # 与 Service 的 port 一致
name: http # 与 Service 的 port name 一致
# 应用
kubectl apply -f external-mysql-ep.yam


3、测试配置成功
# pod 中使用原始地址可登录数据库
mysql -h x.x.x.x -u root -p
# pod 中使用 service-name 测试正常登录数据库
mysql -h external-mysql -u root -p


更多推荐



所有评论(0)