HTTPプロキシを使用してKubernetes APIにアクセスする

HTTPプロキシを使用してKubernetes APIにアクセスする

このページでは、HTTPプロキシを使用してKubernetes APIにアクセスする方法を説明します。

始める前に

Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。 このチュートリアルは、コントロールプレーンのホストとして動作していない少なくとも2つのノードを持つクラスターで実行することをおすすめします。 まだクラスターがない場合、minikubeを使って作成するか、 以下のいずれかのKubernetesプレイグラウンドも使用できます:

バージョンを確認するには次のコマンドを実行してください: kubectl version.

クラスター内でまだアプリケーションが実行されていない場合は、次のコマンドを入力してHello worldアプリケーションを起動してください:

kubectl create deployment hello-app --image=gcr.io/google-samples/hello-app:2.0 --port=8080

kubectlを使用してプロキシサーバーを起動する

次のコマンドは、Kubernetes APIサーバーへのプロキシを起動します:

kubectl proxy --port=8080

Kubernetes APIを探索する

プロキシサーバーが実行されているときは、curlwget、またはブラウザーを使用してAPIを探索できます。

APIのバージョンを取得します:

curl http://localhost:8080/api/

出力は次のようになります:

{
  "kind": "APIVersions",
  "versions": [
    "v1"
  ],
  "serverAddressByClientCIDRs": [
    {
      "clientCIDR": "0.0.0.0/0",
      "serverAddress": "10.0.2.15:8443"
    }
  ]
}

Podの一覧を取得します:

curl http://localhost:8080/api/v1/namespaces/default/pods

出力は次のようになります:

{
  "kind": "PodList",
  "apiVersion": "v1",
  "metadata": {
    "resourceVersion": "33074"
  },
  "items": [
    {
      "metadata": {
        "name": "kubernetes-bootcamp-2321272333-ix8pt",
        "generateName": "kubernetes-bootcamp-2321272333-",
        "namespace": "default",
        "uid": "ba21457c-6b1d-11e6-85f7-1ef9f1dab92b",
        "resourceVersion": "33003",
        "creationTimestamp": "2016-08-25T23:43:30Z",
        "labels": {
          "pod-template-hash": "2321272333",
          "run": "kubernetes-bootcamp"
        },
        ...
}

次の項目

kubectl proxyについてさらに学ぶ。