CloudではじめるKubernetestechblogこんにちは。ソリューションアーキテクトの森(@mosuke5)です。先日札幌でユーザコミュニティが発足したとのことで、わたしもいってまいりました。Kubernetes)について話してきましたので、こちらでその内容について抜粋してまとめていきたいと思います。KubernetesとはKubernetesはコンテナ化されたアプリケーションの展開やスケーリングおよび管理をおこなうオーケストレーションツールです。Dockerに代表されるコンテナは単体で利用することもできるのですが、実際のアプリケーションに応用すると、たくさんのコンポーネントを複数台のサーバの上で管理する必要があり、オーケストレーションツールなしでは運用が難しいです。Kubernetesのようなオーケストレーションツールを利用することで、複数台のサーバにまたがるコンテナ利用を容易にしていくことができます。Cloud上にKubernetesを利用するためのクラスタを構築してくれるものです。SwarmモードとKubernetesモードの2つをサポートしています。認定されており、ネイティブKubernetesで利用しているツールやプラグインともちろん組み合わせて利用することが可能です。Serviceは下記のような特徴を持っています。versionは1.9.7をサポート(2018/6/8現在)もうじき1.10をサポート予定です。CloudでKubernetesクラスタを構築してみます。Serviceのコンソール画面にいき、「Kubernetesクラスターの作成」を押します。ここでは、下記の設定だけ行いあとはデフォルト設定にします。作成開始後、15分ほどするとクラスタが構築されていると思います。Cloud上で下記の通りリソースが購入され構築されています。クラスタを構成するリソースは下記のとおりです。VPCのクラスタがインターネットの外にでていくためのNATゲートウェイクラスタを操作するKubernetesクラスタを操作するには一般的にkubectlというコマンドラインツールを利用します。Kubernetesでも、kubectlをもちろん利用可能です。kubectlを利用できるようにするためには、コマンドラインの設定が必要です。設定が完了すると例えば下記のようにクラスタのノード情報など取得できるようになります。こちらのドキュメントどおりkubectlを利用できるように設定する必要があります。v1.9.7基本的な概念を理解するさっそくHelloWorldにはいっていきたいところですが、その前にKubernetesででてくる用語をまず簡単に抑えていきたいと思います。登場人物(概念)も絞っていて、この記事を読むにあたって必要な用語のみにしました。Nodeは、Kubernetesクラスタを構成するサーバのこと。Nodeの2種類がある。PodはKubernetesでのデプロイの最小単位です。実行されるコンテナの集団だと思ってください。サービスディスカバリのための機能。コンテナ化した世界ではコンテナがどこのノードでどのように動いているかわかりませんし変動していきます。サービスディスカバリではそういったコンテナへの接続経路を作っていきます。WorldHelloWorld的にWebサーバをKubernetesで立ち上げてみましょう。Nginxのコンテナをデプロイしてみます。25sただ、いまのままではNginxのコンテナは起動して動いていますが、外部から接続できる状態ではありません。こちらを外部から接続するにはServiceオブジェクトを作る必要があります。Serviceオブジェクトを作成するとEXTERNAL-IPが付与され、こちらにブラウザからアクセスできるようになります。Cloud側ではどうなっているのでしょうか。下記のことが実行されています。NodeはAPIを通じてSLBインスタンスを作成し、コンテナへアクセスするための経路を作りますNginxにアクセスするようにSLBが構築され、SLBがアクセスするためのエンドポイントとなるわけです。Cloud独自の強みとしてLogServiceと連携できるところがあります。エージェントをサーバ内にインストールすることで、ログを収集し管理することのできるサービスがあり、Kubernetesクラスタもこちらと連携できるようになっています。詳しくは下記ブログを参照いただくとしますが、このサービスと連携することで、ログを検索可能にし、不要になったログはオブジェクトストレージに送付してアーカイブすることなどができるようになります。https://techblog.sbcloud.co.jp/2018/02/07/log-service-logtail/連携方法は、LogTailとよばれるエージェントをKubernetesのDaemonSetとして動作させることでできます。※現状、日本サイトではLogService側の機能が一部足りず、推奨する連携方式はおこなえず、ここは今改善中です。TerraformでKubernetesを操作する最後にmosuke5毎度おなじみですが、Terraformについて。Cloudでは公式にHashiCorpのTerraformとPackerについてサポートしていくことを宣言しています。KubernetesクラスターについてもTerraformで操作可能なので、クラスターの立ち上げからアプリケーションのデプロイまでTerraformで操作することも可能です。Kubernetesの初級編ということで、今後運用などについても更新していきたいと思っています。Kubernetesというのも準備しており、われわれも情報をゲットし次第案内したいと思います。さいごに、札幌でお話したスライドも掲載しておきます。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。