外部如何访问k8s资源

通过ingress对外暴露,在公有云的情况下,可以使用CLB负载多个ingress。当然除了ingress外,k8s还支持其他组件,ingress使用率比较高。

例子:

链路 公网 - 公网CLB - 主机端口(hostPort)- ingress-nginx - service - pod

 

如何访问外部资源

通过 endpoint 映射到外部资源。 在k8s 访问 service的方式可以屏蔽ip的硬编码。

mysql

1.yum install mariadb-server mariadb # centos7 安装

systemctl start mariadb  #启动MariaDB
systemctl stop mariadb  #停止MariaDB
systemctl restart mariadb  #重启MariaDB
systemctl enable mariadb  #设置开机启动

 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

 

apiVersion: v1
kind: Endpoints
metadata:
  name: mysql-dev
  namespace: default
subsets:
  - addresses:
    - ip: 172.27.0.17
    ports:
      - port: 3306
	  
---
apiVersion: v1
kind: Service
metadata:
  name: mysql-dev
spec:
  ports:
    - port: 3306

 

k8s 中连接外部mysql资源。

mysql -h mysql-dev.default.svc.cluster.local -u root  -p

 

create table tce  (version varchar(50) ) default charset=utf8;
inset tce values('3.4');

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