Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KubernetesでDrupalを構築した話
Search
Yosuke Enomoto
January 16, 2019
0
540
KubernetesでDrupalを構築した話
bmxug.tokyo #6 Docker/Kubernetesの登壇資料
https://bmxug.connpass.com/event/112451/
Yosuke Enomoto
January 16, 2019
Tweet
Share
More Decks by Yosuke Enomoto
See All by Yosuke Enomoto
ドクターメイトエンジニアカルチャーブック
motuo1201
0
75
もう話すことに困らない! カジュアル面談の “型” 全部見せ
motuo1201
0
350
CROSS Party online 2022 ~自重トレ~
motuo1201
0
380
IoT LT Vol7 LT
motuo1201
0
220
IBM Cloud Fest Online 2020
motuo1201
0
750
IBM Championが考えるアプリケーション基盤の勘所
motuo1201
0
200
社内定例LT1回目の資料
motuo1201
0
110
codewindで実現!簡単コンテナ開発
motuo1201
0
580
Watson Assistant×Slack Botがリモートで働く社員を繋ぐ
motuo1201
0
570
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
Happy Clients
brianwarren
98
6.7k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Scaling GitHub
holman
458
140k
4 Signs Your Business is Dying
shpigford
180
21k
It's Worth the Effort
3n
183
27k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Producing Creativity
orderedlist
PRO
341
39k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Transcript
KubernetesでDrupalを 構築した話
自己紹介 千葉県内で社内SEやってます。 motuoという名前でQiita書いたりしてます。 https://qiita.com/motuo よく使うのはLaravelで、IBM Cloud(PaaS)で 遊んでいます。 2019年度 IBM Champion認定頂きました!
2
始めに Webサイトを構築するにあたって、IBM Developerのサンプルコードを利用しています。 https://developer.ibm.com/jp/patterns/run-drupal-website-on-kubernetes/ 3 Kubernetesだけではなく、PaaSやBlockChain等、様々なコードのサンプルがありますので、 是非、覗いてみて下さい。
今回はKubernetesのお話 4
Kubernetesって何だっけ? 【出典】 https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#what-does-kubernetes-mean-k8s (ザックリ理解) ▪ コンテナを統合して管理するツール ▪ コンテナ単体だと難しいホストを跨いだ構成 も、上手く制御できる。 ▪
オートスケールやコンテナの自動回復にも 対応している。 ▪ マイクロサービスに適している。
今回、構築したシステム 6 PHP製のCMS
サイト構築の為にやったこと ▪ IBM CloudでKubernetesのクラスタを準備 ▪ Githubで公開されているリポジトリをClone ▪ ローカルから以下のコマンドを実行 7 kubectl
create -f kubernetes/local-volumes.yaml kubectl create -f kubernetes/postgres.yaml kubectl create -f kubernetes/drupal.yaml
これだけ 8
何だか分からないけど、サイトの構築ができてしまった 9
IBMのCode patternって凄い! …じゃなくて 10
Kubernetesの勉強がしたかったのに… 結局、何がどうなってWebサイトが出来たのよ? 1. yamlの壁を実感...(IBM Cloud関係ないけど) 2. 新規クラスタを作成したときに何が起きたの? 3. コンテナイメージってどこに置けば良いの? 11
というわけで・・・ BMXUGに相談だ! 12
この本の著者の方にも参加いただいています 13
1. yamlの壁を壊していこう 14
まずはyamlの壁を壊していこう (local-volumes.yaml) 15 --- apiVersion: v1 kind: PersistentVolume metadata: name:
local-volume-1 labels: type: local spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /tmp/data/pv-1 persistentVolumeReclaimPolicy: Recycle --- Step1: Persistent-Volumeを確保 ▪ hostpathはどこでも良い ▪ storageの容量は上限あり
まずはyamlの壁を壊していこう(postgres.yaml) 16 --- apiVersion: v1 kind: Service metadata: name: postgresql
labels: app: drupal spec: ports: - port: 5432 selector: app: drupal tier: postgreSQL --- Step2-1: postgresqlのService登録 ▪ 複数存在するポッドの数やノー ドの存在を意識せずに 抽象的なアクセスを提供する
まずはyamlの壁を壊していこう(postgres.yaml) 17 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgres-claim
labels: app: drupal spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi --- Step2-2: postgresqlのVolume要求 ▪ 今回は10GBの容量を要求 ▪ すると、自動的に先述の local-volumeが割当てられる
まずはyamlの壁を壊していこう(postgres.yaml)※抜粋 18 spec: containers: - image: postgres:latest name: postgresql env:
- name: POSTGRES_USER value: drupal ports: - containerPort: 5432 name: postgresql volumeMounts: - name: postgresql mountPath: /var/lib/postgresql/data volumes: - name: postgresql persistentVolumeClaim: claimName: postgres-claim Step2-3: 実際のpostgresqlの設定 ▪ イメージの取得 ▪ 環境変数の定義 ▪ データ保管場所の定義
まずはyamlの壁を壊していこう (drupal.yaml) 19 Drupalのyaml定義はpostgresqlと 同じ構成なので割愛
2. クラスタって どうなっているの? 20
ボタン1つで出来ちゃったけど。。。 21
PaaS使ってきた人の疑問 ▪ メモリとかCPUとかどれ位使えるの? ⇒yamlの設定で、使用量を設定できる。 (但し、上限値あり) ▪ ワーカーノードを増やせば使えるリソースも 増える? ⇒使えるリソースも増えるが、前述の通り上限あり 22
3. イメージはどこに置くの? 23
Docker HubやIBM Cloud Container Registryに置こう 24
IBM Cloud Container Registryの画面イメージ 25 ▪ Docker HubがIBM Cloud内にもある感じ ▪
これを使えば、Docker Hubのプライベートレジストリは いらない。
26 THANKS! ありがとうございました!