ログイン

AWSコンテナ入門1 続き
19問 • 1年前
  • サラリーマンサラリーマン
  • 通報

    問題一覧

  • 1

    Podとは?(kubernates)

    kubernatesでのコンテナの起動単位。固有の仮想IPアドレスが割り当てられ、Pod内のコンテナはIPアドレスやポート、ネットワーク名前空間をそれぞれ共有する。ボリュームも共有できることです(後述)。より正確には、Podに共有化されたストレージボリュームを指定することで、Pod内の全てのコンテナがそのストレージにアクセスできるようになる。

  • 2

    1Pod1コンテナではないパターンとは?

    IPアドレスやボリュームなどを同一Pod内のコンテナで共有しコンテナ間で密に連携するようなアプリケーションの場合は、1つのPodに複数のコンテナを収めたほうが良い。一部のPodが別のノードに配置された場合にコンテナが連携できなくなるなどの影響を抑止できる

  • 3

    ReplicaSetとは?(kubernates)

    どのような時でも事前に指定した数のPodを維持する。Pod数を監視することで、障害が発生しても事前に定義した必要数を満たしてくれる。また、事前に定義するPod数を後から増減することもできる。

  • 4

    Deploymentとは?

    ReplicaSetを管理して、ローリングアップデートやロールバックを実現する。DeploymentとReplicaSetの関係性を整理すると、ReplicaSetはPod数を管理し、DeploymentはそのReplicaSetを管理する。

  • 5

    ローリングアップデートとは?(kubernates)

    少しずつ(全体ではなく1台ずつのイメージ)新しい物に入れ替えるアップデート方法。

  • 6

    Serviceとは?(kubernates)

    Kubernetesのクラスタ内外からのPod宛の通信を仮想IPアドレスで振り分けてくれるリソース。この仮想IPアドレスには、Kubernetesクラスタ内の通信を振り分けできる”ClusterIP”、クラスタ外のロードバランサーに仮想IPアドレスを紐付けできる”LoadBalancer”、特定のKubernetesノードのIPアドレスとポートからの通信を振り分ける”ExternalIP”など、複数の種類がある。サービスディスカバリ”機能がある。

  • 7

    サービスディスカバリ機能とは?(kubernates)

    例えばServiceとLabelで紐付いたPodが別のノードに再配置されても、通信の振り分け先のPodを検索・判別してくれる機能。判別方法にも複数ありますが、代表的なのがDNSを利用した名前解決方法。また、Serviceの仮想IPアドレスとポートとIngress(前回で紹介)が払い出すURLとを紐付けることで、レイヤーの違うロードバランシングをそれぞれ実現できる。

  • 8

    なぜServiceが必要なのか?(kubernates)

    何かしらの障害でPodが停止するとReplicaSetなどによりSelf-Healingされて稼動を継続できるようになっていますが、復活した後のPodに割り振られたIPアドレスが変わってしまい、稼動を停止したPodのIPアドレスにたどり着けず通信が途絶えてしまう問題があります。この問題を解決してくれるのがService。

  • 9

    「PersistentVolume(PV)」、「PersistentVolumeClaim(PVC)」とは?

    Podが停止・再配置されてもアプリケーションの状態を維持するための、Podからマウントする永続なストレージボリューム。 PVはPodのデータを保存する永続ストレージの本体で、PVCは必要なストレージ容量を動的に確保する抽象化したストレージ。

  • 10

    ConfigMapとは?(kubernates)

    Podやコンテナの設定値と設定ファイルを保存するためのリソース。Podの実行時に必要な環境変数、ポート番号などの構成要素をConfigMapによりPodから分離して保存することでワークロードの移植性が向上し、構成の管理や変更が楽になる

  • 11

    RBAC(Role Base Access Control)とは?

    組織内での意味を考慮して、ロールに割り当てる操作そのものにオブジェクト(物)へのアクセス権を設定する。 Kubernetesでは、このRBACを用いてリソースへのアクセス制御を行う。RBACに関連するリソースにはRole、ClusterRole、RoleBinding、ClusterRoleBindingがあり、それぞれ与える影響範囲と機能が異なる。 RoleとClusterRoleは、どのKubernetesのリソースにどのような操作を許可するかを定義し、RoleBindingとClusterRoleBindingは、どのRoleやClusterRoleをどのアカウントに紐付けるかを定義する。

  • 12

    Helmとは?

    Kubernetes向けのパッケージマネージャ。 「Chart」と呼ばれるパッケージテンプレートを用いてソフトウェア構成を定義していく。また、Chartは公式のレジストリで公開されているものであれば、誰でもそれらを利用してKubernetes上にアプリケーションをデプロイできる。なお、自身で作成したChartを公開せずにプライベートレジストリを構築して管理するといった使い方もできる。HelmによってChart化されているアプリケーションであれば、複雑な記述が必要なManifestファイルを用意しなくても、コマンド1つで容易にKubernetes上にアプリケーションをデプロイできるようになる。

  • 13

    パッケージマネージャとは?

    OS上にソフトウェアをインストール/アンインストールする際にソフトウェア間やライブラリとの依存関係を包括管理してくれる。ディストリビューションによって違いはあるが、Linuxでは「yum」や「apt」が有名。

  • 14

    CoreDNSとは?

    CoreDNSはクラウドネイティブなDNSで、KubernetesクラスタにおけるDNSサービス(名前解決およびサービスディスカバリ)を担う。非常に軽量なこと、プラグイン方式を採用することでetcdやhostsなどの様々なバックエンドに設定を格納・管理できる拡張性をもつ。またKubernetesクラスタ内にCoreDNS用のPodを複数展開することで、CoreDNSへのDNSリクエストを分散させて処理能力を向上できるほか、クラスタのSelf-Healing機能を利用して高可用性を確保することもできる

  • 15

    Prometeus(Kubernates)とは?

    Prometeusは監視サーバが自ら監視対象サーバの情報を取得しに行くPull型監視方式を採用する。監視対象のサーバやコンテナに導入するexporterと、監視サーバに入れるPrometheusサーバがある。

  • 16

    exporterとは?(kubernates)

    監視したい対象ごとに分かれて動作する。例えば、監視対象サーバのCPUのリソース情報を取得したい場合には、CPU用のexporterを入れることで監視できる。また、ApacheやTomcatなどのミドルウェアの情報も取得できるなど、監視対象の種類は多岐に渡る。コンテナの場合もexporterを各コンテナに入れることで監視できる

  • 17

    Prometheusサーバとは?

    監視対象から取得した情報の取りまとる。Prometheusサーバには、リソース情報をexporterから取得する役割を持つ「Retrieval」、取得したリソース情報を格納する「Storage」、リソース情報を可視化する「PromQL」の3つのコンポーネントがある。ただし、PromQLは単純なグラフしか出力されず非常に見づらくなっているため、「Grafana」や「Kibana」などサードパーティの可視化ツールを使用してPromQLの欠点を補う

  • 18

    コンテナにPrometheusをインストールする方法とは?(kubernates)

    1つ目はサーバのようにコンテナに組み込んで起動させる方法。しかし、この方法ではコンテナが再起動されるとインストールした情報が消えてしまう。 そこで使われるのが、2つ目のPrometheus専用のpodをそのままデプロイし、クラスタ上で稼動させるという方法。この方法であれば、1つ目の方法の欠点を補うことができる。

  • 19

    Fluentdとは?

    コンテナのログデータ収集で定番。Dockerにはログの転送を補助する「Logging driver」機能を備えている。 Logging driverをFluentdに指定することで、構造化したログデータは一旦Fluentdに送信される。また、Fluentdの出力プラグインを用いて収集したログデータを様々な形式に変換して保存することもでき、保存先には外部のストレージやAmazon S3、Google Cloud Storageといったパブリッククラウドのオブジェクトストレージも指定できる。

  • AWSのしくみと技術がわかる 5

    AWSのしくみと技術がわかる 5

    サラリーマンサラリーマン · 61問 · 1年前

    AWSのしくみと技術がわかる 5

    AWSのしくみと技術がわかる 5

    61問 • 1年前
    サラリーマンサラリーマン

    AWSのしくみと技術がわかる 6

    AWSのしくみと技術がわかる 6

    サラリーマンサラリーマン · 44問 · 1年前

    AWSのしくみと技術がわかる 6

    AWSのしくみと技術がわかる 6

    44問 • 1年前
    サラリーマンサラリーマン

    AWSのしくみと技術が分かる 7,8

    AWSのしくみと技術が分かる 7,8

    サラリーマンサラリーマン · 73問 · 1年前

    AWSのしくみと技術が分かる 7,8

    AWSのしくみと技術が分かる 7,8

    73問 • 1年前
    サラリーマンサラリーマン

    AWS 基礎からのネットワークサーバー 1

    AWS 基礎からのネットワークサーバー 1

    サラリーマンサラリーマン · 8問 · 1年前

    AWS 基礎からのネットワークサーバー 1

    AWS 基礎からのネットワークサーバー 1

    8問 • 1年前
    サラリーマンサラリーマン

    AWS 基礎からのネットワークサーバー 2,3,4

    AWS 基礎からのネットワークサーバー 2,3,4

    サラリーマンサラリーマン · 75問 · 1年前

    AWS 基礎からのネットワークサーバー 2,3,4

    AWS 基礎からのネットワークサーバー 2,3,4

    75問 • 1年前
    サラリーマンサラリーマン

    AWS基礎からのネットワークandサーバー構築 5,6,7,8

    AWS基礎からのネットワークandサーバー構築 5,6,7,8

    サラリーマンサラリーマン · 61問 · 1年前

    AWS基礎からのネットワークandサーバー構築 5,6,7,8

    AWS基礎からのネットワークandサーバー構築 5,6,7,8

    61問 • 1年前
    サラリーマンサラリーマン

    AWS基礎からのネットワークandサーバー構築 9

    AWS基礎からのネットワークandサーバー構築 9

    サラリーマンサラリーマン · 15問 · 1年前

    AWS基礎からのネットワークandサーバー構築 9

    AWS基礎からのネットワークandサーバー構築 9

    15問 • 1年前
    サラリーマンサラリーマン

    AWSコンテナ入門1

    AWSコンテナ入門1

    サラリーマンサラリーマン · 100問 · 1年前

    AWSコンテナ入門1

    AWSコンテナ入門1

    100問 • 1年前
    サラリーマンサラリーマン

    AWSコンテナ入門2

    AWSコンテナ入門2

    サラリーマンサラリーマン · 47問 · 1年前

    AWSコンテナ入門2

    AWSコンテナ入門2

    47問 • 1年前
    サラリーマンサラリーマン

    AWSコンテナ入門3

    AWSコンテナ入門3

    サラリーマンサラリーマン · 100問 · 1年前

    AWSコンテナ入門3

    AWSコンテナ入門3

    100問 • 1年前
    サラリーマンサラリーマン

    AWSコンテナ設計・構築3 続き

    AWSコンテナ設計・構築3 続き

    サラリーマンサラリーマン · 17問 · 1年前

    AWSコンテナ設計・構築3 続き

    AWSコンテナ設計・構築3 続き

    17問 • 1年前
    サラリーマンサラリーマン

    AWSコンテナ入門4

    AWSコンテナ入門4

    サラリーマンサラリーマン · 60問 · 1年前

    AWSコンテナ入門4

    AWSコンテナ入門4

    60問 • 1年前
    サラリーマンサラリーマン

    AWSコンテナ入門5

    AWSコンテナ入門5

    サラリーマンサラリーマン · 23問 · 1年前

    AWSコンテナ入門5

    AWSコンテナ入門5

    23問 • 1年前
    サラリーマンサラリーマン

    インフラエンジニアの教科書2 1 改訂

    インフラエンジニアの教科書2 1 改訂

    サラリーマンサラリーマン · 49問 · 1年前

    インフラエンジニアの教科書2 1 改訂

    インフラエンジニアの教科書2 1 改訂

    49問 • 1年前
    サラリーマンサラリーマン

    インフラエンジニアの教科書2 2 改訂

    インフラエンジニアの教科書2 2 改訂

    サラリーマンサラリーマン · 100問 · 1年前

    インフラエンジニアの教科書2 2 改訂

    インフラエンジニアの教科書2 2 改訂

    100問 • 1年前
    サラリーマンサラリーマン

    インフラエンジニアの教科書2 改訂続き

    インフラエンジニアの教科書2 改訂続き

    サラリーマンサラリーマン · 75問 · 1年前

    インフラエンジニアの教科書2 改訂続き

    インフラエンジニアの教科書2 改訂続き

    75問 • 1年前
    サラリーマンサラリーマン

    AWSの全部わかる教科書 1,2,3

    AWSの全部わかる教科書 1,2,3

    サラリーマンサラリーマン · 71問 · 1年前

    AWSの全部わかる教科書 1,2,3

    AWSの全部わかる教科書 1,2,3

    71問 • 1年前
    サラリーマンサラリーマン

    AWSの全部わかる教科書 4

    AWSの全部わかる教科書 4

    サラリーマンサラリーマン · 21問 · 1年前

    AWSの全部わかる教科書 4

    AWSの全部わかる教科書 4

    21問 • 1年前
    サラリーマンサラリーマン

    ゼロからわかるlinuxコマンド1

    ゼロからわかるlinuxコマンド1

    サラリーマンサラリーマン · 100問 · 1年前

    ゼロからわかるlinuxコマンド1

    ゼロからわかるlinuxコマンド1

    100問 • 1年前
    サラリーマンサラリーマン

    問題一覧

  • 1

    Podとは?(kubernates)

    kubernatesでのコンテナの起動単位。固有の仮想IPアドレスが割り当てられ、Pod内のコンテナはIPアドレスやポート、ネットワーク名前空間をそれぞれ共有する。ボリュームも共有できることです(後述)。より正確には、Podに共有化されたストレージボリュームを指定することで、Pod内の全てのコンテナがそのストレージにアクセスできるようになる。

  • 2

    1Pod1コンテナではないパターンとは?

    IPアドレスやボリュームなどを同一Pod内のコンテナで共有しコンテナ間で密に連携するようなアプリケーションの場合は、1つのPodに複数のコンテナを収めたほうが良い。一部のPodが別のノードに配置された場合にコンテナが連携できなくなるなどの影響を抑止できる

  • 3

    ReplicaSetとは?(kubernates)

    どのような時でも事前に指定した数のPodを維持する。Pod数を監視することで、障害が発生しても事前に定義した必要数を満たしてくれる。また、事前に定義するPod数を後から増減することもできる。

  • 4

    Deploymentとは?

    ReplicaSetを管理して、ローリングアップデートやロールバックを実現する。DeploymentとReplicaSetの関係性を整理すると、ReplicaSetはPod数を管理し、DeploymentはそのReplicaSetを管理する。

  • 5

    ローリングアップデートとは?(kubernates)

    少しずつ(全体ではなく1台ずつのイメージ)新しい物に入れ替えるアップデート方法。

  • 6

    Serviceとは?(kubernates)

    Kubernetesのクラスタ内外からのPod宛の通信を仮想IPアドレスで振り分けてくれるリソース。この仮想IPアドレスには、Kubernetesクラスタ内の通信を振り分けできる”ClusterIP”、クラスタ外のロードバランサーに仮想IPアドレスを紐付けできる”LoadBalancer”、特定のKubernetesノードのIPアドレスとポートからの通信を振り分ける”ExternalIP”など、複数の種類がある。サービスディスカバリ”機能がある。

  • 7

    サービスディスカバリ機能とは?(kubernates)

    例えばServiceとLabelで紐付いたPodが別のノードに再配置されても、通信の振り分け先のPodを検索・判別してくれる機能。判別方法にも複数ありますが、代表的なのがDNSを利用した名前解決方法。また、Serviceの仮想IPアドレスとポートとIngress(前回で紹介)が払い出すURLとを紐付けることで、レイヤーの違うロードバランシングをそれぞれ実現できる。

  • 8

    なぜServiceが必要なのか?(kubernates)

    何かしらの障害でPodが停止するとReplicaSetなどによりSelf-Healingされて稼動を継続できるようになっていますが、復活した後のPodに割り振られたIPアドレスが変わってしまい、稼動を停止したPodのIPアドレスにたどり着けず通信が途絶えてしまう問題があります。この問題を解決してくれるのがService。

  • 9

    「PersistentVolume(PV)」、「PersistentVolumeClaim(PVC)」とは?

    Podが停止・再配置されてもアプリケーションの状態を維持するための、Podからマウントする永続なストレージボリューム。 PVはPodのデータを保存する永続ストレージの本体で、PVCは必要なストレージ容量を動的に確保する抽象化したストレージ。

  • 10

    ConfigMapとは?(kubernates)

    Podやコンテナの設定値と設定ファイルを保存するためのリソース。Podの実行時に必要な環境変数、ポート番号などの構成要素をConfigMapによりPodから分離して保存することでワークロードの移植性が向上し、構成の管理や変更が楽になる

  • 11

    RBAC(Role Base Access Control)とは?

    組織内での意味を考慮して、ロールに割り当てる操作そのものにオブジェクト(物)へのアクセス権を設定する。 Kubernetesでは、このRBACを用いてリソースへのアクセス制御を行う。RBACに関連するリソースにはRole、ClusterRole、RoleBinding、ClusterRoleBindingがあり、それぞれ与える影響範囲と機能が異なる。 RoleとClusterRoleは、どのKubernetesのリソースにどのような操作を許可するかを定義し、RoleBindingとClusterRoleBindingは、どのRoleやClusterRoleをどのアカウントに紐付けるかを定義する。

  • 12

    Helmとは?

    Kubernetes向けのパッケージマネージャ。 「Chart」と呼ばれるパッケージテンプレートを用いてソフトウェア構成を定義していく。また、Chartは公式のレジストリで公開されているものであれば、誰でもそれらを利用してKubernetes上にアプリケーションをデプロイできる。なお、自身で作成したChartを公開せずにプライベートレジストリを構築して管理するといった使い方もできる。HelmによってChart化されているアプリケーションであれば、複雑な記述が必要なManifestファイルを用意しなくても、コマンド1つで容易にKubernetes上にアプリケーションをデプロイできるようになる。

  • 13

    パッケージマネージャとは?

    OS上にソフトウェアをインストール/アンインストールする際にソフトウェア間やライブラリとの依存関係を包括管理してくれる。ディストリビューションによって違いはあるが、Linuxでは「yum」や「apt」が有名。

  • 14

    CoreDNSとは?

    CoreDNSはクラウドネイティブなDNSで、KubernetesクラスタにおけるDNSサービス(名前解決およびサービスディスカバリ)を担う。非常に軽量なこと、プラグイン方式を採用することでetcdやhostsなどの様々なバックエンドに設定を格納・管理できる拡張性をもつ。またKubernetesクラスタ内にCoreDNS用のPodを複数展開することで、CoreDNSへのDNSリクエストを分散させて処理能力を向上できるほか、クラスタのSelf-Healing機能を利用して高可用性を確保することもできる

  • 15

    Prometeus(Kubernates)とは?

    Prometeusは監視サーバが自ら監視対象サーバの情報を取得しに行くPull型監視方式を採用する。監視対象のサーバやコンテナに導入するexporterと、監視サーバに入れるPrometheusサーバがある。

  • 16

    exporterとは?(kubernates)

    監視したい対象ごとに分かれて動作する。例えば、監視対象サーバのCPUのリソース情報を取得したい場合には、CPU用のexporterを入れることで監視できる。また、ApacheやTomcatなどのミドルウェアの情報も取得できるなど、監視対象の種類は多岐に渡る。コンテナの場合もexporterを各コンテナに入れることで監視できる

  • 17

    Prometheusサーバとは?

    監視対象から取得した情報の取りまとる。Prometheusサーバには、リソース情報をexporterから取得する役割を持つ「Retrieval」、取得したリソース情報を格納する「Storage」、リソース情報を可視化する「PromQL」の3つのコンポーネントがある。ただし、PromQLは単純なグラフしか出力されず非常に見づらくなっているため、「Grafana」や「Kibana」などサードパーティの可視化ツールを使用してPromQLの欠点を補う

  • 18

    コンテナにPrometheusをインストールする方法とは?(kubernates)

    1つ目はサーバのようにコンテナに組み込んで起動させる方法。しかし、この方法ではコンテナが再起動されるとインストールした情報が消えてしまう。 そこで使われるのが、2つ目のPrometheus専用のpodをそのままデプロイし、クラスタ上で稼動させるという方法。この方法であれば、1つ目の方法の欠点を補うことができる。

  • 19

    Fluentdとは?

    コンテナのログデータ収集で定番。Dockerにはログの転送を補助する「Logging driver」機能を備えている。 Logging driverをFluentdに指定することで、構造化したログデータは一旦Fluentdに送信される。また、Fluentdの出力プラグインを用いて収集したログデータを様々な形式に変換して保存することもでき、保存先には外部のストレージやAmazon S3、Google Cloud Storageといったパブリッククラウドのオブジェクトストレージも指定できる。