LoginSignup
1
2

More than 3 years have passed since last update.

Kubernetes上にhelmでKeycloakをデプロイする

Posted at

シングルサインオンのKeycloakをデプロイしてみます。
helmはv2.14.3を使用します。
https://github.com/codecentric/helm-charts/tree/master/charts/keycloak

※minikube上で検証した内容になります。minikube.devドメインを用いてアクセスできるようにするため
superbrothers様の記事を参考に事前設定をしています。必要に応じて作業をしてください。
https://qiita.com/superbrothers/items/13d8ce012ef23e22cb74

1. values.yamlファイルを作成する

管理者ユーザとingressの有効化の設定をします。

values.yaml
keycloak:
  username: admin
  password: Passw0rd
  ingress:
    enabled: true
    path: /
    hosts:
      - keycloak.minikube.dev

2. デプロイする

helm repo add codecentric https://codecentric.github.io/helm-charts
helm upgrade --install keycloak codecentric/keycloak --namespace keycloak --values ./values.yaml

3. Keycloakが動作していることを確認

http://keycloak.minikube.dev にアクセスすることでKeyclaokのトップページが表示されることを確認します。
Administration Consoleから先ほど指定した管理者ユーザの情報でログインし、Keyclaokの管理などを行うことができます。
スクリーンショット 2020-03-23 15.45.47.png

その他

DBの設定について

デフォルトではH2というデータベースが使われるようになっていますが、Keycloakをシャットダウンした際にデータが消えてしまいます。
データを永続化するために外部データベースに保存することが可能です。
https://github.com/codecentric/helm-charts/tree/master/charts/keycloak#database-setup

外部データベースにPostgreSQLを指定した場合の設定例

values.yaml
keycloak:
  username: admin
  password: Passw0rd
  ingress:
    enabled: true
    path: /
    hosts:
      - keycloak.minikube.dev
persistence:
  dbVendor: postgres
  dbName: keycloak
  dbHost: mykeycloak
  dbPort: 5432
  dbUser: keycloak
  dbPassword: keycloakPassword

ingressの前段にL7LBが存在する場合の設定について

今回の環境ではminikubeを利用していますが、自分がkeycloakを使っている環境ではL7LBがKubernetesクラスタの前段にいます。
その場合、Keycloakのログイン画面に遷移すると Invalid parameter: redirect_uri と表示されログインができません。
このような構成の場合、 PROXY_ADDRESS_FORWARDING=true という値を別途設定する必要があります。
ハマりどころです。
https://github.com/keycloak/keycloak-containers/blob/master/server/README.md#enabling-proxy-address-forwarding

ingress(k8sクラスタ)の前段にL7LBが存在する場合の設定例

values.yaml
keycloak:
  username: admin
  password: Passw0rd
  ingress:
    enabled: true
    path: /
    hosts:
      - keycloak.minikube.dev
  extraEnv: |
    - name: PROXY_ADDRESS_FORWARDING
      value: "true"
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2