Kubernetesモードパッケージおよびモジュールパッチ
Kubernetes環境でexemONEサービスをパッチする方法をご案内します。新規パッチバージョンの適用方式に応じてモジュールパッチとパッケージパッチに区分され、各ガイドの手順に沿って順番に進めてください。
モジュールパッチガイド
新規パッチバージョンのイメージをロードし、.env ファイルを修正してexemONEサービスをパッチする方法をご案内します。
1. 制約条件
exemone-apiとexemone-receiver Podは、同一Nodeで実行される必要があります。
[Pod実行設定例]
1) Podを実行するWorker Nodeにラベルを設定
- コマンド形式:
kubectl label nodes {Worker Node 이름} workload={설정할 Worker Node 라벨 이름}
kubectl label nodes worker-node1 workload=exemone-k8s
2) DeploymentでNode Selectorを使用
- 修正ファイル:
exemone-kubernetes/installer/exemone-kubernetes/{SET_NAME}/deployment.yaml SET_NAMEはexemONEインストール時に作成したフォルダ名です。- 1番の手順で設定したWorker Nodeラベルを適用します。
...
spec:
selector:
matchLabels:
app: exemone-receiver
replicas: 1
template:
...
spec:
nodeSelector:
workload: exemone-k8s # または kubernetes.io/hostname: worker-node1
...
2. イメージロード
exemONEサービスを使用するすべてのNodeにイメージをロードします。
- イメージフォルダの場所:
exemone-kubernetes/installer/exemone-kubernetes/image/
docker使用時
docker load -i <이미지>.tar.gz
# ex) docker load -i bitnami-kafka-3.3.2-debian-11-r5.tar.gz
# イメージロード検証
docker images | grep exemone
containerd使用時
namespaceの場合、
k8s.ioが一般的ですが、環境により異なる場合があります。
ctr -n <namespace> images import <이미지>.tar.gz
# ex) ctr -n k8s.io images import bitnami-kafka-3.3.2-debian-11-r5.tar.gz
# イメージロード検証
ctr -n k8s.io images ls | grep exemone
containerd使用時に ctr: archive/tar: invalid tar header エラーが発生した場合の対処方法
gunzip -k <이미지>.tar.gz # gzip圧縮解除
ctr -n <namespace> images import <이미지>.tar
# 例
gunzip -k bitnami-kafka-3.3.2-debian-11-r5.tar.gz
ctr -n k8s.io images import bitnami-kafka-3.3.2-debian-11-r5.tar
3. インストール方法
3-1. .env ファイルの修正
- 新規パッチバージョンに情報を変更します。
- ファイルの場所:
exemone-kubernetes/installer/exemone-kubernetes
vi exemone-kubernetes/installer/exemone-kubernetes/.env

