動作確認済み環境
docker desktop 4.5.0 (Kubernetes v1.22.5)
リソース設定
以下は最低推奨設定となります。
- cpu: 4
- memory: 8.00GB
- swap: 1GB
各ファイル、ディレクトリの説明
ファイルは以下の通り配置して下さい
作業ディレクトリ/
contrast-MM-DD-YYYY.lic
mysql/
docker/db/
- k8s-simple.yml
Kubernetes定義ファイルです。 - mysql/
MySQLコンテナのDocker定義が入ったディレクトリです。docker-compose.ymlとmy.cnfを含みます。 - contrast-MM-DD-YYYY.lic
EOPのライセンスファイルです。(ファイル名は環境ごとに異なります) - contrast.properties
EOP設定ファイルです。適宜、編集、配置して下さい。
前準備
Contrastのライセンスファイルを取得
Contrast Hub (hub.contrastsecurity.com)より最新のライセンスファイル(例 contrast-11-30-2022.lic)を入手して下さい。
Kubernetesを有効化
docker desktopの設定画面でKubernetesを有効化してください。
Show system containersはオフのままでも動作します。
MySQLコンテナを稼働させます。
作業ディレクトリに移動します。
cd mysql/
docker-compose up -d
docker-compose ps
kubectlにSecretとConfigMapを登録
作業ディレクトリに戻ります。
# 今のSecretsの状態を確認
kubectl get secrets
# DBパスワードを登録このパスワードはmysql/docker-compose.yml内と合わせます。
kubectl create secret generic contrast-database --from-literal=password="password"
kubectl create secret generic contrast-license --from-file=license=contrast-12-31-2022.lic
# 登録後のSecretsを確認
kubectl get secrets
# 今のConfigMapを確認
kubectl get configmaps
kubectl create configmap contrast-config --from-file=./contrast.properties
# 登録された中身を確認
kubectl describe configmaps contrast-config
ファイルの設定を一部修正
PodのDB接続先のIPアドレスを修正
k8s-simple.yml
内のCONTRAST_JDBC_URLのIPアドレスをホストOSのIPアドレスに合わせて修正します。
サービスの起動
サービスを起動します
kubectl apply -f k8s-simple.yml
Podの状態を確認します
# Podのステータス確認
kubectl get pods
# Podの詳細確認
kubectl describe pods contrast-0
# Podのログを確認 (コンテナIDはinit-migrations、init-agents、contrastとかです。describeの結果で確認できます)
# エラーが起きた場合はこのログで該当する処理のコンテナIDを指定して、エラー内容を確認してください。
kubectl logs -f --timestamps=true contrast-0 -c <コンテナID>
もしも、PodがPendingのままだった場合は、docker desktopの設定のリソースのメモリを大きくしてみてください。
数分で以下のようになったらOKです。
NAME READY STATUS RESTARTS AGE
contrast-0 1/1 Running 2 (5m16s ago) 9m22s
もしもPodがPendingのままで、PersistentVolumeClaimのエラーメッセージが出ている場合は
以下のコマンドで、pvcとpvの状態を確認してください。
kubectl get pvc,pv
PersistentVolumeがresource not foundとなっている場合は、回避方法の手順を実行してみてください。
接続
SuperAdminアカウントとEOPセットアップドキュメント記載のパスワードでログインしてみてください。
http://<ホスト名>:30000/Contrast
30000番ポートはk8s-simple.yml内で変更可能です。(30000〜32767の範囲で)
以上で構築は完了です。Contrast EOPの各ページを開いて動作を確認して下さい。
PersistentVolumeが作成されない場合の回避手順
前準備
各ファイルの設定を一部修正
Persistent Volumeのhostpathを自身の環境に合わせて修正します。
pv-data.yml
, pv-agents.yml
のspec.hostPath.pathを権限のあるディレクトリパスに変更します。
pv-data.yml
hostPath:
path: /Users/turbou/Documents/git/ContrastSecurity/demo/teamserver_k8s/k8s/data # ここです。
type: DirectoryOrCreate
hostPath:
path: /Users/turbou/Documents/git/ContrastSecurity/demo/teamserver_k8s/k8s/data/agents # ここです。
type: DirectoryOrCreate
PersistentVolumeを手動で作成する。
# PersistentVolumeの作成
kubectl apply -f pv-data.yml
kubectl apply -f pv-agents.yml
PersistentVolumeClaimを手動で作成する。
# PersistentVolumeClaimの作成
kubectl apply -f pvc-data.yml
kubectl apply -f pvc-agents.yml
確認
kubectl get pvc,pv
サービスの起動
サービスの起動
VolumeClaimTemplateの定義のないk8s-simple_without_pv.ymlを実行します。
kubectl apply -f k8s-simple_without_pv.yml
- docker-compose.yml100 KB
- contrast.properties100 KB
- k8s-simple_without_pv.yml200 KB
- k8s-simple.yml200 KB
- pv-agents.yml100 KB
- my.cnf100 KB
- pv-data.yml100 KB
- pvc-agents.yml100 KB
- pvc-data.yml100 KB