集群内部访问外部数据库或者中间件一般采用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

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