イベントセミナー 受付終了

【Zoom開催】2時間で分かる!いま話題の「Kubernetes」とは何なのか

受付終了

【Zoom開催】2時間で分かる!いま話題の「Kubernetes」とは何なのか

本セミナーはZoomでのオンライン配信です。ぜひご自宅よりご参加ください!

近年「クラウドネイティブ」という言葉を聞く機会が増えているかと思います。

そして、常にその話題の中心にいるのが、コンテナオーケストレーションシステムである「Kubernetes」です。

最近はWeb記事や書籍などが増えてきたものの、

・どこから学習すればよいのか検討がつかない

・学習したものの仕組みがよく分からない

という方は多いのではないでしょうか?


本セミナーでは、アプリケーションを動かすための主要機能であるDeployment・Service・Ingressに絞って、

概要や仕組みを解説します。

説明だけでなくデモも交えますので、実感を持って理解していただけます。

使用したソースコードなどはインターネット上に公開しますので、後日ご自分で試していただくことも可能です。

ぜひこの2時間で、Kubernetesを更に勉強するきっかけを得てください。


■視聴方法
動画視聴方法は、お申し込みいただいた方へのみご案内させていただきます。
お申し込み後、ご案内メールが届かない方はお手数ですがお問い合わせください。


■ご注意
・Wi-Fi環境など高速通信が可能な電波の良い所でご視聴ください。
 Zoomのシステム要件について、より詳細な情報は、こちらをご参照ください。
・申込フォームにご登録いただいたメールアドレスでZoomに登録させていただきます。
 Zoom参加可能なメールアドレスでお申し込みください。

日程詳細

  • 開催日程
    2020年7月22日
  • 時間
    15時00分~17時00分 <受付開始:14時55分>
  • 会場
    オンライン配信
  • 定員
    100名
  • 参加費
    無料
  • 対象者
    ・Dockerなどのコンテナ技術を使ったことがある方(コンテナ技術自体の解説は行いません)
    ・Kubernetesをこれから学習しようと思っている方
    ・Kubernetesを学習したが今ひとつ理解できなかった方

講演者

写真:多田 真敏
株式会社カサレアル チーフエンジニア
多田 真敏

実施報告

年々Kubernetesの重要性は高まっていますが、アプリケーション開発者にとって学習が困難だと言われています。その背景には、これまでのアプリケーション開発者の守備範囲外にも知らないといけない技術要素の存在があります。
登壇したカサレアル講師の多田自身が、Kubernetesで苦心した経験をもとに、アプリケーション開発者目線で知っておくべき、Kubernetesの知識と仕組みをお伝えしました。

Kubernetesは何をするものか? Kubernetesのアーキテクチャとコンテナ管理

セミナー前半は、円滑に開発/学習を開始するために、Kubernetesの中核機能とその概念を段階的にご説明しました。

はじめに、Kubernetesとはコンテナの配置や監視、自動復旧など、多数のコンテナを管理する、コンテナオーケストレーションシステムと呼ばれます。
Cloud Native Computing Foundation(CNCF)の管理下でオープンソースとして開発されており、様々なクラウドベンダーがサポートしています。

Kubernetesの機能を、”インフラの抽象化”・”セルフヒーリング”・”設定値の管理”など、大きく7つに分けてご説明しました。

またコンテナ以外の自動復旧や、アプリケーションコードの管理およびビルド、ミドルウェアの提供といった、Kubernetesがやらないこと(=開発者が行うこと)もお伝えしました。
Kubernetesはコンテナを整えるための基盤となることを認識し、Kubernetesがやることとやらないことを、しっかり把握することが大切です。

◆◆Kubernetesのアーキテクチャ
続いて、Kubernetesの動作や内部の仕組みのご説明として、Kubernetesが最小単位として管理しているPodや、Master NodeとWorker Nodeという2つのサーバーについてお伝えしました。
Master Nodesとは、Kubernetes全体を管理するVMまたは物理サーバーであるのに対し、Worker Nodeは実際にPodを動かすVMまたは物理サーバーです。
Kubernetesの全体像を図をお見せしながら、Master NodeとWorker Node、それぞれの中身を解説し、特にMaster Nodeには管理コンポ―ネントが様々あり、kube-apiseverが心臓部となることもお伝えしました。

◆◆コンテナ管理
Kubernetesの重要機能となるコンテナ管理についてもご説明しました。
覚えておきたい用語として、先にご紹介したPodの他に、DeploymentとReplicaSetを、図をお見せしながらご紹介しました。
これら3つは、DeploymentがReplicaSetを管理し、ReplicaSetがPodを管理するという構成になっています。
セミナーでは、Deploymentのマニュフェストの記述方法や、マニュフェストファイルのアップロード、ReplicaSetからPod作られる仕組みを、デモを交えてご説明しました。

Kubernetesのメカニズムについて、イラストを数多くご用意してシンプルに解説しましたので、入門者もKubernetes内部の動作をイメージしやすかったのではないかと思います。

クラスター内外の通信

セミナー後半では、ネットワークのお話として、具体的にクライアントツールを操作し、Kubernetesへのデプロイする様子をお見せしながら段階的に解説しました。

