序文Kubernetes では、コンテナは Pod でデプロイおよび管理されます。 Pod は、Kubernetes オブジェクト モデル内で作成、デプロイ、管理できる最小かつ最もシンプルな単位です。ここでは、単一のポッド内で異なるコンテナ タイプを使用して、特定の機能を実装できます。 Kubernetes で使用される一般的なコンテナ タイプを次に示します。
初期化コンテナPod では、アプリケーションを実行するために複数のコンテナを実行できますが、アプリケーション コンテナが起動する前に実行される 1 つ以上の init コンテナも実行できます。 Init コンテナは、メイン アプリケーション コンテナが起動する前に初期化タスクを実行するように設計されています。これらは、構成ファイルの設定、データベースの初期化、外部サービスの準備完了の待機などのタスクに使用できます。 Init コンテナは、次の点を除いて、通常のコンテナとまったく同じです。
場合
ここでの init-container は、データ ボリューム データを使用して、nginx ホームページの index.html を上書きします。 サービスオーケストレーションファイル
ポッドとサービスを作成する
ここで、ブラウザから nginx エンドポイントにアクセスしようとすると、次の出力が表示されます。 画像 サイドカーコンテナサイドカー コンテナは、メイン アプリケーション コンテナと同じ Pod で実行されるセカンダリ コンテナです。これらのコンテナーは、メイン アプリケーション コードを直接変更せずに、ログ記録、監視、セキュリティ、データ同期などの追加のサービスや機能を提供することで、メイン アプリケーション コンテナーの機能を強化または拡張するために使用されます。 サイドカー コンテナを使用する例:nginx-sidecar.yaml を作成します: 上記の Pod には 2 つのコンテナが含まれています。1 つはアプリケーション コンテナ (nginx) で、もう 1 つはメイン アプリケーションの nginx アクセス ログを収集するために使用するサイドカー コンテナです。 nginx-svc.yaml を作成します: ポッドとサービスを作成する
ブラウザから nginx エンドポイントにアクセスしようとすると、nginx のウェルカム ページが表示されます。次に、以下のコマンドを使用してサイドカー ログにアクセスしようとすると、最新のアクセスのアクセス ログが取得されます。 一時コンテナエフェメラル コンテナーは、リソースや実行の保証がなく、自動的に再起動されることがないため、アプリケーションの構築には適していないという点で他のコンテナーとは異なります。エフェメラル コンテナーは通常のコンテナーと同じ ContainerSpec を使用して記述されますが、多くのフィールドはエフェメラル コンテナーに対して互換性がなく、禁止されています。 エフェメラル コンテナーにはポートがない場合があるため、ポート、ライブネス プローブ、準備プローブなどのフィールドの使用は禁止されています。 Pod リソースの割り当ては不変であるため、リソースの設定は禁止されています。 エフェメラル コンテナは、コンテナがクラッシュした場合やコンテナ イメージにデバッグ ツールが含まれていない場合など、kubectl exec を使用しても問題を解決できない場合に、対話型のトラブルシューティングを行うのに役立ちます。 Pod をデバッグするには 2 つの方法があります。 a.デバッグ用の一時コンテナの使用 Pod は実行中だが実行できない場合は、このアプローチを使用できます。 kubectl debug コマンドを使用して、実行中の Pod に一時コンテナを追加できます。このアプローチでは、同じ Pod 内に新しいコンテナが作成されます。 <podname> を既存の Pod 名に置き換え、<containername> をデバッグする既存のコンテナに置き換えます。このコマンドは、新しい busybox コンテナを追加し、それにアタッチします。 b.デバッグにはポッドのコピーを使用する Pod がクラッシュしてアクセスできない場合は、この方法を使用できます。このアプローチでは、元の Pod のコンテナとともに新しいデバッグ コンテナを含む新しい Pod が作成されます。 元の Pod 名を ORIGINAL-POD に置き換え、新しいデバッグ Pod 名を NEW-DEBUG-POD に置き換えてください。新しいデバッグ Pod は元の Pod のコピーです。 場合ephemeral-pod.yaml を作成します。 この YAML ファイルは、デバッグ ツールなしで一時停止されたコンテナ イメージを作成します。 上記のコマンドは、デフォルトの名前空間に一時的な Pod を作成します。 次のコマンドを使用して実行してみます。 ただし、このコンテナイメージにはシェルがないため、次のエラーが発生します。 ここで、一時コンテナであるデバッグ コンテナを使用して Pod に入ってみましょう。 次のコマンドを使用して、一時コンテナを作成し、それを上記のポッド ephemeral-pod に接続します。 このコマンドは、新しい busybox コンテナを追加し、それを一時ポッドに接続します。 --target パラメータは、実行するコンテナを指定します。さらに、コマンドは一時コンテナのコンソールに自動的に接続します。 出力: これで、実際のコンテナ(一時的なコンテナ)にアクセスしてデバッグできるようになります。 マルチコンテナKubernetes を使用すると、並列に実行される複数のコンテナを持つ Pod を定義できます。コンテナは同じネットワーク名前空間を共有し、localhost 経由で相互に通信できます。これらのマルチコンテナ ポッドは、リソースとデータを共有しながら、密に結合されたプロセスを一緒に実行する必要があるシナリオを対象としています。 場合nginx-multi-container-pod.yaml を作成します。 上記のマニフェスト ファイルには 2 つのコンテナーがあります。1 つはメイン アプリケーション (nginx) で、もう 1 つは nginx Web アプリケーションのホームページを継続的に更新するのに役立つ追加のコンテナーです。 nginx-svc.yaml を作成します: ポッドとサービスの作成
ここで、ブラウザ経由で nginx エンドポイントにアクセスしようとすると、上記の追加コンテナによって更新された日付が表示されます。 |
<<: ビジネスの中断を回避する、K8s ノードのトラブルシューティング ガイド、ぜひご覧ください。
>>: ULID - 分散システムでグローバルに一意な識別子を生成するためのより良い選択肢
Hotnet Internetは、Double 11 +年末プロモーションを開始しました:(1)香港...
2018年第2四半期のローエンドVPSランキングリストが公開されました。これらの業者は、一般的な安価...
テンセントクラウドが中国の知的財産分野で最高賞を受賞した。最近、国家知識産権局は「第22回中国特許賞...
この記事はLeiphone.comから転載したものです。再印刷が必要な場合は、Leiphone.co...
中国人の間で最もよく使われている検索エンジンは百度です。百度の使命は「人々に最も便利な情報入手方法を...
ウェブサイトの構築は一度で完了できないことはよく知られています。初期段階が完璧に行われていても、後の...
Baiduの外部リンク情報が公開されて以来、一部のウェブサイトがフォーラム署名外部リンクや外部リンク...
疫病の影響により、企業のビジネスの俊敏性と価値の迅速な実現に対する要求はますます緊急なものとなり、テ...
アマゾン川で蝶が羽ばたき、2週間後に竜巻がテキサスを襲う。 3か月前には、「疫病」が2020年に新た...
アニメ ウェブサイトの増加に伴い、ますます多くのウェブマスターがコミック ウェブサイトに注目するよう...
この詳細なブログ投稿では、Kubernetes ネットワークの複雑さについて説明し、コンテナ化された...
ツールの使い方を知ることは、それをうまく使うための鍵であり、この概念は週末の趣味のプロジェクトだけに...
ブランドが、高品質で魅力的かつ関連性の高いコンテンツの作成に多くの時間と労力を費やすという考え方には...
SEO Kongcheng は、Baidu のアルゴリズムにはあまり注意を払う必要がないと提案してい...
誰もが SEO 最適化を非常に重視しているため、以前に「中小企業の E コマース サイトの SEO ...