Skip to content

Commit

Permalink
ja-docs: translate install-kubeadm into Japanese
Browse files Browse the repository at this point in the history
  • Loading branch information
s.miyoshi authored and Shunsuke Miyoshi committed Dec 20, 2019
1 parent 08fdd3d commit 3f1c9b9
Showing 1 changed file with 71 additions and 83 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,138 +10,133 @@ card:

{{% capture overview %}}

<img src="https://raw.githubusercontent.com/kubernetes/kubeadm/master/logos/stacked/color/kubeadm-stacked-color.png" align="right" width="150px">This page shows how to install the `kubeadm` toolbox.
For information how to create a cluster with kubeadm once you have performed this installation process, see the [Using kubeadm to Create a Cluster](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) page.
<img src="https://raw.githubusercontent.com/kubernetes/kubeadm/master/logos/stacked/color/kubeadm-stacked-color.png" align="right" width="150px">
このページでは`kubeadm`コマンドをインストールする方法を示します。
このインストールプロセスの実行後にkubeadmを使用してクラスターを作成する方法については、[Using kubeadm to Create a Cluster](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)を参照してください。

{{% /capture %}}

{{% capture prerequisites %}}

* One or more machines running one of:
* 次のいずれかが動作しているマシンが必要です
- Ubuntu 16.04+
- Debian 9
- CentOS 7
- RHEL 7
- Fedora 25/26 (best-effort)
- HypriotOS v1.0.1+
- Container Linux (tested with 1800.6.0)
* 2 GB or more of RAM per machine (any less will leave little room for your apps)
* 2 CPUs or more
* Full network connectivity between all machines in the cluster (public or private network is fine)
* Unique hostname, MAC address, and product_uuid for every node. See [here](#MACアドレスとproduct_uuidが全てのノードでユニークであることの検証) for more details.
* Certain ports are open on your machines. See [here](#必須ポートの確認) for more details.
* Swap disabled. You **MUST** disable swap in order for the kubelet to work properly.
* 1台あたり2GB以上のメモリ (2GBの場合、アプリ用のスペースはほとんどありません)
* 2コア以上のCPU
* クラスター内のすべてのマシン間で通信可能なネットワーク (パブリックネットワークでもプライベートネットワークでも構いません)
* ユニークな hostname, MACアドレス, と product_uuid が各ノードに必要です。詳細は [ここ](#MACアドレスとproduct_uuidが全てのノードでユニークであることの検証) を参照してください。
* マシン内の特定のポートが開いていること。詳細は [ここ](#必須ポートの確認) を参照してください。
* Swapがオフであること。kubeletが正常に動作するためにはswapは **必ず** オフでなければなりません。

{{% /capture %}}

{{% capture steps %}}

## MACアドレスとproduct_uuidが全てのノードでユニークであることの検証

* You can get the MAC address of the network interfaces using the command `ip link` or `ifconfig -a`
* The product_uuid can be checked by using the command `sudo cat /sys/class/dmi/id/product_uuid`
* ネットワークインターフェースのMACアドレスは`ip link` もしくは `ifconfig -a`コマンドで取得できます。
* product_uuid `sudo cat /sys/class/dmi/id/product_uuid` コマンドで確認できます。

It is very likely that hardware devices will have unique addresses, although some virtual machines may have
identical values. Kubernetes uses these values to uniquely identify the nodes in the cluster.
If these values are not unique to each node, the installation process
may [fail](https://github.com/kubernetes/kubeadm/issues/31).
ハードウェアデバイスではユニークなアドレスが割り当てられる可能性が非常に高いですが、VMでは同じになることがあります。
Kubernetesはこれらの値を使用して、クラスター内のノードを一意に識別します。
これらの値が各ノードに固有ではない場合、インストールプロセスが[失敗](https://github.com/kubernetes/kubeadm/issues/31)することもあります。

## ネットワークアダプタの確認

If you have more than one network adapter, and your Kubernetes components are not reachable on the default
route, we recommend you add IP route(s) so Kubernetes cluster addresses go via the appropriate adapter.
複数のネットワークアダプターがあり、Kubernetesコンポーネントにデフォルトで到達できない場合、IPルートを追加して、Kubernetesクラスターアドレスが適切なアダプターを経由するように設定することをお勧めします。

## 必須ポートの確認

### マスターノード

| Protocol | Direction | Port Range | Purpose | Used By |
|----------|-----------|------------|-------------------------|---------------------------|
| TCP | Inbound | 6443* | Kubernetes API server | All |
| TCP | Inbound | 2379-2380 | etcd server client API | kube-apiserver, etcd |
| TCP | Inbound | 10250 | Kubelet API | Self, Control plane |
| TCP | Inbound | 10251 | kube-scheduler | Self |
| TCP | Inbound | 10252 | kube-controller-manager | Self |
| プロトコル | 通信の向き | ポート範囲 | 目的 | 使用者 |
|-----------|------------|------------|-------------------------|---------------------------|
| TCP | Inbound | 6443* | Kubernetes API server | All |
| TCP | Inbound | 2379-2380 | etcd server client API | kube-apiserver, etcd |
| TCP | Inbound | 10250 | Kubelet API | Self, Control plane |
| TCP | Inbound | 10251 | kube-scheduler | Self |
| TCP | Inbound | 10252 | kube-controller-manager | Self |

### ワーカーノード

| Protocol | Direction | Port Range | Purpose | Used By |
|----------|-----------|-------------|-----------------------|-------------------------|
| TCP | Inbound | 10250 | Kubelet API | Self, Control plane |
| TCP | Inbound | 30000-32767 | NodePort Services** | All |
| プロトコル | 通信の向き | ポート範囲 | 目的 | 使用者 |
|-----------|------------|-------------|-------------------------|-------------------------|
| TCP | Inbound | 10250 | Kubelet API | Self, Control plane |
| TCP | Inbound | 30000-32767 | NodePort Services** | All |

** Default port range for [NodePort Services](/docs/concepts/services-networking/service/).
** [NodePort Services](/docs/concepts/services-networking/service/)のデフォルトのポートの範囲

Any port numbers marked with * are overridable, so you will need to ensure any
custom ports you provide are also open.
\* の項目は書き換え可能です。
そのため、あなたが指定したカスタムポートも開いていることを確認する必要があります。

Although etcd ports are included in control-plane nodes, you can also host your own
etcd cluster externally or on custom ports.
etcdポートはコントロールプレーンノードに含まれていますが、
独自のetcdクラスターを外部またはカスタムポートでホストすることもできます。

The pod network plugin you use (see below) may also require certain ports to be
open. Since this differs with each pod network plugin, please see the
documentation for the plugins about what port(s) those need.
使用するPod ネットワークプラグイン(以下を参照)のポートも開く必要があります。
これは各Pod ネットワークプラグインによって異なるため、必要なポートについては
プラグインのドキュメントを参照してください。

## ランタイムのインストール

Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default.
v1.6.0以降、KubernetesはデフォルトでCRI(Container Runtime Interface)の使用を有効にしています。

Since v1.14.0, kubeadm will try to automatically detect the container runtime on Linux nodes
by scanning through a list of well known domain sockets. The detectable runtimes and the
socket paths, that are used, can be found in the table below.
また、v1.14.0以降、kubeadmは既知のドメインソケットのリストをスキャンして、
Linuxノード上のコンテナランタイムを自動的に検出しようとします。
検出可能なランタイムとソケットパスは、以下の表に記載されています。

| Runtime | Domain Socket |
|------------|----------------------------------|
| Docker | /var/run/docker.sock |
| containerd | /run/containerd/containerd.sock |
| CRI-O | /var/run/crio/crio.sock |

If both Docker and containerd are detected together, Docker takes precedence. This is
needed, because Docker 18.09 ships with containerd and both are detectable.
If any other two or more runtimes are detected, kubeadm will exit with an appropriate
error message.
Dockerとcontainerdの両方が同時に検出された場合、Dockerが優先されます。
Docker 18.09にはcontainerdが同梱されており、両方が検出可能であるため、この仕様が必要です。
他の2つ以上のランタイムが検出された場合、kubeadmは適切なエラーメッセージで終了します。

On non-Linux nodes the container runtime used by default is Docker.
Linux以外のノードでは、デフォルトで使用されるコンテナランタイムはDockerです。

If the container runtime of choice is Docker, it is used through the built-in
`dockershim` CRI implementation inside of the `kubelet`.
もしコンテナランタイムとしてDockerを選択した場合、`kebelet`内に組み込まれた`dockershim` CRIが使用されます。

Other CRI-based runtimes include:
その他のCRIに基づくランタイムでは以下を使用します

- [containerd](https://github.com/containerd/cri) (CRI plugin built into containerd)
- [cri-o](https://cri-o.io/)
- [frakti](https://github.com/kubernetes/frakti)

Refer to the [CRI installation instructions](/ja/docs/setup/production-environment/container-runtimes/) for more information.
詳細は [CRIのインストール](/ja/docs/setup/production-environment/container-runtimes/) を参照してください。

## kubeadm、kubelet、kubectlのインストール

You will install these packages on all of your machines:
以下のパッケージをマシン上にインストールしてください

* `kubeadm`: the command to bootstrap the cluster.
* `kubeadm`: クラスターを起動するコマンド。

* `kubelet`: the component that runs on all of the machines in your cluster
and does things like starting pods and containers.
* `kubelet`: クラスター内のすべてのマシンで実行されるコンポーネント。
     ポッドやコンテナの起動などを行います。

* `kubectl`: the command line util to talk to your cluster.
* `kubectl`: クラスターにアクセスするためのコマンドラインツール。

kubeadm **will not** install or manage `kubelet` or `kubectl` for you, so you will
need to ensure they match the version of the Kubernetes control plane you want
kubeadm to install for you. If you do not, there is a risk of a version skew occurring that
can lead to unexpected, buggy behaviour. However, _one_ minor version skew between the
kubelet and the control plane is supported, but the kubelet version may never exceed the API
server version. For example, kubelets running 1.7.0 should be fully compatible with a 1.8.0 API server,
but not vice versa.
kubeadmは`kubelet``kubectl`をインストールまたは管理**しない**ため、
kubeadmにインストールするKubernetesコントロールプレーンのバージョンと一致させる必要があります。
そうしないと、予期しないバグのある動作につながる可能性のあるバージョン差異(version skew)が発生するリスクがあります。
ただし、kubeletとコントロールプレーン間のマイナーバージョン差異(minor version skew)は_1つ_サポートされていますが、
kubeletバージョンがAPIサーバーのバージョンを超えることはできません。
たとえば、1.7.0を実行するkubeletsは1.8.0 APIサーバーと完全に互換性がありますが、その逆はできません。

For information about installing `kubectl`, see [Install and set up kubectl](/docs/tasks/tools/install-kubectl/).
`kubectl`のインストールに関する詳細情報は、[kubectlのインストールおよびセットアップ](/docs/tasks/tools/install-kubectl/)を参照してください。

{{< warning >}}
These instructions exclude all Kubernetes packages from any system upgrades.
This is because kubeadm and Kubernetes require
[special attention to upgrade](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/).
これらの手順はシステムアップグレードによるすべてのKubernetesパッケージの更新を除きます。
これはkubeadmとKubernetesが[special attention to upgrade](docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/)を必要とするからです。
{{</ warning >}}

For more information on version skews, see:
バージョン差異(version skew)に関しては下記を参照してください。

* Kubernetes [version and version-skew policy](/ja/docs/setup/release/version-skew-policy/)
* Kubeadm-specific [version skew policy](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#version-skew-policy)
Expand Down Expand Up @@ -237,45 +232,38 @@ systemctl enable --now kubelet
{{% /tab %}}
{{< /tabs >}}
The kubelet is now restarting every few seconds, as it waits in a crashloop for
kubeadm to tell it what to do.
kubeadmが何をすべきか指示するまで、kubeletはクラッシュループで数秒ごとに再起動します。
## マスターノードのkubeletによって使用されるcgroupドライバの設定
When using Docker, kubeadm will automatically detect the cgroup driver for the kubelet
and set it in the `/var/lib/kubelet/kubeadm-flags.env` file during runtime.
Dockerを使用した場合、kubeadmは自動的にkubelet向けのcgroup driverを検出し、それを実行時に`/var/lib/kubelet/kubeadm-flags.env`ファイルに設定します。
If you are using a different CRI, you have to modify the file
`/etc/default/kubelet` with your `cgroup-driver` value, like so:
もしあなたが異なるCRIを使用している場合、`/etc/default/kubelet`ファイル内の`cgroup-driver`の値を以下のように変更する必要があります。
```bash
KUBELET_EXTRA_ARGS=--cgroup-driver=<value>
```
This file will be used by `kubeadm init` and `kubeadm join` to source extra
user defined arguments for the kubelet.
このファイルは、kubeletの追加のユーザー定義引数を取得するために、`kubeadm init`および`kubeadm join`によって使用されます。
Please mind, that you **only** have to do that if the cgroup driver of your CRI
is not `cgroupfs`, because that is the default value in the kubelet already.
CRIのcgroupドライバーが `cgroupfs`でない場合に**のみ**それを行う必要があることに注意してください。
なぜなら、これは既にkubeletのデフォルト値であるためです。
Restarting the kubelet is required:
kubeletをリスタートする方法:
```bash
systemctl daemon-reload
systemctl restart kubelet
```
The automatic detection of cgroup driver for other container runtimes
like CRI-O and containerd is work in progress.
CRI-Oやcontainerdといった他のコンテナランタイムのcgroup driverは実行中に自動的に検出されます。
## トラブルシュート
If you are running into difficulties with kubeadm, please consult our [troubleshooting docs](/ja/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/).
kubeadmで問題が発生した場合は、[トラブルシューティング](/ja/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/)を参照してください。
{{% capture whatsnext %}}
* [Using kubeadm to Create a Cluster](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)
* [kubeadmを使用したシングルマスタークラスターの作成](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)
{{% /capture %}}

0 comments on commit 3f1c9b9

Please sign in to comment.