안녕하세요~~ 저희는 공공의 적 팀입니다~~<(*^.^*)/
Apache Ignite는 고성능 컴퓨팅을 위한 분산 데이터베이스 관리 시스템입니다.
오늘은 k8s 환경에서 Ignite 설치 방법에 대해 알려드립니다.
1. 쿠버네티스 구성
1) 배포를 위한 Ignite 네임 스페이스 생성 및 변경
- kubectl create namespace ignite
- kubectl config set-context --current --namespace=ignite
2) 서비스 생성
- vi service.yaml
apiVersion: v1
kind: Service
metadata:
# The name must be equal to KubernetesConnectionConfiguration.serviceName
name: ignite-service
# The name must be equal to KubernetesConnectionConfiguration.namespace
namespace: ignite
labels:
app: ignite
spec:
type: LoadBalancer
ports:
- name: rest
port: 8080
targetPort: 8080
- name: thinclients
port: 10800
targetPort: 10800
# Optional - remove 'sessionAffinity' property if the cluster
# and applications are deployed within Kubernetes
# sessionAffinity: ClientIP
selector:
# Must be equal to the label set for pods.
app: ignite
status:
loadBalancer: {}
3) 클러스터 역할 및 서비스 계정 생성
(1)서비스 계정 생성
- kubectl create sa ignite -n ignite
(2) 클러스터 역할 생성
- vi cluster-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: ignite
namespace: ignite
rules:
- apiGroups:
- ""
resources: # Here are the resources you can access
- pods
- endpoints
verbs: # That is what you can do with them
- get
- list
- watch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ignite
roleRef:
kind: ClusterRole
name: ignite
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: ignite
namespace: ignite
4) 노드 구성 파일에 대한 ConfigMap 생성
- vi node-configuration.xml포드 구성 생성
5) 포드 구성 생성
- vi deployment.yaml
# An example of a Kubernetes configuration for pod deployment.
apiVersion: apps/v1
kind: Deployment
metadata:
# Cluster name.
name: ignite-cluster
namespace: ignite
spec:
# The initial number of pods to be started by Kubernetes.
replicas: 2
selector:
matchLabels:
app: ignite
template:
metadata:
labels:
app: ignite
spec:
serviceAccountName: ignite
terminationGracePeriodSeconds: 60000
containers:
# Custom pod name.
- name: ignite-node
image: apacheignite/ignite:2.13.0
env:
- name: OPTION_LIBS
value: ignite-kubernetes,ignite-rest-http
- name: CONFIG_URI
value: file:///ignite/config/node-configuration.xml
ports:
# Ports to open.
- containerPort: 47100 # communication SPI port
- containerPort: 47500 # discovery SPI port
- containerPort: 49112 # dafault JMX port
- containerPort: 10800 # thin clients/JDBC driver port
- containerPort: 8080 # REST API
volumeMounts:
- mountPath: /ignite/config
name: config-vol
volumes:
- name: config-vol
configMap:
name: ignite-config
6) 파일 생성 후 명령어 입력
- kubectl create -f service.yaml // 서비스 배포
- kubectl create -f cluster-role.yaml // 클러스터 역할 생성
- kubectl create configmap ignite-config -n ignite --from-file=node-configuration.xml
- // 노드 구성 파일에 대한 설정 생성
- kubectl create -f deployment.yaml // Ignite 포드 배포
7) Ignite 컨테이너 배포 및 실행 확인
- kubectl get pods
- kubectl logs [ pod name ]
'OS > Linux' 카테고리의 다른 글
리눅스 압축 관련 명령어 (0) | 2022.12.21 |
---|---|
k8s tomcat 배포 (0) | 2022.12.21 |
make 와 makefile 언제 사용할까? (2) | 2022.12.21 |
[Linux] 파이프, 필터, 리디렉션 (0) | 2022.12.09 |
[Linux] 사용자와 그룹 (1) | 2022.12.02 |
댓글