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

LLMS index: [llms.txt](/llms.txt)

---

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


## 始める前に


<p>Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。
このチュートリアルは、コントロールプレーンのホストとして動作していない少なくとも2つのノードを持つクラスターで実行することをおすすめします。
まだクラスターがない場合、<a href="https://minikube.sigs.k8s.io/docs/tutorials/multi_node/">minikube</a>を使って作成するか、
以下のいずれかのKubernetesプレイグラウンドも使用できます:</p>
<ul>
<li><a href="https://labs.iximiuz.com/playgrounds?category=kubernetes&filter=all">iximiuz Labs</a></li>
<li><a href="https://killercoda.com/playgrounds/scenario/kubernetes">Killercoda</a></li>
<li><a href="https://kodekloud.com/public-playgrounds">KodeKloud</a></li>
</ul>
 
  <p>バージョンを確認するには次のコマンドを実行してください:  <code>kubectl version</code>.</p>


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

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

<!-- steps -->

## kubectlを使用してプロキシサーバーを起動する {#using-kubectl-to-start-a-proxy-server}

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

    kubectl proxy --port=8080

## Kubernetes APIを探索する {#exploring-the-kubernetes-api}

プロキシサーバーが実行されているときは、`curl`、`wget`、またはブラウザーを使用して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](/docs/reference/generated/kubectl/kubectl-commands#proxy)についてさらに学ぶ。
