プログラミング学習サイト

プログラミングの学習を開始される方を対象としたプログラミング入門サイトです。

Kubernetes入門

Kubernetes 入門

Docker入門 関連記事 Kubernetesのクラスタの全体像 Kubernetesのクラスタの構成要素 Kubernetesのコントロールプレーンについて コントロールプレーンの障害対応 コントロールプレーンの障害対応 ノードのコンポーネント ワーカーノードの障害体制 Docker入…

Kubernetesでプリエンプト可能なノードを設定する

プリエンプト可能なノード(またはスポットインスタンス)とは何か? スポットインスタンスは、AWSの未使用のコンピューティング容量(スポットキャパシティ)を利用して低価格でインスタンスを起動することができる特殊なインスタンスタイプです。 低価格:…

Kubernetesのラベルの使い方

kubernetesにおいて、Labelとは、Podなどのオブジェクトに付加されるキーとバリューのセットの事です。 (要はpythonでいう辞書型、ほかの言語だと連想配列のこと) このLabelはKubernetes側から参照することはありませんが、ユーザーがPodを識別するコマン…

Kubernetesのバックアップ(Velero)【Kubernetes入門】

バックアップ体制 Kubernetesは宣言的なIaCです。 これに乗っ取れば、すべてのKuberentesリソースを記述するデータは、kubernetesが保有するデータベースetcdに保存されます。 このetcdを絶対的に正とする運用により、Kubernetes内の一部のDeploymentsをあな…

Kubernetesにおけるセキュリティスキャン【Kubernetes入門】

セキュリティスキャン クラスタのPod内部の脆弱性は、たとえあなたが作成したコンテナイメージであっても常に発生しうるものになってます。 例えば、Wordpressのフレームワークを使用しているコンテナはWordpressそのものに脆弱性が含まれるため、常に攻撃の…

Kubernetesにおけるロール設定

Kubernetesにおけるセキュリティ、アクセス制御の仕組みについて解説します。 アクセス制御はなぜ必要なのか? スタートアップ企業や、エンジニアリング組織の立ち上げ期では、数名の社員から始まることが多く、権限管理についても比較的緩やかな管理になりま…

Kubernetesのコンテナのセキュリティ対策【Kubernetes基礎】

[contents:] コンテナのセキュリティとは、攻撃者がコンテナ内部に侵入しても問題ない状態を作り上げておかなければなりません。 プログラムには脆弱性が付きまといます。 これを任意の権限をもつユーザー(rootユーザー)が悪用できる状況になった場合、最…

KubernetesのPodでセキュリティを強化する

[contents:] コンテナのセキュリティ コンテナのセキュリティとは、攻撃者がコンテナ内部に侵入しても問題ない状態を作り上げておかなければなりません。 プログラムには脆弱性が付きまといます。 これを任意の権限をもつユーザー(rootユーザー)が悪用でき…

kubernetesのリソースマニフェストは自動生成できる

kubernetesのリソースマニフェストは自動生成できる kubectlを使用してYAMLマニュフェストを生成することで、リソースマニュフェストを0から書く心配はなくなります。 コマンドは--dry-runオプションと-o yamlオプションをkubectl createコマンドにつけるだ…

KubernetesのPodとコンテナの違いは何か?

KubernetesのPodとコンテナの違いは何か? Podオブジェクトとは単一のコンテナまたはコンテナのグループを表し、Kubernetesで何を実行する場合でもPodを使用して実行されます。 別の言葉を使えば、Podとは同じ実行環境上で動くアプリケーションコンテナとスト…

kubectlでコンテナ内部に入り、任意のコマンドを実行する【Kubernetes入門】

kubectlでコンテナ内部に入る方法 kubernetesではコンテナの内部に入り、linuxコマンドを打てる環境を用意してくれます。より正確にいうと、コンテナに対してssh接続しているかのようにシェルを起動できるのです。 ローカルマシン上でPodを動かしていて、動…

Kubernetesのログ出力コマンド(kubectl log)【Kubernetes 入門】

コンテナの内部で起こるエラーは、通常のLinux,Windowsサーバー内のログを確認する作業比べて, 何が起こっているかを把握することが難しくなります。 Kubernetesでは、kubectlコマンドを使用することで、より効果的な使用方法が見つかるでしょう。 logsコマ…

kubernetesのgetコマンドオプション一覧

