最新手順はこちらKubeadmは、コントロールプレーンノード上のkubeletによって管理される静的ポッドで単一メンバーのetcdクラスタをデフォルトで実行する。etcdクラスターに含まれるメンバーは1つだけで、メンバーが使用不可になっても持続できないため、これはHA設定ではない。このタスクでは、kubeadmを使用してkubernetesクラスタを設定するときに外部etcdとして使用できる3つのメンバからなる高可用性etcdクラスタを作成する手順をみていく。始める前にポート2379および2380を介して互いに通信できる3つのホスト。(今回はこれらをデフォルトポートと想定。kubeadmの設定ファイルで設定可能)各ホストにはdocker、kubelet、およびkubeadmがインストールされている必要がある。scpなどが可能であること。一般的な方法は、1つのノードですべての証明書を生成し、必要なファイルだけを他のノードに配布すること。サービスの優先順位を上書きする必要がある。以下のスクリプトを使用して、etcdメンバーが実行されるホストごとに1つのkubeadm構成ファイルを生成する。これらのファイルをコピーしたら、次の手順「各メンバーの証明書を作成する」に進む。-delete証明書とkubeadm設定をコピーする証明書が生成されたので、今度はそれらをそれぞれのホストに移動する必要がある。/etc/kubernetes/必要なファイルがすべて存在することを確認。必要なファイルの完全なリストは以下。証明書と設定が整ったので、次にマニフェストを作成。各ホストで、kubeadmコマンドを実行してetcdの静的マニフェストを生成する。:あなたのetcd画像のバージョンタグを設定。:テストしているホストのIPアドレスを設定。CPU以上クラスタ内のすべてのマシン間の完全なネットワーク接続(パブリックまたはプライベートネットワークは問題なし)ノードごとに固有のホスト名、MACアドレス、およびproduct_uuid。マシンでは特定のポートを開けとくスワップ無効(kubeletを正しく動作させるためにスワップを無効にする。トラフィックを分散させるためにそれらの前にHAPRoxyロードバランサーを配置する必要がある。LBにするサーバにSSHで接続します。haproxy3つのKubernetesマスターノード間でトラフィックを負荷分散するようにHAProxyを設定。checkHAProxyを再起動。クラスタ内で利用するオーバーレイネットワーク用にカーネルパラメータを変更しておきます。トラフィックが誤ってルーティングされるという問題を報告しています。LinuxデスクトップまたはHAProxyマシン上にあれば実行できる。認証局を作成する認証局設定ファイルを作成します。ファイルを作成します。]}認証局証明書と秘密鍵を生成します。caca-key.pemとca.pemが生成されたことを確認します。ファイルを作成します。]}証明書と秘密鍵を生成します。使用するKubernetesバージョンに設定する必要があります。ロードバランサのアドレスまたはDNSとポートを一致させる必要があり。Kubernetesのバージョンを一致させることがお勧め。sha256:b078841bd826050e1461341835ffc5a5b0cf2e32365a33794eb77512ca0c016aこの出力をテキストファイルにコピーし。後で他のコントロールプレーンノードをクラスタに参加させるために必要になる。$HOME/.kube/config実行しない場合は次のようになる。"kubernetes")次のように入力して、コンポーネントのPodを見始める。-w最初のノードの初期化が完了した後にのみ、新しいコントロールプレーンノードを結合させる。次の例でCONTROL_PLANE_IPSは、他のコントロールプレーンノードのIPアドレスに置き換えます。"${USER}"@$host:done注意:上記のリストの証明書だけをコピーしてください。kubeadmは、参加しているコントロールプレーンインスタンスに必要なSANを使用して、残りの証明書を生成します。すべての証明書を誤ってコピーした場合、必要なSANが不足しているために追加のノードを作成できない可能性があります。これは次のようになります。フラグの追加に注意してください。このフラグは、このコントロールプレーンノードをクラスタに参加させることを自動化します。次のように入力して、コンポーネントのポッドを見始めます。-w残りのコントロールプレーンノードに対してこれらの手順を繰り返します。1台ずつpodが組み込まれて完了したことを確認してから実行していくこと。コンテナNamespaceはコンテナで使われている技術の一つで、コンテナを理解深めるために知っておくとよいので調べてみた。spaceを隔離する。これは同じホスト上で実行されている2つのプロセスが同じPIDを持つことができるということになる。できたりしてしまうので、必ず他のコンテナのプロセスがみれないようにする。以下の項目についてNamespaceを分離する。コンテナ内の要素だけ見えるように制限できる。cgroupsと呼ばれるカーネル機能で計測されアクセス制限される。以下のような物理リソースを制限できる。使用量やアクセスを制限する。namespaceを使用してプログラムを実行できるらしい。どんなプログラムでも走らせることができるということ。unshareコマンドの動きを確認してみる。Namespaceは名前空間ごとにホスト名やドメイン名を独自に持つことができる。コマンドで操作してみる。unshareで起動したシェルを終了すると、ホスト名はもとに戻る。-米軍特殊部隊を最前線で支えた、知られざる「女性部隊」の記録の感想15時間ほどで読めた。CST(文化支援部隊)という女性メンバーだけの特殊部隊を追ったノンフィクション。CSTの役割はアフガニスタンでの戦闘でアフガニスタン人の女性や子供たちから情報を聞き出すことが彼女たちの任務で地上戦の最前線でレンジャーの任務を支えていました。主人公のアシュリーが英雄視されているようで、プロパガンダ的作品と感じとってしまいました。2016年にアメリカの女性兵士も地上戦闘に参加することが法的に認められたのも、このCSTがあってのことのようで米軍にとっても大きな影響を与えた部隊だと思います。著者:ゲイル・スマク・レモンシベリアの掟の感想15時間ほどで読めた。かなりの力作だけど面白かった。筆者の幼少期の自伝的小説。これはntddkさんが面白いとツイートしていたので読んだ。この本については多くは語るのは不要だと思いますので、この本についての感想は本の中で語られているシベリアの掟の引用で締めくくる。『私たちシベリアの民は、子供の頃から「言葉にフィルターをかける」、すなわちたとえ故意でなくとも決して過ちを犯さないよう、口から出る言葉に気をつけることを教えられてきた。シベリアの掟によれば、「一度口から飛び去った言葉は二度と戻ってこない」からだ。たちの戦後の感想8時間ほどで読めた。日本が満州国を建国した時の理念である五族協和。集められた超エリートの卒業生たちを取材することで少ない資料の中、どんな学校だったのか、どんなことを考えて授業を受けたのか、戦後どうなったのか話をきいて浮き彫りになっていく建国大学。日本の敗戦とともにエリートだった学生たちが不遇の待遇を受けていたりと、国がその優秀な人材を生かさず中には忙殺する亡国もあったりと、貴重な歴史的資料のような一冊。(ハヤカワepi文庫)の感想5時間ほどで読めた。薄い小説だけどrebuild.fmで紹介されていたように凄まじい本。打ちのめされるような本。双子の男の子の日記の体でストーリーが進んでいきます。男の子たちの行動原理みたいなものが読み取れてるので、その行動が加速するにつれてページを捲るスピードも上がっていきました。全部で第3部らしいのですが、素晴らしい作品のようですのでほかも読んでみたいです。子供だから視点は狭いようで、大人とは別の視点を持ち戦争下の描写が書かれています。筆者の幼少期の体験を双子の男の子を通して追体験するような感覚です。クリストフUNIXという考え方―その設計思想と哲学の感想20時間ぐらいで読めたと思う。途中何年も積んだりしたので、正確な時間がわかないけど、薄いけど一気に読めるような文章ではないので読むのが大変だった。名著ということでとりあえず読んでみたのが良くないのか、あんまり理解できなかった。これだけみんな名著と思って読まれているのにUNIXという考え方で実装していないのは何故だと思うぐらい複雑だったり謎の処理つけたりしているので気をつけたいですね。Linuxコマンドは強力でそれを使うスクリプトも強力ですね。こんな内容の現代の本が読みたいのでオススメあったら教えて下さい。(ふりがなプログラミングシリーズ)の感想6時間ほどで読めた。タイトルの通りスラスラ読めました。ES6でJavaScriptを説明していますので、これからJavaScriptを勉強したい人や、プログラミングを覚えたい人が読む最初の一冊には良いと思いました。ふりがなが全てに振ってあるので、これがどんな意味なのかを、おまじないなどでごまかしていないので納得して読み進めることができると思います。監修も及川卓也さんなので内容も安心して読むことができました。次のステップはどう進めていけばいいのかは書いてないので、どうステップを進めるかが難しいと思いました。オープンソースによるサーバー防衛の基本の感想8時間ほどで読めました。CentOS6で内容は少し古いですが、現在動いているシステムを運用している人は読んでおくとよいと思いました。LinuxのOS全般とApacheやメールなどの設定でセキュアな設定について細かく書かれており、わかりやすく書かれています。どのような運用が望ましいのかなども自分で調べるには難しいですが、このような本が増えてほしいと思いました。MySQLなどのDBやPHPなどについては記載ありませんが、それらはどのような本を読めばいいかなどの動線があればよいなと思います。スキルアップに効く技術と知識の感想10時間ほどで読めた。インフラエンジニア教科書とのことなのでインフラエンジニアとして読んでみた。1は立ち読みしたことありますが、個人的には2の方が読んでいて面白かったです。オペレーションシステムの基礎知識をわりと実用的なレベルで紹介されていて、インフラエンジニアになった人のまさに教科書的な存在だと思います。個人的にはなるほどUnixなどで、手で動かしてから読んでから読んだ方が理解が深まると思います。OSの動作の理屈をいきなり本を読んで理解できる人は頭がいいと思うので、普通の人は手を動かすといいと思います。読むのに30時間ぐらいかかったと思う。新人の時(6年前)から何度も途中で諦めたりした本。OSやストレージ、DBMS、ネットーワークとシステム周り全般のボトルネックがどこか、リソースをどう使っているのかなどをコマンド実行レイヤ、絵を通して詳細に解説してくれている。個人的には詳解システムパフォーマンスの前に読んでおくと良いのではないかと思った。内容はオンプレミスのシステム前提で少し古いので、今のクラウド時代での内容に即した内容ではどうなるか気になるし、どんな本がそれにあたるのか気になる。このような本読みたい。第2版の感想15時間ほどで読めた。Pythonでクラスをどういう時に書くべきなのか、オブジェクト指向でプログラミングするとはどういうことなのかよくわかっていないのでオブジェクト指向とは何なのかじっくり調べたいと思って読みました。この本は1冊まるまる書いているので説明が豊富でわかりやすかったです。Pythonの入門本とかだと犬とか人間とかを例にしたりして解説するのが余計に混乱させられていたのでオブジェクト指向の歴史と意義やクラス(カプセル化)・継承・ポリモーフィズムがどう意味なのかわかりやすく説明してありよかったです。(角川EPUB選書)の感想6時間ほどで読めた。インターネットのトラフィックがどう流れているのか、CDNのアカマイがどういう成り立ちでできたのか。どのようにサービスを成り立たせているのか、どのような仕組みなのかなどをわかりやすく説明されているので読んでいて楽しかったです。CDNを利用すればオリジンサーバへの負荷分散にもなり、ユーザも高速にアクセスができ本当に良いものです。ネットワークの基本のようなものと併せて本書を読むことでインターネットの大枠を掴むことができるのではないでしょうか。誰にでも読むことができるので、オススメの一冊です。~5.5新機能対応~の感想10時間ほどで読めた。4年ほど積んでいましたが、そろそろMySQLに入門したい気持ちになり読みました。内容としては設定から運用までわかりやすくまとめっていて良いと思います。内容も5.5なのでそこまで古くはないので今読んでも参考になりました。昨今MySQL8がリリースされましたが、ほとんどの運用されているMySQLのバージョンはおいくつでしょうか?そうですね。おわかりのように、この本の内容は古くはないのです。次は実践ハイパフォーマンスMySQLをよんでMySQLの内部にもう少し踏み込んでいきたいと思います。忘れられた巨人の感想40時間ぐらいかけて読んだ。カズオ・イシグロは初めて読みます。牧歌的なファンタジー小説という印象で、THE・ビッグオーのような世界観です。記憶を奪う霧のせいで過去が曖昧な老夫婦がある日息子の存在を思い出して、どこに住んでいるかも顔も思い出せない息子に会いに行こうと行くあてのない旅を初めます。舞台はイングランドで時代はアーサー王伝説なので、この物語には騎士王伝説の知識があるとより楽しめるのかもしれません。読んでいて、ついさっきの記憶も危うい人達の会話を延々と読むことになるので、かなりの混乱が起こりました。イシグロデータ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]の感想8時間ほどで読めた。EFKで可視化したい人向けの本。td-agentとElasticStackはバージョンが上がってしまったので、この本の内容は古いが、十分参考になる内容です。Qiitaぐらいしか日本語での情報がないEFKの可視化について上手くまとまっています。運用Tipsについても詳しく書かれていますので、運用や監視の勘所やチューニングの勘所についても参考になります。これからEFKで可視化をしたいと思っている人にはお勧めの一冊です。データ分析基盤の本で代表的な一冊になると思います。改訂版の感想6時間ほどで読めた。AWSでWEB/DB構成をインスタンス1台ずつたてて、Wordpressを構築するLessonとなっています。新改訂版でコンソールが日本語対応となっているので、わかりやすくなっています。一部コンソール表示は変わっていましたが。他にもネットワークの説明、VPNやサブネットなどAWS特有の説明もされているのでAWSはじめに読む本には良いと思います。TCP/IP周りの説明もされていますので、サーバやネットワークの勉強がしたい人にもおすすめです。内容は薄いのでサクサクすすめてよいと思います。Update今回では、Kubernetesクラスタにデプロイされたアプリケーションを使用して更新する方法について説明しデプロイします。Deploymentについても見ていきます。Deploymentは、Podを管理するためのレプリカセットを作成します。レプリカセット内のレプリカの数は、アプリケーションの要求に合わせて拡大縮小できます。Deploymentの構成を更新する必要があります。この変更により、新しいレプリカセットが作成されます。これは、以前のレプリカセットが縮小されている間にスケールアップされます。これにより、アプリケーションのダウンタイムが発生しません。ありますが、レプリカセットにのみ適用されます。このコマンドからの更新は、クライアント側で行われました。更新がサーバー側にあるので、Deploymentを使用してrolling-updateを行うことを強くお勧めします。arungupta/app-upgrade:v1。arungupta/app-upgrade:v2。World!"を出力します。World!」を印刷します。これらのイメージのソースコードはimagesディレクトリにあります。前提条件この章の演習を行うには、Kubernetesクラスタ構成を展開する必要があります。EKSを使用せずにKubernetesクラスタを作成する場合は、代わりにkopsを使用できます。この章の設定ファイルはすべてapp-updateディレクトリにあります。この章のコマンドを実行する前に、そのディレクトリに移動してください。Cloud9で作業している場合は、次のコマンドを実行します。~/environment/aws-workshop-for-kubernetes/03-path-application-development/303-app-update/rolling-update新しいリビジョンへのアップデートアプリケーションを更新するには、既存のすべてのポッドを、別のバージョンのイメージを使用する新しいポッドに置き換える必要があります。デプロイメント設定で、古いポッドを新しいポッドに置き換えるための戦略を定義することができます。このキーには次の2つの値があります。(デフォルト)この2つのデプロイ戦略を見てみましょう。再作成する既存のPodはすべて、新しいものが作成される前に強制終了されます。created--recordこのdeploymentを開始するコマンドが確実に記録されます。これは、アプリケーションがいくつかの更新を経て、バージョンとコマンドを関連付ける必要がある場合に便利です。9mdeploymentのイメージを更新します。updatedPodのステータスが更新されます。すべてのPodが最初に終了し、新しいPodが作成されたことを示します。4s出力は、すべてのPodが最初に終了した後、新しいPodが作成されたことを示します。World!出力にv2は、使用されているイメージのバージョンが表示されるようになりました。update戦略Podはローリングアップデートの方法で更新されます。updateの実行方法を定義するには、次の2つのオプションのプロパティを使用できます。必要な数のポッドに作成できるポッドの最大数を指定します。値には、絶対数またはパーセンテージを使用できます。デフォルト値は25%です。更新処理中に使用できないポッドの最大数を指定します。8080この場合、最大数のポッド上に1つ以上のポッドを作成することができ、更新プロセス中には1つのポッドしか利用できなくなります。created再度、--recordこの展開を開始するコマンドが確実に記録されます。これは、アプリケーションがいくつかの更新を経て、バージョンとコマンドを関連付ける必要がある場合に便利です。World!出力はv1、イメージのバージョンが使用されていることを示します。別の端末では、Podの状態を確認します。2mdeploymentのイメージを更新します。updatedPodのステータスが更新されます。2s出力は、新しいPodが作成された後、古いPodが作成された後、新しいPodが作成されたことを示します。World!出力にv2は、使用されているイメージのバージョンが表示されるようになりました。コマンドを使用して取得できます。ロールバックするには、Deploymentの完全な履歴を取得できます。app-rolling=arungupta/app-upgrade:v2次のコマンドを使用して以前のバージョンにロールバックします。World!出力はv1、イメージのバージョンが現在使用されていることを示します。deploymentCanaryデプロイメントを使用すると、少数のユーザーに変更を徐々に反映させることで、すべてのユーザーに展開する前に、新しいバージョンのアプリケーションを本番環境に展開することができます。Kubernetesでこれを達成するにはいくつかの方法があります。ServiceとLabels異なるバージョンのイメージを使用した2つのデプロイメントが使用されます。どちらの配置も同じポッドラベルを持ちますが、少なくとも1つのラベルが異なります。一般的なポッドラベルは、サービスのセレクタとして表示されます。レプリカの数を調整するために、異なるポッドラベルが使用されます。新しいバージョンのDeploymentの1つのレプリカが古いバージョンとともにリリースされます。間エラーが検出されない場合、新しいバージョンのレプリカの数がスケールアップされ、古いバージョンのレプリカの数が縮小されます。最終的に、古いバージョンは削除されます。イメージを使用します。