3-2. apply.sh スクリプトの実行
- ファイルの場所:
exemone-kubernetes/installer/exemone-kubernetes
sh exemone-kubernetes/installer/exemone-kubernetes/apply.sh
3-3. exemONEサービスの正常稼働確認
- スクリプト実行完了後、exemONEサービスが正常に稼働しているか確認します。
4. 注意事項および参考
- exemone-apiとexemone-receiver Podは必ず同一Nodeで実行される必要があるため、Worker Nodeラベルおよび Node Selector設定を事前に適用してください。
- イメージロードは、exemONEサービスを使用するすべてのNodeで実施する必要があります。
- containerd使用時に
ctr: archive/tar: invalid tar headerエラーが発生した場合は、gunzipで展開した後、.tarファイルをimportしてください。 - containerdのnamespaceは一般的に
k8s.ioを使用しますが、環境により異なる場合があるため、使用環境に合わせて設定してください。
パッケージパッチガイド
新規パッチバージョンでtemplateまたはscriptファイルが変更された場合、パッケージを置き換えてパッチする方法をご案内します。
1. パッケージパッチ概要
- 新規パッチバージョンでtemplateやscriptファイルが変更された場合、以下の手順に従ってパッケージを変更した後、パッチを進めます。
2. インストール方法
2-1. 事前設定
- 既存のexemONEホームディレクトリをバックアップします。
mv exemone-kubernetes exemone-kubernetes.bak
2-2. パッケージの展開
tar -xzvf exemone-kubernetes-pkg-v3.0.508.21.tar.gz
2-3. ディレクトリ移動
cd exemone-kubernetes
2-4. exemONEイメージのロード
exemONEサービスを使用するすべてのNodeにイメージをロードします。
- イメージフォルダの場所:
exemone-kubernetes/image/
docker使用時
docker load -i <이미지>.tar.gz
# ex) docker load -i bitnami-kafka-3.3.2-debian-11-r5.tar.gz
# イメージロード検証
docker images | grep exemone
containerd使用時
namespaceの場合、
k8s.ioが一般的ですが、環境により異なる場合があります。
ctr -n <namespace> images import <이미지>.tar.gz
# ex) ctr -n k8s.io images import bitnami-kafka-3.3.2-debian-11-r5.tar.gz
# イメージロード検証
ctr -n k8s.io images ls | grep exemone
containerd使用時に ctr: archive/tar: invalid tar header エラーが発生した場合の対処方法
gunzip -k <이미지>.tar.gz # gzip圧縮解除
ctr -n <namespace> images import <이미지>.tar
# 例
gunzip -k bitnami-kafka-3.3.2-debian-11-r5.tar.gz
ctr -n k8s.io images import bitnami-kafka-3.3.2-debian-11-r5.tar
2-5. ディレクトリ移動
cd exemone-kubernetes/installer/
2-6. 展開
tar -xzvf exemone-kubernetes.tar.gz
2-7. 既存ディレクトリへの移動
- 事前設定の手順でバックアップしたディレクトリに移動します。
# cd <既存ディレクトリパス>
cd exemone-kubernetes.bak/installer/exemone-kubernetes
2-8. Storage Classの確認
- 既存で使用していた
storageClassNameをgenerate.sh実行時に使用します。
cat exemone/pvc.yaml | grep -m 1 storageClassName
2-9. 新しいパッケージディレクトリへの移動
- パッケージ展開の手順で展開しておいた新しいパッケージフォルダに移動します。
# cd <新しいパッケージディレクトリ>
cd ../../../exemone-kubernetes/installer/exemone-kubernetes
2-10. generate.sh 実行前の確認
既存exemONEサービス実行情報の確認
- namespace: exemONEサービスが実行中のNamespace
- cluster domain: 一般的に
cluster.localを使用 - storage class name: 2-8の手順で確認した値
既存YAMLファイルでユーザーが修正した部分を新規YAMLファイルに反映
NodeSelector、リソース制限等
- 修正対象:
exemone-kubernetes/installer/exemone-kubernetes/templatesフォルダ内のYAMLファイル
2-11. generate.sh 実行
- 動作:
templatesフォルダ内のYAMLファイルを使用して、exemONE収集モジュール生成用のYAMLファイルを新規に生成します。
./generate.sh
2-12. apply.sh 実行
- 動作:
SET_NAMEフォルダ名にあるYAMLファイルをapplyします。
./apply.sh
3. 注意事項および参考
- パッチ作業を開始する前に、必ず既存の
exemone-kubernetesディレクトリをバックアップする必要があります。 generate.sh実行前に、既存YAMLファイルでユーザーが修正していた項目(NodeSelector、リソース制限等)を新規YAMLファイルに必ず反映してください。- イメージロードは、exemONEサービスを使用するすべてのNodeで実施する必要があります。
storageClassNameは既存環境で使用していた値をそのまま使用する必要があり、generate.sh実行時に反映されます。- containerdのnamespaceは一般的に
k8s.ioを使用しますが、環境により異なる場合があるため、使用環境に合わせて設定してください。 cluster domainは一般的にcluster.localを使用しますが、環境により異なる場合があります。