Kubernetes架构下比较核心的问题是数据如何persistance,虽然提供了Persistent volumn的方式,但是对于像数据库之类的产品在kubernetes集群环境中运行和管理还是很有难度的,Kubernetes提供了endpoints这种模式让外部的服务映射成内部的服务,这样比较好的解决了集群对外的连接问题,

如果我们去连接外部的一个oracle数据库,具体的步骤如下:

  • 建立endpoints和service.
[root@k8s-master jdbcservice]# cat jdbc-endpoint.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: jdbc
subsets:
- addresses:
- ip: 10.182.168.244
ports:
- port:
protocol: TCP

为了方便,我们固定了service的集群地址

[root@k8s-master jdbcservice]# cat jdbcservice.yaml
apiVersion: v1
kind: Service
metadata:
name: jdbc
spec:
clusterIP: 10.254.150.201
ports:
- port:
targetPort:
protocol: TCP

需要注意的是,service和endpoints的名字要相同,另外如果delete了service.再重新建立的时候要再把endpoints建立一遍。

在这个service的表里,我们看到jdbc服务绑在了201这个地址上。

[root@k8s-master jdbcservice]# kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
helloworldsvc 10.254.43.122 <nodes> :/TCP 12m
jdbc 10.254.150.201 <none> /TCP 30m
kubernetes 10.254.0.1 <none> /TCP 121d
registry 10.254.174.54 <nodes> :/TCP 20h
  • images的配置

然后对我们的weblogic images进行jdbc的配置。

点击Test Configuration,如果测试不过,weblogic不允许建立连接池成功.

在运行pod的节点上运行docker ps找到启动image的容器id.

