使用kubernetes访问外部服务(mysql\redis)

来源:互联网 发布:php文件发送post请求 编辑:程序博客网 时间:2024/06/05 20:57

k8s访问集群外独立的服务最好的方式是采用Endpoint方式(可以看作是将k8s集群之外的服务抽象为内部服务),以mysql服务为例:

创建mysql-endpoints.yaml

apiVersion: v1kind: Endpointsmetadata:  name: mysql-test  namespace: defaultsubsets:  - addresses:    - ip: 10.1.0.32    ports:      - port: 3306多个端口的话可以在此处列出

创建mysql-service.yaml

apiVersion: v1kind: Servicemetadata:  name: mysql-testspec:  ports:    - port: 3306同样多端口需要列出

测试连接数据库:

[root@LOC-XAN-PRO-032 run]# kubectl exec -it mysql-1225577607-rv8c1 sh/data # ping mysql-testPING mysql-test (10.254.121.162): 56 data bytes^C--- mysql-test ping statistics ---11 packets transmitted, 0 packets received, 100% packet loss/data # mysql -hmysql-test -ubill -ppassERROR 1045 (28000): Access denied for user 'bill'@'172.30.95.10' (using password: YES)/data # mysql -hmysql-test -ulienhua -p123Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 3Server version: 5.5.52-MariaDB MariaDB ServerCopyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show databases;+--------------------+| Database           |+--------------------+| information_schema || lienhua            || test               |+--------------------+3 rows in set (0.00 sec)MariaDB [(none)]>

查看这个service

[root@LOC-XAN-PRO-032 mysql]# kubectl describe svc mysql-testName:           mysql-testNamespace:      defaultLabels:         <none>Annotations:        <none>Selector:       <none>Type:           ClusterIPIP:         10.254.121.162Port:           <unset> 3306/TCPEndpoints:      10.1.0.32:3306Session Affinity:   NoneEvents:         <none>
原创粉丝点击