Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@roko18366758

Kubernetesのサーバ構成、アプリケーションの構成を基礎をまとめる

Kubernetesとは?

複数のホストを束ねてDockerを利用するためのオーケストレーションツール。
分散環境において、透過的にコンテナにアクセスすることができる。

Kubernetesの主な機能

  • 複数サーバでのコンテナ管理
  • コンテナ間のネットワーク管理
  • コンテナの負荷分散
  • コンテナの監視
  • 無停止でのアップデート

Kubernetesのサーバ構成

スクリーンショット 2020-05-31 11.31.23.png

マスターサーバ

Kubernetesクラスタ内のコンテナを操作するサーバ。
コマンドを使って、クラスタの構成やリソース操作をする。
複数台からなる分散したノードをまとめて管理することができる。

バックエンドデータベース

etcdと呼ばれる分散キーバリューストア(KVS)を使って、クラスタの構成情報を管理。
クラスタを構築するための設定情報が書き込まれている。
マスターサーバ上に構築するケースもある。

ノード

実際に、Dockerコンテナを動作させるサーバ。

アプリケーションの構成管理

Pod

Kubernetesでは、複数のコンテナをまとめて「Pod」として管理する。

  • Podがアプリケーションのデプロイの単位になり、Podの単位でコンテナの作成、開始、停止、削除などの操作を行う。 そのため、Webフロントサーバとデータベースサーバなどの役割の異なる機能を1つのPodに格納してはいけない。
  • Pod内の複数のコンテナで仮想NICを共有する構成をとるため、コンテナ同士がlocalhost経由で通信できる。
  • 共有ディレクトリを介してログ情報をやりとりすることもできる。
  • ノードの中には、複数のPodが配置

ReplicaSet

Kubernetesクラスタ上であらかじめ指定されたPodを作成/起動しておく仕組み
= 「クラス上に決められた数のPodを必ず起動しておくもの」

  • ReplicaSetは起動中のPodを監視し、障害など何らかの理由で停止してしまった場合、該当のPodを削除し、新たなPodを起動  = Podが必要な数だけ起動した状態をクラスタ内に作る役目
  • クラスタ内にPodをいくつ起動しておくかの値を「レプリカ数」と呼ぶ
  • Podの数を動的に変更してオートスケールを実現することも可能
  • ReplicaSetにより、アプリケーション開発者はデプロイしたPodがどのような状態かを気にすることが必要なく、常に指定した個数だけPodが起動した状態をKubernetesが維持してくれる

Deployment

PodとReplicaSetをまとめたもので、ReplicaSetの履歴を管理する。

  • ReplicaSetのテンプレートを持って、それでReplicaSetを作る。
  • 履歴を管理できるので、バージョンを戻すっていったこともできる
  • ReplicaSetの作成や更新を定義する

ネットワークの管理

Kubernetesクラスタ内で起動したPodに対して、外部からアクセスするときはサービスを定義する
サービスはKubernetesのネトワークを管理するもの。

サービスによって割り当てられるIPアドレスには、ClusterIPとExternalIPがある。

Cluster IP

クラスタ内のPod同士で通信するためのプラベートIPアドレス。
クラスタ内のPodからClusterIPに向けたバケットは、後述するノード上のProxyデーモンを受け取って、宛先のPodに転送される。

External IP

外部のクライアントから接続するためのパブリックIPアドレス。
新規にPodを起動すると、既存のサービスのIPアドレスとポート番号は、環境変数として参照できるようになる。

Labelによるリソースの識別

Kubernetesではリソースを識別するためにランダムな名前が内部で自動に付与される。
それだと、わかりにくいので、Labelを付けて管理ができます。

参考

プログラマのためのDocker教科書

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
roko18366758
都内で、WEBエンジニアとして働くゆるふわ女子です。 勉強のメモなどを残していく予定です、、、、。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?