コンテナ

「Kubernetes」クラスターにLANからアクセスできるPodを展開するには

「Kubernetes」クラスターにLANからアクセス可能なPodを展開する方法を解説する。

 「Kubernetes」で困難なことの1つは、クラスターに展開し、なおかつ展開したアプリやサービスをLANからアクセスできるようにすることだ。筆者もhostNetworkの設定を発見するまで、それを成し遂げるのに非常に苦労した。この特定のオプションはKubernetesのPodに適用され、展開されたPodにクラスターの外部からアクセスすることを可能にする。

 この特定の設定を使用することで、Pod内のアプリケーションは、Podをホストしているノードのネットワークインターフェースにアクセスできる。つまり、理論的には、LANからそれらのPodに実際にアクセスすることが可能だ。

 本記事では、これを機能させる方法を紹介する。意外に思われるかもしれないが、その手順は非常に簡単だ。

必要なもの

 これを機能させるのに必要なのは、実行中のKubernetesクラスターだけだ。このクラスターの格納先は、AWSでも、Google Cloudでも、独自のオンプレミスハードウェアでも、そのほかのホストでも構わない。クラスターがまだない場合は、いつでもデータセンターにクラスターを展開することが可能だ。その方法については、筆者が過去に執筆した記事「How to deploy a Kubernetes cluster on Ubuntu server」などを参照してほしい。

 Kubernetesクラスターにアクセスできるようになったら、外の世界(または、少なくともLAN)にアクセス可能なPodを展開する手順に進むことができる。

YAMLファイルを作成する方法

 hostNetworking設定がどのように使用されるのかを理解してもらうため、最初に、非常に初歩的なYAMLファイルを作成する。このYAMLは、influxdb PodをKubernetesクラスターに展開し、クラスターの外部からアクセスできるようにする。

 Kubernetesコントローラーで、以下のコマンドを実行して、新しいYAMLファイルを作成する。

nano influxdb.yml

 新しいファイルに、以下の内容を貼り付ける。

apiVersion: v1
kind: Pod
metadata:
  name: influxdb
spec:
  hostNetwork: true
  containers:
    - name: influxdb
      image: influxdb

 ここで重要なのは以下の部分だ。

hostNetwork: true

 上記の設定により、Podはホストのネットワークインターフェースにアクセスするという目標を達成できる。この設定がなくても、Podは展開されるが、クラスター内からしかアクセスできなくなる。このYAMLファイルで作成されるのは、influxdbという名前のPodで、influxdbイメージを使用するinfluxdbという名前の単一のコンテナーが含まれる。

 ファイルを保存して閉じる。

Podを展開する方法

 次に、新しいPodを展開する。これは以下のコマンドで実行可能だ。

kubectl create -f influxdb.yml

「コンテナ」で読まれている記事

TechRepublic Japanで人気の記事

編集部オススメ

トレンドまるわかり![PR]

財務・経理
人事・労務
マーケ・営業
購買・調達
生産・製造
データ分析
コミュニケーション
通信・通話
文書・コンテンツ
PC・モバイル
新興技術
ITインフラ
IAサーバー
UNIXサーバー
コンバージド・ハイパーコンバージド
その他サーバー
ストレージ
スイッチ
無線LAN
ルーター
ロードバランサー
VPN
WAN高速化
その他ネットワーク
サーバー仮想化
コンテナ
SDS/ストレージ仮想化
SDN/ネットワーク仮想化
デスクトップ仮想化
アプリケーション仮想化
その他仮想化
クラウドサービス
OS・ミドルウェア
開発
データベース
運用
セキュリティ

ホワイトペーパーランキング

  1. MITスローン編著、経営層向けガイド「AIと機械学習の重要性」日本語版
  2. AWS提供! 機械学習でビジネスの成功を掴むためのエグゼクティブ向けプレイブック
  3. DX実現の鍵は「深層学習を用いたアプリ開発の高度化」 最適な導入アプローチをIDCが提言
  4. ランサムウェアを阻止するための10のベストプラクティス、エンドポイント保護編
  5. テレワークで急増、リモートデスクトップ経由のサイバー脅威、実態と対策とは

Follow TechRepublic Japan

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]