Add-onさいごにはじめに前編の続き、中編です。way」をやっていきます。前編では、全14章のうち1~6章まで。wayといやつをやってみたときのメモを残します。各章に対して、適宜図などをつけてみます。前回は6章までやったので、今回は7章から12章までをまとめていきたいと思います。前回作成したVM構成は、こんな感じ。これから作っていくKubernetesクラスタの構成Kubernetesクラスタを構成する主なコンポーネントは以下です。図はWikipediaから引用しました。ClusterKubernetesでは、クラスタの状態などを表すデータを、マスターノードのコンポーネントであるetcdに保持します。読み方は、「イーティーシーディー」とか「エトセディー」とかがありますが、どれが正しいかは知りません。Storeであり、現在CNCFがホストするプロジェクトです。etcd-io/etcdgithub.comKubernetesの公式ドキュメントによると、このetcdは3台以上の冗長構成を組むことが推奨されています。Algorithm」という分散合意アルゴリズムに依るものらしいです。2台構成でもし1台死ぬと、クラウス内のリーダーが選出できなくなるためだそうで、詳細は省きますが、以下の記事がとてもわかりやすいです。台以上のマシンでクラスターを構成することが求められています。controller-3)に対して、etcdのバイナリを入れて、3台でクラスタを組むための設定を入れていきます。VMのOSはLinuxなので、etcdもsysytemdで管理されることになります。以下のコマンドを実行し、クラスタのメンバーの一覧が表示されれば成功です。Plane8章では、マスターノードを構築していきます。以下のコンポーネントも入れていきます。etcdの時と同様に、バイナリをダウンロードして導入します。これらのサービスも今回はsysytemdで管理されます。APIを外部に提供する、マスター上のコンポーネント。マスター上で動くcontrollersを動かすコンポーネント。今回はKubernetesの各コンポーネントについて見ていこう。Kubernetesには以下のようなコンポーネントがある。Serverから、Workerノードのkubeletにアクセスするために、RBACの設定を行います。API→kubeletの通信は、ログ/メトリクスの取得やPod内でコマンド実行のために行われます。Controlの略で、Kubernetesデフォルトの認可モジュールです。Authorizationkubernetes.io主にRole/ClusterRoleとRoleBinding/ClusterRoleBindingというリソースがあります。Clusterが付くとクラスタ単位であり、Clusterが付かないとNamespace単位です。Roleをまず作成して権限を設定します。(唐突な手書きメモ)さて、今回の設定の手順は、以下の通りらしい。kubeletにアクセスして、あれこれできるいい感じの権限を与える。kubernetes余談ですが、認証と認可の違いは、転職活動での技術面接でよく聞かれたので、知らない方は以下の記事も参照ください。Developers.IOよく訓練されたアップル信者、都元です。認可」でググると保育園の話が山程出て来ます。今日は保育園の話ではありません。そちらを期待した方はごめんなさい。こちらからお帰りください。Serverへのアクセスを分散させる。NodesSwapの無効化このあと導入するkubeletは、swapが有効だと起動に失敗するのがデフォルトらしいので、下記コマンドで無効化する。-aワーカーノードのコンポーネント導入マスターノードの次は、Workerノードを構築していきます。各Workerノードに対して、以下のコンポーネントを設定していきます。LevelKubernetesでデプロイするコンテナを動かすため、コンテナランタイムを導入します。コンテナランタイムについては、以下の記事(シリーズ)がわかりやすいです。Lewis...www.ianlewis.orgコンテナランタイムは、ハイレベルコンテナランタイムとローレベルコンテナに分けることができます。Levelコンテナランタイムkubeletと連携する。コンテナイメージ展開やローレベルコンテナランタイムへの受け渡しを担当。Levelコンテナランタイムの1つ。Levelコンテナランタイムの1つ。どちらも、もともとDockerが開発していたが、CNCF寄贈された際に改名して、今の名前になったらしい。みなさんもよくご存知のDockerも、分解すると以下のようなアーキテクチャになるそうです。dockerコマンドしか打たないので、意識することはないですが、知っておいて損はなさそうですね。Levelがあると書きました。Initiative)によって、標準化されているようです。こちらの記事も参照ください。先日以下のQiita記事を書いたのですが、公開した後にコンテナランタイムについて全然書いていないことに気付いたので、今度はコンテナランタイムの動向について整理してみたいと思います。Interface)は、CNCFのプロジェクトの1つであり、Linuxコンテナ内のネットワークインターフェイスの設定を行うプラグインを書く上での規格やライブラリから成ります。containernetworking/cnigithub.com要はコンテナが作成されたときにネットワークリソースをいい感じに構成して接続性を確保し、コンテナが削除されたときにネットワークリソースを開放します。この説明から分かる通り、私も正直よくわかっていないので以下のスライドで完全に理解してください。認識して、そのPodを自身のNodeで起動させる。実行しているPodの監視・管理も行う。KubernetesのServiceオブジェクトを元にルーティングを行う。実体はiptablesのルールを発行し、パケットの制御を行っている。今回はKubernetesの各コンポーネントについて見ていこう。Kubernetesには以下のようなコンポーネントがある。Accessadminユーザで、kubectlを実行するために、kubeconfigファイルを生成します。Serverの前段に配置したLBを指定します。Routes異なるWorkerノード上で動くPodが通信できるように、経路情報を設定します。ここでは、それぞれのWorkerノードに対して、PodのCIDRとノードの内部IPアドレスを紐づける経路情報を定義します。1000ちなみにKubernetesのネットワークモデルを実装するその他の選択肢は、公式ドキュメントに書いてあるようです。Add-onDNSアドオンをデプロイすることで、クラスタ内のアプリケーションに対して、DNSベースのサービスディスカバリを提供できます。導入自体は、コマンド1行でできるらしいです。kube-systemさいごに図や説明などは適宜追記していきます。次回は残りのテストを行い、Kubernetesクラスタの動作を確認します。GoodNotes5というアプリです。有名だけど、意外と使ってない人もいるので、布教していきたい。mini5を衝動買いしました。衝動買いとは、往往にして失敗しますが、今回は成功しました。iPad自体の記事はいろいろあるので、今回は周辺アクセサリーで買ってよかったものをまとめます。way」をやっていきます。前編では、全14章のうち1~6章まで。-中編-Nishipyはじめに前編の続き、中編です。wayといやつをやってみたときのメモを残します。各章に対して、適宜図などをつけてみます。新しくなったらしいHelmを、Macでさくっと触ってみたのでメモ。「Helmのバージョン3.0が出たらしい。今回はECR上のDockerイメージを、別のAWSアカウントからpullする方法についてです。AWSの公式ドキュメント見ればわかるけど、まとまっていないので、自分のためにもまとめておきます。way」をやっていきます。前編では、全14章のうち1~6章まで。Nodeのログを、FluentdによりS3に転送してみます。Fluentdは、KubernetesのDaemonsetとしてデプロイします。Kubernetesクラスタの監視等の用途で、ここ数年よく耳にするPrometheusについてです。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。date*日本語が含まれない投稿は無視されますのでご注意ください。GAFA最終面接で落ちて、本を読みました-2019.04.302019.06.07Python/Paramikoで対話形式のコマンドを実行する2019.10.06。