Kubernetes は面白そうだったので(ギリシャ人なら名前に問題があると思うでしょうが)、ずっと学びたいと思っていましたが、クラスターで何も実行していなかったため、その機会がありませんでした。最近、仕事でKubernetes関連のことに携わるようになったので、機会を見て調べてみたのですが、現状の情報(公式チュートリアルも含め)が長すぎて無理があり、最初は少しイライラしました。 数日間の調査を経て、Kubernetes のコアコンセプトを徐々に理解し、本番環境にデプロイしました。私の履歴書には「Kubernetes エキスパート」と記載されていたので、すぐにあるアイデアが浮かびました。システムに関する私の幅広い理解と、何時間もの調査から得た知識を、もっと多くの人に公開したらどうだろう、と。もう一度、まとまりのない記事を書かないように自分を納得させることができませんでしたが、すぐに次のことに気付きました。 既存の記事に関して私が抱えていた主な問題は、詳細に入る前に、これらのコンポーネントが何であるか、それらがどのように組み合わされているかについての概要をまとめたものが見つからなかったことです。 この高度なプレゼンテーション方法は私にとって学習に最適な方法です。私はこのように書きましたが、あなたにも効果があることを願っています。 Kubernetes の仕組みをわかりやすく説明した専門家による記事やチュートリアルをご存知でしたら、私に教えないでください。必要なときにあなたがいてくれて、私が記事を書いたときにあなたがもっと早く公開してくれなかったからです。 また、私が Kubernetes を学習し始めてまだ 1 週間ほどなので、あまり詳細な内容にはならず、不正確な部分もあるかもしれませんが、間違いがないように願っています。また、ここでの情報は、シンプルなクラスターを実行できる程度には十分なはずです。 そうは言っても、結局のところ、Kubernetes の概念は非常に単純であることがわかりましたが、まだ知らないことがたくさんあることは確かです。しかし、私が知っていたことは、クラスターをセットアップしてその上でアプリを実行するには十分であり、ほとんどの人にとって開始方法を知るのに十分であると確信しています。 基本概念 まず最初に、Kubernetes のさまざまな部分を詳しく見ていく必要があります。
これらはすべて、コマンドラインから kubectl を使用して作成できますが、より安全には、デプロイする内容の定義と詳細が含まれる YAML ファイル ( kubectl apply -f <yaml ファイル> を実行) を介して作成することもできます。 大まかに言うと、コンテナをポッドに配置します。ポッドはデプロイメントによって作成およびデプロイされ、そのネットワークはサービスによって処理され、外部からサーバーにアクセスできるようにイングレスを追加します。 これらの各セクションを 1 つずつ確認して、YAML 構成がどのようになっているかを確認してみましょう。 ポッド コンテナ内で Redis イメージを実行するポッドの YAML 構成を見てみましょう。 Pod は永続的ではないため、直接使用することはほとんどないことを覚えておいてください。 代わりに、デプロイメントを使用して間接的にポッドをデプロイします。これについては次に説明します。 以下の設定例は変更専用です。 ただ眺めて、その美しさに驚嘆しながら読み続けるだけです。 ご覧のとおり、非常に簡単です。Kubernetes 固有のものをいくつか追加し、それぞれをコピーして貼り付けるだけです。次に、この構成が Pod 用であることを宣言し、名前を付け、その中で実行されるコンテナーとそれらがリッスンするポートを指定して、ファイル全体を削除すれば、準備完了です。 Pod の詳細については、Kubernetes の公式ドキュメントを参照してください。 展開 ここでは、Deployment を使用して上記の Pod を実際に実行する方法を説明します。 上記の Pod 構成にはまったく注意を払う必要はありません。デプロイメントで再定義します。 これは主に上記の Pod 構成ですが、レプリカなどの追加の構成がいくつか含まれていることに気付くでしょう。これらは、デプロイメントの名前と、デプロイするレプリカの数を定義します。 レプリカの数を変更すると、テンプレート セクションで指定されたポッドがさらにデプロイされます。 デプロイメントの詳細については、Kubernetes の公式ドキュメントを参照してください。 サービス Pod がデプロイされたので、そのポートをクラスターの残りの部分に公開する必要があります。 Deployment の containerPort ディレクティブは Docker ポートを公開しますが、実際にはホスト上のポートを転送しないため、複数の Pod (同じ Pod 内のコンテナではない) が競合することなく同じポートを使用できます。 上記のポートをクラスター上で実行されている他のポッドに実際に公開するには、そのためのサービスを作成する必要があります。 これにより、ポートを転送するために必要なルールが作成され、このポッドの IP を解決するために使用できる DNS エントリが提供されます。 これにより、Redis ポートがクラスター内の他の Pod に公開され、my-service:6379 経由で接続できるようになります。 アプリケーションのさらに多くの部分をデプロイするには、別のデプロイメントと関連するサービスをクラスターに追加するだけです。 上記の Redis とまったく同じ方法でメイン アプリケーション サービスをデプロイできます。 イングレス 最後に、Ingress を使用してサービスをインターネットに公開できます。 以下は Traefik を使用した例です。Redis を外部に公開したくないかもしれませんが、同じアプローチが独自のアプリケーションにも適用されます。 この構成セクションでは、Traefik に対して、redis.yourdomain.com という名前のホスト上のすべてのトラフィックをサービス ポート 6379 に転送するように指示します。私の知る限り、これは Traefik のみの設定です。 設定を適用すると、Pod は redis.yourdomain.com 上の Traefik 経由でインターネットに公開されます。 この記事が初心者にとって役立つことを願っています。 Kubernetes の基礎は短いため、この投稿も短いものとなりましたが、最小限の手間でサービスを実行する方法については説明できました。 これで、Kubernetes が何であるかが理解できたはずです。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: Windows で MySQL 5.7.17 をインストールし、エンコードを utf8 に設定する方法
>>: WebStormはVue3統合APIのソリューションを正しく識別できません
mysql コマンドを使用して MySQL サーバーに接続します。 MySQL サーバーが起動したら...
Vue 言語と要素コンポーネントを使用して、コード コンテンツの入力を必要とし、ハイライト表示が可能...
この記事では、検証コード機能を実装するためのvue+spring bootの具体的なコードを例として...
1. Kali Linuxシステムのバージョンを確認するコマンド: cat /etc/issue 2...
1. SSHリモート管理SSH の定義SSH (Secure Shell) は、主にキャラクタ イン...
目次序文標準的なSFCの書き方スクリプト設定可変露出部品の取り付け小道具カスタムイベント要約する序文...
この記事では、例を使用して、MySQL 外部キーの 3 つの関係について説明します。ご参考までに、詳...
序文Docker イメージは Dockerfile といくつかの必要な依存関係で構成され、Docke...
この記事では、ユーザーのログイン切り替えを実現するためのVueの具体的なコードを例として紹介します。...
目次1. コンポーネント通信1. Props 親コンポーネント ---> 子コンポーネント通信...
会社から、負荷を実装するためにnginxをベースにFordプロジェクトのWebServiceサーバー...
では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...
目次シナリオ解決してみる解決するシナリオ今日、コンポーネントの双方向データバインディングにv-mod...
1. まず、公式ウェブサイト https://www.python.org/downloads/so...
目次1. 基本原則2. 特定のコード要約する1. 基本原則まず、生放送エリアを10の部分に分割し(個...