1. ホストネットワーク:truePod の yaml 定義ファイルでこのオプションを構成すると、Pod はホストのネットワーク スタックを使用します。これは、ホスト上で実行されているサービスに直接アクセスするのと変わりません。 Podで実行されているサービスにアクセスするには、「ホストIP+ポート」方式を使用します。たとえば、次のPod定義ファイルのように。 APIバージョン: v1 実行後、コンテナが動作しているホストにログインすると、ポート 80 でリッスンしているサービスがあることがわかります。 ホストマシンのポート80をリッスンする アクセスに問題はありません(192.168.52.132 はホストマシンの IP です)。 サービスアクセス Pod が再起動されると、別のホストにスケジュールされる可能性があります。この場合、アクセス IP も変更する必要があり、ポートの競合を防ぐ必要があります。サービスがすでにホストのポートを占有している場合、新しい Pod は起動できません。 2. ホストポート上記の Pod の yaml ファイルを少し変更し、最後の行を追加して、「hostNetwork: true」を削除します。 APIバージョン: v1 最初の方法と比較すると、外部に公開されるポートを柔軟に構成できます。注意すべき点は、「hostPort」モードでは、サービスはコンテナのネットワーク スタックをリッスンし、ホストはファイアウォール上でメッセージを転送することです。したがって、ホストのポート 8080 を照会すると、リッスンしているサービスがないことがわかります。 リスニングポート ファイアウォールをチェックして、ホストにポート転送があることを確認します。 ポッドIP ホスト上でDNATを実行する この方法には最初の方法と同じ欠点があります。コンテナの再起動は他のホストにスケジュールされる場合があります。 Pod によって公開されるポートが手動で調整されない限り、同じ Pod をホスト上で実行することはできません。
上記の 2 つの方法は、Pod 独自のリソース定義に依存して、クラスター外部にサービスを公開します。次の 2 つの方法は、サービスを公開するために他の Kubernetes リソースに依存します。 3. ノードポート「NodePort」は、Kubernetes の「Service」リソースのプロパティです。デフォルトでは、「サービス」はクラスター内でのサービス アクセスを実装します。 「NodePort」を追加すると、クラスター外からサービスにアクセスできるようになります。デフォルトでは、Kubernetes はホスト マシンのポート 30000 ~ 32767 から 1 つのポートを選択してアクセスを提供しますが、これは手動で指定できます。 サンプルの yaml ファイル。 APIバージョン: v1 yaml ファイルを適用すると、「ホスト IP + 30000」を介してクラスター外のサービスにアクセスできるようになります。 nodePort を使用してサービスにアクセスする 高可用性を実現するために、haproxy をデプロイし、バックエンドを複数のクラスター ホストによって公開されるサービスにすることで、可用性を向上させることができます。 「nodePort」サービスの動作原理は次のとおりです。トラフィックがホストによって公開されているポート 30000 に入ると、「サービス」の「クラスター IP + ポート」に転送され、次に Iptables (実装によっては ipvs の場合もあります) を介して対応するポッドに転送されます。 4. イングレスIngress を使用してサービスを公開する方法は、実稼働環境でより一般的に使用されます。 Ingress API リソース オブジェクトは Kubernetes に組み込まれていますが、このオブジェクトを使用するには、「コントローラー」をインストールする必要があります。選択できるサードパーティの「コントローラー」は多数あります。ここでは、「Nginx Ingress コントローラー」を選択します。 (インストールプロセスは含まれません)。 yamlの例: APIバージョン: v1 私のテスト環境の Ingress Controller は nodePort モードで実行されるため、公開される HTTP ポートは 31763 です。 イングレスコントローラによって公開されるポート デプロイされたサービスにアクセスするには、Ingress リソース定義で構成されたドメイン名を使用します。 アクセスサービス 実稼働環境では、"hostPort" を使用してポート 80 でリッスンするなど、Ingress コントローラー ネットワークの動作モードを変更できます。 注目すべき点は、トラフィックをサービスのクラスター IP に送信する「nodePort」とは異なり、Ingress コントローラーはクラスター外部のユーザーからのトラフィックをポッドがリッスンするポートに直接送信するため、はるかに効率的であるということです。 要約する上記で紹介した 4 つのサービス公開方法の他に、クラウドベンダーに依存する「LoadBalancer」を使用することもできます。 Kubernetes クラスターがパブリック クラウドにデプロイされている場合は、実際の状況に応じて構成できます。 |
<<: SUSE と Amazon Web Services が SAP クラウド イノベーションを加速する新たな戦略的パートナーシップを確立
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス最近、多くのネットユーザ...
スマートホストはどうですか?スマートホストは良いですか? Smarthost は、米国西海岸南部に位...
キーワードはキーワードとも呼ばれます。キーワードとは、ユーザーが検索エンジンを通じてこの Web ペ...
多くの中国人はhostdimeに馴染みがないかもしれません。同社は2001年に設立され、2003年に...
馮鑫は今回の上場に向けて準備が整っているようで、少なくとも3年間は収益を上げれば十分だ。最近、Bao...
電子商取引ウェブサイトは、今後の発展の必然的なトレンドです。そのため、電子商取引ウェブサイトは絶え間...
モーニングポスト記者の沈良とインターンの荘玉嬌春節の鉄道旅行ラッシュの幕はまだ完全には上がっていない...
bacloud は HostCat に何度か登場しており、ウェブマスターに与える一般的な印象は、独自...
先日終了した天猫ダブル11では、取引額2,684億元、ピーク時の注文件数54万4,000件/秒という...
Kamateraはイスラエルのロシャインに自社データセンターを構え、主にイスラエルのクラウドサーバー...
あまり多くを語る必要はありません。最近、Baidu はユーザー エクスペリエンスのアップグレードと調...
みなさんこんにちは。昨日、「百度改革仮説:もはや簡単に整理できない」という記事を書きましたが、A5の...
クラウド コンピューティング サービスを導入したいが、クラウド コンピューティング プロバイダーにデ...
boltvm は、サーバーレンタルおよびホスティングプロバイダー DediCube のサブブランドで...
最近、ウェブマスターが中間にいるという声が絶えず聞こえてきており、Sanqin SEO も「SEO ...