ignite_Kubernetes集群上的Apache Ignite和Spring第2部分:Kubernetes部署

ignite

ignite

以前,我们已经成功创建了第一个由Apache Ignite支持的Spring boot Application。

在此博客上,我们将重点介绍Kubernetes方面需要做的事情,以便能够启动我们的应用程序。

先前博客所述,我们需要制定我们的Kubernetes RBAC策略。

我们需要一个角色,一个服务帐户和绑定。

 apiVersion: rbac.authorization.k8s.io / v1
 kind: ClusterRole
 metadata:

  name: job - cache
 rules:

  - apiGroups:

    - ""

    resources:

    - pods

    - endpoints

    verbs:

    - get

    - list

    - watch
 - - -
 apiVersion: v1
 kind: ServiceAccount
 metadata:

  name: job - cache
 - - -
 apiVersion: rbac.authorization.k8s.io / v1
 kind: ClusterRoleBinding
 metadata:

  creationTimestamp: 2020 - 03 - 07T22 : 23 : 50Z

  name: job - cache
 roleRef:

  apiGroup: rbac.authorization.k8s.io

  kind: ClusterRole

  name: job - cache
 subjects:

  - kind: ServiceAccount

    name: job - cache

    namespace: "default"

我们的服务帐户将是作业缓存。 这意味着我们应该将作业缓存服务帐户用于基于Ignite的工作负载。

下一步是创建部署。 如前一篇文章所述,配置与statefulset不会有很大不同。

 apiVersion: apps / v1
 kind: Deployment
 metadata:

  name: job - api - deployment

  labels:

    app: job - api
 spec:

  replicas: 2

  selector:

    matchLabels:

      app: job - api

  template:

    metadata:

      labels:

        app: job - api

    spec:

      containers:

        - name: job - api

          image: job - api: 1.0

          env:

            - name: IGNITE_QUIET

              value: "false"

            - name: IGNITE_CACHE_CLIENT

              value: "false"

          ports:

            - containerPort: 11211

              protocol: TCP

            - containerPort: 47100

              protocol: TCP

            - containerPort: 47500

              protocol: TCP

            - containerPort: 49112

              protocol: TCP

            - containerPort: 10800

              protocol: TCP

            - containerPort: 8080

              protocol: TCP

            - containerPort: 10900

              protocol: TCP

      serviceAccount: job - cache

      serviceAccountName: job - cache

由于Ignite配置已通过Java代码完成,因此这更简单。您看到的图像应该是我们之前使用过的dockerized Java应用程序。下一步是定义服务。 我不会全部使用一项服务。 相反,我将为缓存创建一个服务,并为我们的api创建一个服务,以便用作api。

 apiVersion: v1
 kind: Service
 metadata:

  labels:

    app: job - cache

  name: job - cache
 spec:

  ports:

    - name: jdbc

      port: 11211

      protocol: TCP

      targetPort: 11211

    - name: spi - communication

      port: 47100

      protocol: TCP

      targetPort: 47100

    - name: spi - discovery

      port: 47500

      protocol: TCP

      targetPort: 47500

    - name: jmx

      port: 49112

      protocol: TCP

      targetPort: 49112

    - name: sql

      port: 10800

      protocol: TCP

      targetPort: 10800

    - name: rest

      port: 8080

      protocol: TCP

      targetPort: 8080

    - name: thin - clients

      port: 10900

      protocol: TCP

      targetPort: 10900

  selector:

    app: job - api

  type : ClusterIP

在不涉及kubernetes详细信息的情况下,Ignite节点应使用作业缓存内部dns进行同步。 因此,我们将使用kubernetes内部dns功能与Ignite群集进行通信。

下一步是为实际的作业api应用程序创建服务。

 apiVersion: v1
 kind: Service
 metadata:

  labels:

    app: job - api

  name: job - api
 spec:

  ports:

    - name: rest - api

      port: 80

      protocol: TCP

      targetPort: 8080

  selector:

    app: job - api

  sessionAffinity: None

  type : ClusterIP

以下博客中,我们将我们的配置应用于kubernetes并测试我们的代码库。

翻译自: https://www.javacodegeeks.com/2020/04/apache-ignite-and-spring-on-your-kubernetes-cluster-part-2-kubernetes-deployment.html

ignite

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值