kubeadmのインストールマスターの初期化クラスタにノードを参加させるサンプルアプリケーションの設置まとめ参考kubernetesの紹介kubernetesはコンテナ化されたアプリケーションのオーケストレーションを実現するオープンソースです。(CNCF)にホストされているオープンソースであり、同団体の数あるプロジェクトの中でも最も有名なプロジェクトです。kubeadmの説明kubeadmはkubernetesのクラスタ構成を簡単にするツールです。AnsibleやPuppet等の構成管理ツールと連携するのに向いています。正式リリース前のアルファ版である事に注意して下さい。kubernetesのインストールUbuntu16.04を3台利用してkubernetesの使い方を簡単に説明します。それぞれのホスト名を以下のように変更しています。:host2Kubernetesと動作確認のため利用するサンプルアプリケーションのメモリ利用量が多いため2G以上のメモリを搭載した環境で試すのが望ましいです。set-hostnameを利用します。managerホスト名を変更した後は/etc/hostsファイルに変更後のホスト名を追加します。manager上記の手順をhost1とhost2にも行います。16.04にkubelet+kubectl+kubeadmをインストールします。kubeletはkubernetesのコアコンポーネントであり、各ノードで動作するエージェントです。kubectlはクラスタを管理するためのコマンドを提供するインターフェイスです。以下一連のコマンドをmanagerとhost1、host2で実行します。rootでの操作が推奨されているため、まずrootになります。-apt-transport-httpsをインストールします。インストールされている環境も多いと思います。apt-transport-httpsGPG鍵を追加します。-aptのソースリストにkubernetesを追加します。mainEOFaptを更新します。updatedockerをインストールします。docker-enginekubernetesの各モジュールをインストールします。kubernetes-cniインストールに成功すると自動的にkubeletが起動します。マスターの初期化managerに接続してのマスターの初期化を行います。initマネージャーに参加するコマンドが表示されます。このコマンドはhost1とhost2がmasterクラスタに参加するために利用します。192.168.7.130:6443次にデフォルトの設定を行います。設定ファイルが読み込まれるようになりコマンドからAPIに接続できるようになります。KUBECONFIG=$HOME/admin.confKubectlコマンドで以下のメッセージが表示される場合、上記コマンドの実行を忘れてKUBECONFIGが適切に設定されていません。port?動作確認のためノード一覧を表示します。Readyと表示されます。1.6.1がインストールされていますので、1.6用のpodネットワーク設定ファイルを適用します。podの一覧を表示するとweave-netが追加されているのを確認できます。--all-namespacesクラスタにノードを参加させるマスターにノードを2つ追加します。initを行った時に表示されたコマンドをhost1とhost2で実行します。tokenの値は環境によって異なります。rootになってから操作します。completeと表示されると成功です。マスターへの参加を取り消し離脱するにはresetを利用します。resetマスターに接続してノード一覧を確認して全てのステータスがReadyになれば利用できる状態です。nodesサンプルアプリケーションの設置ここまでの手順で構築したkubernetesクラスタ構成上で、マイクロサービスで構成されているサンプルアプリケーションを動作させます。https://github.com/microservices-demo/microservices-demoサンプルアプリケーションがどのような構成になっているかは以下の図を参照して下さい。ECサイトの構成でNode.js・GoLang・Java+Springと各種ミドルウェアが利用されています。GitHub)ネームスペースを先に作ります。sock-shopデモアプリケーションの設定ファイルを適用したクラスタを構築します。オフィシャルの説明通りに進めるとzipkinのインストールでエラーが起こったためmasterから最新版を利用するようにします。"https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"上記コマンドを実行すると、各ノードで必要なアプリケーションのインストールを非同期で開始します。環境によっては完了まで数分~10分程度かかるかも知れません。デモアプリケーションのサービスに割り当てられたIPとポートを確認します。アクセスすると無事にデモアプリケーションが表示されました。再度podの一覧を表示するとデモアプリケーションが利用するpodが追加されているのを確認できます。wideオプションを追加します。wide上手くhost1とhost2に分散され、マイクロアプリケーションとして構成されているのを確認できます。kubeadmを利用したクラスタ構成を試しました。Swarmの使い勝手に近い印象です。実験段階の機能であるため本番環境での利用は控えた方が良さそうです。Swarmのインストール方法と紹介(Ubuntu16.04版)として紹介していますので興味のある方はご覧ください。Platform以外のクラウドプロバイダーでもKubernetesを利用したクラスタ構成のオーケストレーションが比較的容易に実現できるかも知れません。Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。よる開発の効率化を検討している法人様必見!「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。サービスも提供しています。”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。テンプレートクラウド化を考える。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。テンプレート2019-12-18クラウド化を考える。2017-06-2005〜お気軽にご相談ください〜〜採用情報〜こちらのサイトを運営している株式会社オープングルーヴでは、技術者の求人を募集しています。