🐈

素早く Spring Cloud Dataflow @ Minikuber を構築しましょう

2022/07/26に公開

Minikubeクラスタの作成

自分の環境に合わせてMinikubeクラスタを作成してください。

今回はWindows環境でテストするので、下記のコマンドでクラスタを作成します。

minikube start --driver hyperv --cpus 6 --memory 8192

Helmからインストール

簡単にテストしたい場合、こちらの方式を参照したほうが楽だと思います。
実案件などメンテナンス性等を慎重に検討してから使ってください。

リポジトリの追加

helm repo add bitnami https://charts.bitnami.com/bitnami

チャートのインストール

helm install gekal bitnami/spring-cloud-dataflow \
    --set kafka.enabled=true,rabbitmq.enabled=false \
    --set kafka.replicaCount=3 \
    --set server.service.type=NodePort \
    --set skipper.service.type=NodePort \
    --set mariadb.auth.rootPassword=mysqlpwd

チャートの更新

export MARIADB_ROOT_PASSWORD=$(kubectl get secret --namespace default gekal-mariadb -o jsonpath="{.data.mariadb-root-password}" | base64 -d)
export MARIADB_PASSWORD=$(kubectl get secret --namespace default gekal-mariadb -o jsonpath="{.data.mariadb-password}" | base64 -d)
# Kafka Brokerのレプリカカウントの修正
helm upgrade gekal bitnami/spring-cloud-dataflow \
    --set kafka.enabled=true,rabbitmq.enabled=false \
    --set kafka.replicaCount=1 \
    --set server.service.type=NodePort \
    --set skipper.service.type=NodePort \
    --set mariadb.auth.password=$MARIADB_PASSWORD \
    --set mariadb.auth.rootPassword=$MARIADB_ROOT_PASSWORD

チャートのアンインストール

helm uninstall gekal

管理画面へのアクセス

  1. Windows

    # Powershell
    start "$(minikube service --url gekal-spring-cloud-dataflow-server)/dashboard"
    
  2. Mac

    open "$(minikube service --url gekal-spring-cloud-dataflow-server)/dashboard"
    

アプリケーションの登録

Streamアプリケーション

  1. Windows

    # RabbitMQ
    Invoke-WebRequest "$(minikube service --url gekal-spring-cloud-dataflow-server)/apps" -Method POST -Body 'uri=https://dataflow.spring.io/rabbitmq-docker-latest&force=true'
    # Kafka
    Invoke-WebRequest "$(minikube service --url gekal-spring-cloud-dataflow-server)/apps" -Method POST -Body 'uri=https://dataflow.spring.io/kafka-docker-latest&force=true'
    
  2. Mac/Linux

    # RabbitMQ
    wget -qO- "$(minikube service --url my-release-data-flow-server)/apps" --post-data="uri=https://dataflow.spring.io/rabbitmq-docker-latest&force=true";
    # Kafka
    wget -qO- "$(minikube service --url my-release-data-flow-server)/apps" --post-data="uri=https://dataflow.spring.io/kafka-docker-latest&force=true";
    

Taskアプリケーション

  1. Windows

    Invoke-WebRequest "$(minikube service --url gekal-spring-cloud-dataflow-server)/apps" -Method POST -Body 'uri=https://dataflow.spring.io/task-docker-latest&force=true'
    
  2. Mac/Linux

    wget -qO- "$(minikube service --url my-release-data-flow-server)/apps" --post-data="uri=https://dataflow.spring.io/task-docker-latest&force=true";
    

参照

  1. Spring Cloud Stream Reference Documentations
  2. Spring Cloud Data Flow - Documentation
  3. Spring Cloud Data Flow packaged by Bitnami

Discussion