暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

每天五分钟学K8(十五): 将外部服务映射成Service

CodingWithFun 2019-11-28
1125

        在前面的文章中,我们演示过用Kubernetes启动mysql。但当前情况下,更多的时候mysql等存储服务是作为独立服务运行在集群外部的,而Kubernetes运行更多的是无状态的服务。这时候集群Pod连接集群外的服务,有两种方式:一是直接用IP方式访问,二是借助EndPoint将外部服务映射为Kubernetes内部的一个Service对象。使用第二种方式的好处在于数据库地址可以统一管理,一旦数据库地址或端口改变可统一更改,不需更改Pod的配置。


下面简单演示一下:

    apiVersion: v1 
    kind: Service
    metadata:
    name: mysql-service
    spec:
    ports:
    - port: 3306
    protocol: TCP
    targetPort: 3306


    ---
    apiVersion: v1
    kind: Endpoints
    metadata:
    name: mysql-service
    subsets:
    - addresses:
          - ip: "192.168.8.11"     
    ports:
          - port: 3306

    这里定义了两种资源对象,分别是Service与Endpoints。而且service并没有使用标签选择器,而后定义了一个与Service同名的Endpoints,使他们自动关联。在Endpoints中指定了外部服务的IP与端口。通过命令可以查看创建的Service,同样有ClusterIP等信息。


    通过这个Service即可访问mysql服务。下面我们来验证要一下。先按每天五分钟学K8(一):基础概念及部署mysql章节中的方法启动一个mysql的Pod。启动这个Pod只是为了使用mysql命令连接我们创建的mysql服务。验证步骤如下:


    文章转载自CodingWithFun,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论