apache 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并测试我们的代码库。
apache ignite