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. 【洛谷 P1631】 序列合并 (堆)

    题目链接 直接暴力搞是\(n\)方的复杂度.\(n^2\)个数选\(n\)个最小的,容易想到堆. 我们堆里记录两个信息:到\(A\)数组哪个位置了,到\(B\)数组哪个位置了, 我直接把这两个信息存在 ...

  2. HDU3664 Permutation Counting

    Permutation Counting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  3. linux下源码安装netcat

    linux下源码安装netcat http://blog.chinaunix.net/uid-20783755-id-4211230.html 1,下载netcat源码,netcat-0.7.1-13 ...

  4. express 4.x+ swig

    Express 是一个基于 Node.js 平台的极简.灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用. express官网:http://www.exp ...

  5. KVM(六)Nova 通过 libvirt 管理 QEMU/KVM 虚机

    1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该 Hypervi ...

  6. React--基础学习混搭

    最近学习一下React,通过  阮一峰<React 入门实例教程> .React 入门教程.菜鸟教程--React 这三个学习基础使用,接下来看慕课网的三个教学视频. React是什么我也 ...

  7. C# 连接SQL数据库以及操作数据库

    1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调 ...

  8. STL心得

    熟悉c++版算法竞赛程序框架 理解变量引用的原理 熟练掌握string和stringstream 熟练掌握c++结构体的定义和使用,包括构造函数和静态成员变量 了解常见的可重载运算符,包括四则运算,赋 ...

  9. Python3 字典(map)

    ayout: post title: Python3 字典(map) author: "luowentaoaa" catalog: true tags: mathjax: true ...

  10. 微信小程序开发教程(八)视图层——.wxml详解

    框架的视图层由WXMKL(WeiXin Markup language)与WXSS(WeiXin Style Sheet)编写,由组件进行展示. 对于微信小程序而言,视图层就是所有.wxml文件与.w ...