-
サーバ構築のデージーネットTOP
-
OSS情報
-
一押しOSS
-
Kubernetes〜コンテナ管理の課題を解決するOSS〜
-
Kubernetesクラスタの構築
-
サーバ構築のデージーネットTOP
-
OSS情報
-
コンテナ型仮想化
-
Kubernetes〜コンテナ管理の課題を解決するOSS〜
-
Kubernetesクラスタの構築
Kubernetesクラスタの構築
Kubernetesクラスタを構築するには、kubeadmというコマンドを使います。ここでは、CentOS7に最小限のKubernetesクラスタを構築する方法について簡単に紹介します。構築の前提条件などの詳細は、無料資料ダウンロードの「Kubernetes調査報告書」に詳しく記載されているため、それを参照してください。
Kubernetesサーバの構築(共通部)
Kubernetesのマスターサーバの構築とノードサーバの構築の最初のステップは同じです。まず、Dockerをインストールしておきます。Dockerは、次のURLからダウンロードできます。
https://docs.docker.com/install/
Kubernetesレポジトリの登録
次に、Kubernetesのレポジトリの設定を行います。
/etc/yum.repos.d/kubnernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Kubernetesパッケージのインストールとサービス起動
レポジトリを登録したら、パッケージからパッケージをインストールします。
# yum install kubelet kubeadm kubectl ⏎
kubeletサービスを起動します。
# systemctl start kubelet ⏎
カーネルパラメータの調整
次にカーネルパラメータの設定をします。/etc/sysctl.dに次のような設定ファイルを配置します。
/etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
設定を反映します。
cgroupドライバの設定
プロセス管理用のドライバの調整をします。Dockerが利用するドライバはcgroupfsになっていて、kubeletサービスの利用するドライバはsystemdになっています。これらは、同じでないとうまく動作しません。そのため、次のようにしてkubeletの設定を変更しておきます。/etc/systemd/system/kubelet.service.d/10-kubeadm.confのcgroup-driverの設定を変更します。
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs
設定変更後、kubeletサービスを再起動します。
# systemctl daemon-reload ⏎
# systemctl restart kubelet ⏎
Kubernetesマスタサーバの構築
Kubernetesマスタサーバでは、kubeadmコマンドを実行します。
# kubeadm init ⏎
(省略)
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run (as a regular user):
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
この例のように「Your Kubernetes master has initialized successfully!」と表示されると、インストール完了です。その後のメッセージに、Kubernetesクラスタを実行するユーザでの設定が表示されています。また、最後にはノードサーバで実行すべきコマンドが表示されていますので、記録しておきます。
Kubernetes管理ユーザの設定
Kubernetesを制御するユーザで、Kubernetesマスタサーバのインストール時に表示されたコマンドを実行します。
$ mkdir -p $HOME/.kube ⏎
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config ⏎
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config ⏎
Kubernetesノードサーバの構築
Kubernetesのノードサーバでは、マスタサーバの構築で最後に表示されたコマンドを実行し、マスタサーバにノードを追加していきます。実行のイメージは、次のようになります。
# kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash> ⏎
<token>、<master-ip>、<master-port>、<hash>は、実際に表示されたものを使います。
なお、KubernetesのPodが通信するためには、さらにネットワークアドオンが必要です。詳細は、「Kubernetes調査報告書」を参照してください。
デモのお申込み
もっと使い方が知りたい方へ
Kubernetesの操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。Kubernetesのデモをご希望の方は、下記よりお申込みいただけます。
OSS情報「Kubernetes」