kubernetes-learning-path - Kubernetes をゼロから学習するためのロードマップ (初級から上級レベル)

(A roadmap to learn Kubernetes from scratch (Beginner to Advanced level))

Created at: 2022-11-16 13:02:58
Language: NULL

星を打つ!

このリポジトリを参照に使用する予定がある場合は、星を押してください。感謝!

Kubernetes ラーニング ロードマップ

🚀CKA、CKAD、CKS、またはKCNA試験の志願者は、コードDCUBEOFFERを使用して今日60ドル節約できます https://kube.promo/devops。これは、Linux Foundationからの期間限定のオファーです。

前提 条件

Kubernetes アーキテクチャを学ぶ

次の図は、高レベルの kubernetes アーキテクチャと、外部サービスがクラスターに接続する方法を示しています。

アーキテクチャ

Kubernetes アーキテクチャについては、以下のドキュメントを参照してください。

クラスターを起動するための$ 1000 +無料クラウドクレジット

クラウドで大規模なクラスターを起動すると、コストがかかる可能性があります。したがって、利用可能なクラウドクレジットを利用して、実際のプロジェクトで作業しているかのようにクラスターのデプロイを練習します。すべてのクラウドプラットフォームは、マネージドKubernetesサービスを提供します。

Learn Kubernetes Cluster Setup & Administration

DevOps エンジニアとして、各コンポーネントとクラスター構成を完全に理解することは、運用環境で作業するために不可欠です。Kubernetes クラスターをデプロイする方法はさまざまですが、マルチノード クラスターを最初から設定する方法を学ぶことをお勧めします。これにより、高可用性、スケーリング、ネットワークなどの概念に関する知識を習得し、実際のプロジェクトをシミュレートできます。

さらに、マルチノードクラスターの構成を習得することは、面接や能力への自信の構築に役立ちます。Kubernetes クラスターを確立するための推奨される方法を次に示します。

以下は、重要なクラスタ管理タスクの一部です。

クベコンフィグファイルを理解する

DevOps エンジニアは、Kubeconfig ファイルに精通することが重要です。CI/CD システムのクラスター認証の設定、開発者へのクラスター アクセスの提供などのタスクにとって非常に重要です。

Kubeconfig ファイルは、Kubernetes クラスターに接続するための情報と資格情報を格納する YAML ファイルです。kubectl やその他のクライアント ライブラリなどのコマンド ライン ツールで、クラスターとの認証とリソースとの対話に使用されます。

Kubeconfigファイルは、複数のクラスタとユーザーの情報を格納するために使用でき、ユーザーは異なるクラスタとコンテキストを簡単に切り替えることができます。これは、Kubernetes クラスターへのアクセスを管理し、Kubernetes クラスターと対話するための重要なツールです。

Kubeconfig ファイルの詳細については、次のドキュメントを参照してください。

Kubernetes のオブジェクトとリソースを理解する

Kubernetes では、オブジェクトはクラスター内の永続化されたエンティティであり、システムの望ましい状態を表します。これは Kubernetes API サーバーによって作成および管理され、etcd キー値ストアに格納されます。Kubernetes オブジェクトの例としては、ポッド、サービス、デプロイなどがあります。

ポッドオブジェクトの例を次に示します

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

リソースは、Kubernetes API によって公開される Kubernetes オブジェクトの表現です。これは、クライアントがクラスター内のオブジェクトを操作および操作するための方法です。

リソースとは、オブジェクトへのアクセスに使用される特定の API URL を指します。リソースは通常、GET、POST、DELETE などの HTTP 動詞を使用して Kubernetes API を介してアクセスされます。たとえば、このリソースを使用して、v1 Pod オブジェクトのリストを取得できます。さらに、個々の v1 Pod オブジェクトをリソースから取得できます。

/api/v1/pods
/api/v1/namespaces/namespace-name/pods/pod-name

Pod と関連リソースについて学ぶ

<--進行中-->

ポッド依存オブジェクトの詳細

<--進行中-->

エンドツーエンドのアプリケーションを Kubernetes にデプロイする

<--進行中-->

Kubernetes クラスターのセキュリティ保護について学習する

<--進行中-->

Kubernetes オペレーター パターンについて学習する

<--進行中-->

重要な Kubernetes 構成について学習する

<--進行中-->

Kubernetes のベスト プラクティスを学ぶ

<--進行中-->

Learn Kubernetes Logging & Monitoring

<--進行中-->

Kubernetes の本番環境のベスト プラクティス/学習内容を学ぶ

実際の Kubernetes のケーススタディ

実際のKubernetesの経験がない場合は、kubernetesを使用している他社のケーススタディを読むことをお勧めします。

Kubernetes テンプレート ツールを学ぶ

Helm と Kustomize はどちらも、Kubernetes マニフェストの管理に使用されるツールです。それらは多くの点で似ていますが、いくつかの重要な違いがあります。

Helm は、ユーザーが Kubernetes クラスターにアプリケーションを簡単にインストール、管理、アップグレードできるようにする Kubernetes のパッケージ マネージャーです。これは、簡単にデプロイ、アップグレード、ロールバックできるKubernetesリソースの事前構成されたセットである「チャート」と呼ばれる概念を使用します。

一方、Kustomizeは、ユーザーが既存のKubernetesマニフェストをカスタマイズおよび構成できるようにするツールです。既存のマニフェストに適用できる「パッチ」と呼ばれる概念を使用して、さまざまな環境やユースケースに合わせてカスタマイズできます。Helmとは異なり、Kustomizeにはバージョン管理とロールバックのサポートが組み込まれておらず、「パッケージ」または「リポジトリ」の概念もありません。

Kubernetes Deployment Tools (GitOps ベース)

GitOps は、宣言型インフラストラクチャとアプリケーション コードの信頼できる唯一の情報源として Git を使用する継続的デプロイへのアプローチです。

  • GitOps公式ドキュメントのガイド

アプリケーションを Kubernetes クラスターにデプロイするための一般的な GitOps ベースのツールには、次のようなものがあります。