Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
K8sでの 環境構築および 運用フロー構築のはなし
Slide 2
Slide 2 text
自己紹介 2
Slide 3
Slide 3 text
名前:安田俊之 関わってきた技術: Linux, Docker, K8s, Terraform, Ansible, Chef, Ruby On Rails, Vue.js, AngularJS, Symfony, FuelPHP, CakePHP Androidアプリ, Spring(Java), Perl/CGI PostgreSQL, MySQL, Oracle, PL/SQL Vim, Zsh, etc. 3
Slide 4
Slide 4 text
本題 4
Slide 5
Slide 5 text
みなさん、Kubernetes使った ことありますか? その前に 5
Slide 6
Slide 6 text
これからKubernetesおよび EKS(AWSのKubernetesのマネージ ドサービス)についてお話しますが、そ れらの基本知識についての説明は時 間がないので割愛します。 前提 6
Slide 7
Slide 7 text
ザーッとどんな感じで環境構築したかとサイト管理 をしているかをご紹介させて下さい。 Kubernetesについてあまり知らない方は、なんと なく、雰囲気で、聞いていただけるとありがたいで す! 前提 7
Slide 8
Slide 8 text
K8sを使った背景 8
Slide 9
Slide 9 text
弊社(iCARE)では元々 コーポレートサイトの一 部でメインのサービス Carelyを紹介していた のですが、今年4月か ら別途プロダクトサイト を立ち上げることに。 K8sを使った背景 9
Slide 10
Slide 10 text
動作環境の要件としては ● WordPressで管理したい ● ユーザー向けのコンテンツはCDNでキャッシュし たい といったシンプルな要件。 とはいえ、 K8sを使った背景 10
Slide 11
Slide 11 text
スクラッチからシステムを構築できるチャンスは、 弊社にはあまりない。なので、むしろこのシンプル な構成だからこそ新しい技術Kubernetesでサイト を構築するチャンス! そしてそこで技術なれして本サービスCarelyに展 開したい! K8sを使った背景 11
Slide 12
Slide 12 text
ただし、プロダクトサイトを管理するメンバーには Dockerの知識はなく、gitの操作くらいしかできない ので、サイトを管理するメンバーにはdockerコマン ド等は期待できない K8sを使った背景 12
Slide 13
Slide 13 text
そういうバックグラウンドがあったので、次のような 構成でサイトを構築することを考えた K8sを使った背景 13
Slide 14
Slide 14 text
システム構成 14
Slide 15
Slide 15 text
システム構成図 15 こんな感じ
Slide 16
Slide 16 text
システム構成図 16 サイト管理者はdockerコ マンドではなく、git コマ ンドでコンテンツをgit サーバーにpush
Slide 17
Slide 17 text
システム構成図 17 gitサーバーは、podがマ ウントしているEFSにマ ウントしており、git push されたファイルはEFSに 格納される
Slide 18
Slide 18 text
システム構成図 18 podではEFSにマウント しているので、git pushさ れたコンテンツをwebコ ンテンツとしてユーザー に返すことができる
Slide 19
Slide 19 text
システム構成図 19 ユーザーは CloudFront〜ELBを経 由してkubernetesのpod へは、アクセスできる
Slide 20
Slide 20 text
システム構成図 20 KubernetesはEKSで管 理しているので、管理コ ストは低い
Slide 21
Slide 21 text
システム構成図 21 WordPressはhelm chartで管理。 WordPressのバージョン アップもhelmコマンドで できるので楽。
Slide 22
Slide 22 text
管理の詳細について 22
Slide 23
Slide 23 text
1. システム管理者は、kubectl, helmコマンド 2. サイト管理者は、WordPressの管理画面を利用しつつ、 gitでテーマを管理 3. Kubernetesのステータスをビジュアル的に確認する際は Kubernetes Dashboardを利用 こんな感じで管理しています 23
Slide 24
Slide 24 text
Kubernetes Dashboard 24
Slide 25
Slide 25 text
● DataDogエージェントのpodを追加し、DataDog側でも Node情報を取得、しきい値を設定して、アラートが上がる ようにしている(つい先日、EKSバージョンアップをした際 に動かなくなって、ちょっとそのままにしてあるけど・・・) こんな感じで管理しています 25
Slide 26
Slide 26 text
1. 今の所、特筆して困ることはないが、頻繁に操作するわけ ではないので、その都度コマンドがどんなだったか忘れて しまいがち 2. Kubernetesコマンドを扱うエンジニアが二人しかいないの で、改善はあまり進んでいない 3. EKSのバージョンアップに合わせてNode(EC2)のイメージ を変えたりする作業があったが、少し面倒くさかった(aws の公式サイトに「およそ 3 か月ごとにリリースされており」 とあるようにマイナーバージョンのリリースが頻繁にある) K8s運用で困ったこと 26
Slide 27
Slide 27 text
● オートスケールにしていないので、オートスケー ルにしたい(ただ、基本的にはユーザーアクセス はCloudFrontでさばかれるので、今の所ニーズ がほとんどない) ● あと、他のサービスもEKSの上にのせたりしな がら、 Kubernetesの知識、経験を積み上げて、 最終的にはメインプロダクトであるCarelyもそこ に乗せたい 今後の展望 27
Slide 28
Slide 28 text
ご清聴ありがとうございまし た! 以上 28
Slide 29
Slide 29 text
質問 29