[root@k8s-node- ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2c1dc2a2cef -helloworld:v1 "startWebLogic.sh" minutes ago Up minutes k8s_weblogichelloworld.9efb3a79_helloworld-service-vfd10_default_6162d68a-9da9-11e7-b746-08002797edef_026d2cc4
85e04042041a registry.access.redhat.com/rhel7/pod-infrastructure:latest "/pod" minutes ago Up minutes k8s_POD.15c40ba1_helloworld-service-vfd10_default_6162d68a-9da9-11e7-b746-08002797edef_b59984a7
96acfd65eb3a registry "/entrypoint.sh /etc/" minutes ago Up minutes k8s_registry.71ab5625_registry-7nj8q_default_19ab0b7f-9cff-11e7-bf9d-08002797edef_fb5ae620
63652932256c registry.access.redhat.com/rhel7/pod-infrastructure:latest "/pod" minutes ago Up minutes k8s_POD.100f0b9e_registry-7nj8q_default_19ab0b7f-9cff-11e7-bf9d-08002797edef_98dd7f3f
1ed61c53625f gcr.io/google_containers/etcd-amd64:2.2. "/usr/local/bin/etcd " minutes ago Up minutes k8s_etcd.bb974d90_kube-dns-v11-x0vr3_kube-system_5dd26461-3ef1-11e7-acf2-08002797edef_7316989c
fb8545a4aba4 gcr.io/google_containers/exechealthz:1.0 "/exechealthz '-cmd=n" minutes ago Up minutes k8s_healthz.525e4aad_kube-dns-v11-x0vr3_kube-system_5dd26461-3ef1-11e7-acf2-08002797edef_cec4d740
aa6c4caf3fa7 gcr.io/google_containers/skydns:---8c72f8c "/skydns -machines=ht" minutes ago Up minutes k8s_skydns.96837166_kube-dns-v11-x0vr3_kube-system_5dd26461-3ef1-11e7-acf2-08002797edef_5da89b81
5930dae5b843 registry.access.redhat.com/rhel7/pod-infrastructure:latest "/pod" minutes ago Up minutes k8s_POD.4efc54ff_kube-dns-v11-x0vr3_kube-system_5dd26461-3ef1-11e7-acf2-08002797edef_3e3af088

生成新的images

[root@k8s-node- ~]# docker commit -m "jdbc" -a "ericnie" d2c1dc2a2cef -helloworld-jdbc:v1
sha256:953e124483d2bcc03b3f46c8e6d935e3746634d78942cc477e31888c8d569171
  • 验证

修改weblogic replication control指向1213-helloworld-jdbc:v1 images,启动后看到连接建立.

weblogic端

数据库端

数据库端原来的jdbc链接

Pod完全启动后的连接

Kubernetes连接外部数据源的更多相关文章

  1. Kubernetes使用Eedpoints连接外部服务端口

    Kubernetes使用Eedpoints连接外部服务端口 背景: 在Kubernetes的使用环境中,我们经常要连接外部的一些服务,比如mysql Elasticsearch kafka 等等外部的 ...

  2. 实时更新Excel文档外部数据源的数据

    实时更新Excel文档外部数据源的数据 单元格区域.Excel 表.数据透视表或数据透视图均可以连接到外部数据源(数据源:用于连接数据库的一组存储的"源"信息.数据源包含数据库服务 ...

  3. Oracle连接odbc数据源

    Oracle连接odbc数据源 说明 oracle连接ODBC数据源有两种方式,hsodbc和dg4odbc,简单说dg4odbc是hsodbc的升级.两种连接方法大致一样,现将连接步骤说明如下: 检 ...

  4. Hyper-V 虚拟机连接外部网络

    Hyper-V创建好虚拟机之后,在默认配置下是没有网络连接的,这个时候就需要进行简单的配置,即可让虚拟机连接外部网络: 在Hyper-V管理器中,右键点击后出现菜单,选择"虚拟交换机管理器& ...

  5. 【转载】Spark SQL之External DataSource外部数据源

    http://blog.csdn.net/oopsoom/article/details/42061077 一.Spark SQL External DataSource简介 随着Spark1.2的发 ...

  6. PhpStorm常用快捷键以及如何连接外部服务器

    PhpStorm常用快捷键以及如何连接外部服务器 PhpStorm作为我们phper使用的一款IDE,其功能是非常强大的,现在记录下常用的快捷键以及如何使用它与外部服务器进行连接使用. 一.Keyma ...

  7. 第十一篇:Spark SQL 源码分析之 External DataSource外部数据源

    上周Spark1.2刚发布,周末在家没事,把这个特性给了解一下,顺便分析下源码,看一看这个特性是如何设计及实现的. /** Spark SQL源码分析系列文章*/ (Ps: External Data ...

  8. Spark SQL之External DataSource外部数据源(二)源代码分析

    上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...

  9. Jedis连接外部Redis

    Jedis连接外部Redis 1.在服务器开放端口redis默认6379,如果有宝塔面板则还需要在宝塔放行6379端口 2.修改redis.conf 注释掉 绑定IP 127.0.0.1 # bind ...

随机推荐

  1. 下拉列表 JComboBox 的使用

    下拉列表(JComboBox)通常显示一个可选条目,允许用户在一个下拉列表中选择不同条目,用户也可以在文本区内输入选择项. package first; import java.awt.FlowLay ...

  2. bzoj 1025 DP

    这道题根据群论的基础知识,我们可以转化成将n拆分成若干数,求这些数 的lcm的方案数 先筛下素数表prime 那么我们可以用DP来解决这个问题,用W[I,J]代表I这个数,拆成若干个数, 其中质因数最 ...

  3. RtlInitUnicodeString

    代码1: WCHAR enumeratorName[] = {}; UNICODE_STRING unicodeEnumName; RtlInitUnicodeString(&unicodeE ...

  4. [Leetcode Week2]Sort List

    Sort List题解 题目来源:https://leetcode.com/problems/sort-list/description/ Description Sort a linked list ...

  5. I2C和SPI总线对比【转】

    转自:http://blog.csdn.net/skyflying2012/article/details/8237881/ 最近2周一直在调试IIC和SPI总线设备,这里记录一下2种总线,以备后忘. ...

  6. Google开源命令行参数解析库gflags

    Google开源命令行参数解析库gflags http://blog.csdn.net/lming_08/article/details/25072899 CMDLINE的解析 http://blog ...

  7. string与double的互相转换

    #include <iostream> #include <string> #include <sstream> string DoubleToString(dou ...

  8. centos6.5 挂载远程目录

    查看nfs程序是否安装: [root@crawler_mv02 ~]# rpm -qa |grep rpcbindrpcbind-0.2.0-13.el6_9.1.x86_64[root@crawle ...

  9. MAC使用homeBrew安装Redis

    homeBrew的操作命令如下: brew search ** //查找某个软件包 brew list //列出已经安装的软件的包 brew install ** //安装某个软件包,默认安装的是稳定 ...

  10. javascript+dom编程艺术 读后感

    利用上班空闲2,3天把这本书看完了,整体来说,这本书很不错.虽然我js有一定的基础了,jquery基础也会使用,但是我觉得对js应该有个循序渐进的理解,所以还是把js系统的学习一遍.我看技术类的书总数 ...