集群内部访问外部数据库或者中间件一般采用endpoints与service关联方式映射。

#en配置
[root@k8s-master-01 k8s]# more mysql-endpoints.yaml 
apiVersion: v1
kind: Endpoints
metadata:
  name: mysql-dev
  namespace: default
subsets:
  - addresses:
    - ip: 192.168.71.129 #外部数据库地址
    ports:
    - port: 3306
#service配置
[root@k8s-master-01 k8s]# more mysql-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: mysql-dev
  namespace: default
spec:
  clusterIP: 10.96.2.128 #固定clusterIP
  ports:
  - port: 3306
    targetPort: 3306
    protocol: TCP
#创建testpod测试,需要在同一ns
[root@k8s-master-01 k8s]# kubectl run test-pod1 -it --image=busybox:1.28 --image-pull-policy=IfNotPresent
#通过svc的clusterIP访问数据库,以下提示说明数据库授权后可以正常连接。
/ # telnet 10.96.2.128 3306
GHost '192.168.71.134' is not allowed to connect to this MySQL serverConnection closed by foreign host

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