2022/09/06
[GKE]Kafka Strimziをアップグレードする
以前導入したKafka Strimzi 0.26.0を0.30.0にアップグレードしました。
以下手順を備忘録がてら記載しておきます。
リリース内容の確認
まずはリリース内容の確認をします。
- githubのreleaseページの内容を確認しました。
次に公式ドキュメントで、cluster operatorのアップグレードの仕方が記載してあったので、それを読みました。
作業内容
設定ファイルの変更
strimzi-0.30.0.tar.gz
をダウンロードします。- 解凍して、install/cluster-operatorに対して作業をします。
- 前回デプロイした0.26.0ベースの設定ファイルに上書きをしていくのですが、特に以下の設定を上書きしないように注意しました。
060-Deployment-strimzi-cluster-operator.yaml
の STRIMZI_NAMESPACE
env:
# 以下は前回の変更を残しておく必要がある
- name: STRIMZI_NAMESPACE
value: app1,app2
設定ファイルの反映をデプロイ
設定ファイルの変更が完了したら、以下を実行しました。
# 042-Crd-strimzipodset.yaml は追加のファイルだったので、新規追加
% kubectl apply -f kafka-operator/install/cluster-operator/042-Crd-strimzipodset.yaml
# 一括更新
% kubectl replace -f kafka-operator/install/cluster-operator/
kafka-clusterをローリングアップデート
最後は、このページの10.5. Upgrading Kafkaの内容に沿ってclusterのバージョンを更新して反映させました。
spec.kafka.version
やspec.config.inter.broker.protocol.version
を変更する感じです。
最終的に以下のようになりました。
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: kafka-cluster
namespace: app1
spec:
kafka:
version: 3.2.0
replicas: 1
listeners:
- name: plain
port: 9092
type: internal
tls: false
# - name: tls
# port: 9093
# type: internal
# tls: true
config:
offsets.topic.replication.factor: 1
transaction.state.log.replication.factor: 1
transaction.state.log.min.isr: 1
default.replication.factor: 1
min.insync.replicas: 1
inter.broker.protocol.version: "3.2"
storage:
type: jbod
volumes:
- id: 0
type: persistent-claim
class: pd-ssd
size: 20Gi
deleteClaim: false
# 以下の設定はオプションです。
template:
pod:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "cloud.google.com/gke-nodepool"
operator: In
values:
- your-node-name
zookeeper:
replicas: 1
storage:
type: persistent-claim
class: pd-ssd
size: 20Gi
deleteClaim: false
# 以下の設定はオプションです。
template:
pod:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "cloud.google.com/gke-nodepool"
operator: In
values:
- your-node-name
entityOperator:
topicOperator: {}
userOperator: {}
感想
作業前は「更新作業しなくちゃいけない心理的圧迫感」があったものの、終わってみれば結構あっさりできたので良かったです。
流石にここら辺はよく考えられていて、アップグレードもとてもスムーズにできました。
関連する記事
[小〜中規模向け]GKEにTiDBをデプロイする
MySQL互換のNewSQLであるTiDBをGKEにデプロイしてみました。
NATS JetStream Controllerを使ってNATSをGKEにデプロイする
helm chartのnackを使って、NATS JetStreamサーバーをデプロイして、Stream/Consumerをk8sリソースとして管理する
GKEにDragonflydbをデプロイする
redis互換のdragonflydbをGKEにデプロイしました
[GKE]Kafka Strimziをアップグレードする
GKEにデプロイしているKafka Strimzi 0.26.0を0.30.0にアップグレードする