kubanetesの習得を開始
## 狙い
- Kubanetesの知見をいれる
## 実施内容
- OCIのOKEを利用する
- Gitに履歴が残る形にする
- [x] gitlab.avaper.day
- [ ] id.avap.co.jp
- [ ] ldap.avap.co.jp
- [x] register.avaper.day
- [ ] pages.avaper.day
- [ ] grafana
- [ ] prometheus
- [ ] admier / phpmyadmi とか。 DBever用のproxyとかでもいいかな
- [ ] loki
- [ ] m3db cluster (これは難しいかもしれない)
## 方針
### 技術力を落とさない程度に楽をする
Helmでそのままインストールすると、理解度合いが確認できないので、以下で実行する
- HelmのIngressは使わない
- PostgresqlはAivenを使う
- GitalyはClusterにする
- gitlab-runnerは分離して導入する
- D in D 版のDockerを分離し、gitlab-runnerでci/cdができるようにする
- 既存のhostkeyとKubernetesのhostkeyは一致させる
### サービスの設計として
- ベース部分 (IngressなどKubernetes環境とinternetの境界設計)
- 永続部分 (ブロックボリュームやNFSなど)
- namespace (領域の一括管理として)
- helm / kusotomize (サービスの管理方式)
ここまでは基本的に設計すべき
以下、個別
- それは、どこから参照されるか 公開/内部
- 専用のIngressが必要か (必要に応じて Avap NginxとNLBを連携させる)
- 永続化する部分はどこか(NFSやブロックボリュームなど設定する)
- 利用する機密情報はなにか?どう管理するか? (1passwordとか連携するのも多分可能)
### 急ぎめ
- リソース監視を導入する必要あり。
- (アバップの全システムをkubernetesにのっけたい)
- 各リソースのバックアップをし、再配置プランを立てた上で実施する必要がある
## メモ
- db名が変わるとrestoreできない
- omnibus版と違って、s3cmdのconfigを直指定する必要がある
- secretはだいぶ、個別に設定する必要がある
- basedomain + サブドメインの構成が基本っぽい
- postgressもクラスタに入れると、ハードウェア要件があがる
- terraformで管理するのはあまり現実てきではない
## 推測
- prometheusやnode exporterなど監視系はoperatorを使うことで、コンテナを簡単にdiscoveryできるところがメリット
- helmの使い方を覚えるとできそう。ただし、細かい作業が必要なものはKustomizeが便利
## 課題
- TerraformとKubernetesの連携(Helmの作成の自動化とかか?)
epic