◆◆クラスター内通信
まずはコンテナ同士などKubernetes内の通信についてご説明しました。
Serviceを利用したPod間の通信について、市販書籍でイメージとして描かれる図とは異なる、実際の通信の仕組みをお伝えしました。
またServiceでクラスター内のサービスディスカバリと負荷分散を実現できますが、Serviceを作成してから負荷分散されるまでの流れもお伝えしました。
デモや注意点を交えながら、順を追ってご説明しましたので、市販書籍で躓いてしまった方にも、ご理解いただけたのではないでしょうか。


◆◆クラスター内通信
次に、一般ユーザーからPodへのアクセスなど、クラスター外からの通信についてご説明しました。
先にお伝えしたServiceの問題点として、クラスター内での通信しかできない(Serviceのtypeを変更すれば可能)ことと、TCPとIPの情報しか見ないことがあげられます。
そのためクラスター外通信を行うには、Ingressを利用する必要があります。Ingress ControllerがURLによってServiceに振り分け、そこからさらに負荷分散を実現する仕組みになっています。
Ingressを作成するために必要となるIngress Controllerのインストール方法から、実際の画面をお見せしながらお伝えしました。
クラスター外からのアクセスがどの様に行われるか、具体的なイメージをもっていただけたかと思います。

Kubernetesを使う前に考えること

冒頭でお伝えしましたが、Kubernetesは必要となる知識が多岐に亘るため、利用前に「本当にKubernetesを使うべきか」を考える必要があります。

考える一つの基準となるのが、Kubernetesはマイクロサービスの基盤となることから、まずはマイクロサービスをやるかどうかということです。
マイクロサービスでないのであればKubernetesを利用する必要はなく、またマイクロサービスであっても、Kubernetesはサービスが数十になってからでないと必要ないという意見もあります。

ビジネススピードをあげることがマイクロサービスの目的のため、内製化やCI/CD体制といった環境が整っているかも重要になります。
CI/CD体制を整えるだけでもビジネススピード向上の効果があったり、アプリケーションを動かすという観点だけで言えばKubernetesよりも高機能であるPaaSを活用した方が良い場合があったりと、Kubernetes以外の手法も視野に入れる必要があります。

今回のWebinarが、Kubernetesの理解だけでなく、利用検討の一助となれば幸いです!

 オンライン/オフライン研修のご活用も!

今回、アプリケーション開発者目線で知っておくべき点に特化し、Kubernetesの知識と仕組みをお伝えしましたが、とてもボリューム感のある内容だったかと思います。
Webinarの資料ソースコードを公開していますので、ご覧ください。

またWebinarではお伝えしきれなかった、幅広い機能を学習されたい方は、ぜひオープン研修のご活用をご検討ください!

たくさんのご質問をいただきました

セミナーでいただいた、たくさんのご質問をご紹介します。

Q1. 複数Node環境の場合に、Kubernetesにどのような設定をするかを知りたい。
A1. Worker Node自体は基本的に複数台と考えられるため、特別な設定は不要。 Master Nodeについても、各マスターのコンポーネントをどのように配置するかが重要になるが、特別な設定は不要。
Kubernetesの設定よりも、etcdの設定の方が重要になる。
Q2. コンテナのオートスケールを紹介していたが、Worker Nodeのオートスケールはあるのか?
クラウド環境で大量にPODがほしいときにワーカーノードが足りなくなった時などで。
A2. Kubernetesはサーバーを管理するため、Worker Nodeをオートスケールする機能はない。
Q3. Docker for windowsでKubernetesを起動する方法を知りたい。
A3. (多田はMacを使用しているためMacでのデモとなるが、)Dockerの設定画面からKubernetesメニューを選択肢、Enable Kubernetesを選択すると、Dockerの中にKubernetes環境を作ることができる。
Q4. これからアプリエンジニアがKubernetesを実務で使用する上で、抑えておいた方が良いインフラ知識を教えてほしい。
A4. まずはDocker関連のコンテナ知識だが、Dockerの書籍をさっと読めば十分かと思う。
Linuxの知識もあると望ましいが、より必要と思われるのはネットワークの知識。
Q5. 今回のデモはパブリッククラウドか?
A5. GKEというGoogleのKubernetesを使用している。
Q6. Kubernetesは3ヵ月おきにバージョンアップするとのことだが、バージョンアップ時にどの程度、破壊的な変更があるのか。
バージョンアップすると、Deployment設定(yaml)を書き直す必要が出てくることが多いのが、そうでもないのか知りたい。
A6. 大量ではないが時々ある。
Deploymentについては仕様が固まっているため、あまり変更されることはないかと思うが、例えばIngressに関しては、βとなっているものは破壊的な変更も多くあると言われている(αでもある)。
バージョンアップする前の検証は必須。
Q7. Kubernetesを利用するにあたってのデメリットを知りたい。
A7. 一言でいうと、技術的難易度が高い。
コンテナが大量に動く必要があるのであれば必要であるが、コンテナが20~30程度であれば、あえてKubernetesを利用しなくても良い。
Q8. コンテナ化する際にデータベース等で注意すべき点はあるか?
A8. データベース自体もコンテナ化したいのであれば、データベースをコンテナ化して動かすことも可能。
ただし保存場所には注意すべきで、コンテナ外にデータを保存した方がいい。
Q9. Cluster IPとLoadBarancerの説明があったが、NodePortはどのような時に使うのか。
A9. 多田としては、Cluster IPとLoadBarancerさえあれば良いと思うので、NodePortはあまり使用しなくて良いのではないかと思う。