dtcms 源码 Kerberos认证原理 JavaWeb CSS选择器 Eclipse Java程序员 grails variant controller jvm gdb vue中文网 npm安装vue 网页后台模板 安卓项目实战 在线考试系统代码 abaqus是什么软件 html下拉框默认选中 docker保存镜像 python命令大全 python读取字典 java基本数据结构 java创建集合 linux目录系统 java游戏开发 mac地址修改器 rndis驱动下载 摩斯密码翻译 神龙激活 beatedit dvwa安装教程 js数组移除指定元素 php取整函数 popen函数 只狼全鬼佛 pr抖动特效 foobar2000插件 omg小北 租房管理软件 xlwt
当前位置: 首页 > 学习教程  > 编程语言

Kubernetes实战(二十七)-集群访问外部服务(Endpoints)

2020/8/31 15:52:38 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

Kubernetes 访问内网集群外独立的服务,由于不在相同的网段(容器内的网段是独立的)所以不能够互相访问通信,这种情况下我们可以创建 Kubernetes 的 Endpoints 资源,将外部服务映射为集群的内部服务进行访问通信。

在实际的生产环境使用中,通过分布式存储来实现的磁盘在 Mysql 这种IO密集性应用中,性能问题会显得非常突出。所以在实际应用中,一般不会把 Mysql 这种应用直接放入 Kubernetes 中管理,而是使用专用的服务器来独立部署,而像 Web 这种无状态应用依然会运行在 Kubernetes 中,这个时候 Web 服务器要连接 Kubernetes 集群外的数据库,有两种方式:

  • 直接连接数据库的外网 IP 地址
  • 创建 Endpoints 将外部服务映射为集群内部服务

下面分别列举 Elasticsearch、Mysql、PostgreSQL、Redis、Nginx 的 Endpoints 配置方法,希望大家能通过这几个示例学习到 Endpoints 的使用方法。

1、Elasticsearch 配置

Elasticsearch EndPoints 资源文件,内容如下:

apiVersion: v1
kind: Endpoints
metadata:
  name: elasticsearch
  namespace: oas-dev
subsets:
 - addresses:
    - ip: 10.12.1.203
   ports:
    - name: es01
      port: 9500
    - name: es02
      port: 9501
    - name: es03
      port: 9502

Elasticsearch Service 资源文件,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: elasticsearch
  namespace: oas-dev
spec:
  type: NodePort
  clusterIP: 10.110.181.25
  ports:
   - name: es01
     port: 9500
     targetPort: 9500
     protocol: TCP
   - name: es02
     port: 9501
     targetPort: 9501
     protocol: TCP
   - name: es03
     port: 9502
     targetPort: 9502
     protocol: TCP

注:上述 10.12.1.203 是 Elasticsearch 物理服务器所在内网 IP 地址。

2、Mysql 配置

Mysql EndPoints 资源文件,内容如下:

apiVersion: v1
kind: Endpoints
metadata:
  name: mysql
  namespace: oas-dev
subsets:
 - addresses:
    - ip: 10.12.1.203
   ports:
    - port: 3306

Mysql Service 资源文件,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: mysql
  namespace: oas-dev
spec:
  type: NodePort
  clusterIP: 10.100.169.39
  ports:
   - port: 3306
     targetPort: 3306
     nodePort: 31500
     protocol: TCP

注:上述 10.12.1.203 是 Mysql 物理服务器所在内网 IP 地址。

3、PostgreSQL 配置

PostgreSQL EndPoints 资源文件,内容如下:

apiVersion: v1
kind: Endpoints
metadata:
  name: pgsql
  namespace: oas-dev
subsets:
 - addresses:
    - ip: 10.12.1.203
   ports:
    - port: 5432

PostgreSQL Service 资源文件,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: pgsql
  namespace: oas-dev
spec:
  type: NodePort
  clusterIP: 10.109.241.188
  ports:
   - port: 5432
     targetPort: 5432
     nodePort: 31532
     protocol: TCP

注:上述 10.12.1.203 是 PostgreSQL 物理服务器所在内网 IP 地址。

4、Redis 配置

Redis EndPoints 资源文件,内容如下:

apiVersion: v1
kind: Endpoints
metadata:
  name: redis
  namespace: oas-dev
subsets:
 - addresses:
    - ip: 10.12.1.203
   ports:
    - port: 6379

Redis Service 资源文件,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: redis
  namespace: oas-dev
spec:
  type: NodePort
  clusterIP: 10.102.65.3
  ports:
   - port: 6379
     targetPort: 6379
     protocol: TCP

注:上述 10.12.1.203 是 Redis 物理服务器所在内网 IP 地址。

5、Nginx 配置

Nginx EndPoints 资源文件,内容如下:

apiVersion: v1
kind: Endpoints
metadata:
  name: nginx
  namespace: oas-dev
subsets:
 - addresses:
   - ip: 10.12.1.206
   ports:
    - port: 9527

Nginx Service 资源文件,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: oas-dev
spec:
  type: NodePort
  clusterIP: 10.98.31.206
  ports:
  - port: 9527
    targetPort: 9527
    protocol: TCP

注:上述 10.12.1.206 是 Nginx 物理服务器所在内网 IP 地址。

到此集群访问外部服务(Endpoints)介绍完成。

张志翔 CSDN认证博客专家 博客专家 CSDN认证专家
从事Java开发、嵌入式C、基础设施运维等工作,有丰富的微服务项目实战经验,参与云平台基础设施建设、部署实施及项目管理等。

本文链接: http://www.dtmao.cc/news_show_150438.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?