본문 바로가기
OS/Linux

k8s Ignite 설치 방법

by BTC_KSH 2022. 12. 21.

안녕하세요~~ 저희는 공공의 적 팀입니다~~<(*^.^*)/

 

 

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

댓글