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
550
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
Lapras正夢グランプリLT資料.pdf
motuo1201
0
16
Devinと探るBigQueryを使ったデータ分析入門
motuo1201
1
51
Shisho_Cloudを使った自動セキュリティ診断環境を作る.pdf
motuo1201
0
68
ドクターメイトエンジニアカルチャーブック
motuo1201
0
130
もう話すことに困らない! カジュアル面談の “型” 全部見せ
motuo1201
0
500
CROSS Party online 2022 ~自重トレ~
motuo1201
0
430
IoT LT Vol7 LT
motuo1201
0
240
IBM Cloud Fest Online 2020
motuo1201
0
810
IBM Championが考えるアプリケーション基盤の勘所
motuo1201
0
250
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Designing for humans not robots
tammielis
254
26k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Ruling the World: When Life Gets Gamed
codingconduct
0
150
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Writing Fast Ruby
sferik
630
62k
Odyssey Design
rkendrick25
PRO
1
500
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Statistics for Hackers
jakevdp
799
230k
How to make the Groovebox
asonas
2
1.9k
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! ありがとうございました!