kubernetesのgetコマンド詳細 kubectl getコマンドはリソースの情報を表示することが出来ます。 kubectl get pods kubectl get pods NAME READY STATUS RESTARTS AGE hello-world 0/1 Completed 0 16d nginx-deployment-7c6b5bc4c7-6fh9m 1/1 Running 3 (158…

kubectlコマンドの省略形一覧

kubernetesのコマンドは長くなりがちですが、実は省略形も存在します。 今回はリソースタイプの省略形、自動補完機能、フラグの省略形をお伝えします。 リソースタイプの省略形 kubectlコマンドでよく使われるのは、リソース名(Pod, Deployment, Service, Na…

Kubernetesのクラスタのサイズの最小値と最大値

クラスタの作成当初に必要なキャパシティを推定する方法は、同じアプリケーションを実行するために必要な台数を数えることです。 例えば、5つのクラウドインスタンスで実行しているのであれば、Kubernetesクラスタで同じワークロードを実行する場合には5つ以…

KubernetesのNamespaceリソースとは何か?

KubernetesのNamespaceリソースとは何か? 一台のマシンに複数の環境を構築する場合、どのようにリソースを分配すれば良いのでしょうか? クラスター単位でリソースの使用状況を管理するためにはNamespaceの使用が有効です。 例えば、以下のように環境ごとにna…

Kubernetesでのヘルスチェック方法

Kubernetesでのヘルスチェック方法 Kubernetesではコンテナのスペック管理の一部として、Liveness Probe(ライブネスプローブ)を利用できます。 言い換えればヘルスチェックが利用可能です。 Liveness は動作の確認。 Prove は証明という意味です。 HTTPサー…

kubernetesのリソース管理(limits,requests)

リソースの管理 Kubernetesの各PodのCPU使用量はCPU単位であらわされます。 これは各クラウドベンダーのCPU単位に相当します。つまり、Kuberentesの1Podは AWSのvCPU GCPの1Core AzureのvCore などであらわされます。 しかし、Kubernetesの1つのPodが一つのC…

KubernetesのServiceリソースとは何か?

Serviceリソース Serviceリソースは単一の変化しないIPアドレス、またはDNSを付与することができ、任意の対応するPodへ自動的にルーティングさせることが出来ます。 ServiceはWebプロキシやロードバランサのようなものと考えることができ、バックエンドであ…

KubernetesのReplicaSetとは何か?

ReplicaSetとは ユーザーはReplicaSetを理解している必要はなく、Deploymentの挙動を把握している必要があります。 ですが、ReplicaSetの挙動を把握しておくことは実運用上のトラブルシューティングなどで役に立つことがあります。 ReplicaSetの仕事は、Depl…

Kubernetesのクラウド選定(Google vs Microsoft vs Amazon)

Kubernetesのクラウド選定(Google vs Microsoft vs Amazon) ベンダロックインは発生しない kubernetesはクラウドプラットフォームの技術的な詳細を抽象化して隠してくれます。 つまり、AzureやGCPなどのプラットフォームで実行しているサーバーは、別のクラ…

kuberenetesをオンプレミス環境に構築するデメリット

kubernetesはオンプレか?クラウドか? kubernetesをオンプレミス環境に構築するメリット kubernetesの環境を準備する際に、最もベーシックとなる方法はオンプレミス環境への構築です。 (またの名をセルフホスティングといいます。) これはkubernetesのソフ…

Kubernetes Podとは何か? 【Podの作成、取得、削除方法を解説】

Podとは Podとは、一つ以上のコンテナのグループを表すKubernetesオブジェクトのことです。 Podはクジラの小さい群れを表す言葉であり、派生してKubernetesのPodはコンテナのグループを表しています。 Podを作成してみる 以下helloworldコンテナの作成。 kub…

Kubernetes Deploymentsとは何か?

Deployment Kubernetesではスーパバイス(監視、監督)する必要がある個々のプログラムに対して、Deploymentオブジェクトが作成されます。 Deploymentオブジェクトは以下の情報から構成されます。 コンテナイメージ名 実行したいレプリカの数 その他コンテナ…

Kubernetesのクラスタの全体像

Docker入門 関連記事 Kubernetesのクラスタの全体像 Kubernetesのクラスタの構成要素 Kubernetesのコントロールプレーンについて コントロールプレーンの障害対応 コントロールプレーンの障害対応 ノードのコンポーネント ワーカーノードの障害体制 Docker入…