オープンソース

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

設定を反映します。

# sysctl --system ⏎

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」

Kubernetes〜コンテナ管理の課題を解決するOSS〜
ここでは、Dockerコンテナの管理を自動化するためのソフトウェア「Kubernetes」を紹介します。
Kubernetesクラスタの構築
ここでは、CentOS7に最小限のKubernetesクラスタを構築する方法について説明いたします。
KubernetesのPod機能
ここではPod機能について説明いたします。
Kubernetesのレプリカセットとデプロイメント
ここではデプロイメントという機能を利用してレプリカセットを作成する方法について説明いたします。
Kubernetesのアーキテクチャ
ここではアーキテクチャについて説明いたします。
Kubernetesのコンテナアップデート
ここでは、Kubernetesでソフトウェアをアップデートする場合の手法について説明いたします。
Kubernetesのローリングアップデート
ここでは、Kubernetesのローリングアップデート機能の概要について説明いたします。
Kubernetesのダッシュボード
ここでは管理用のダッシュボードについて説明いたします。
Kubernetesの永続ストレージ
ここでは永続ストレージについて説明いたします。
Rancher〜Kubernetesの管理ソフトウェア〜
ここでは、Kubernetesの管理ソフトウェアのRancherについて紹介します。
GitLab〜Dockerのプロジェクト管理とレジストリ〜
GitLabは、ウェブ型のGitリポジトリマネージャーです。ここではGitLabのコンテナレジストリについて説明いたします。
DRBD-SDSとKubernetes
ここではDRBD-SDSを利用することでサービスの冗長化を実現させる手法について説明いたします。
Falco〜コンテナの侵入・改ざん検知ツール〜
ここではKubernetesを代表するコンテナ環境をターゲットにしているコンテナランタイムセキュリティソフトウェアのFalcoについて説明いたします。
Trivy〜コンテナイメージの脆弱性診断ツール〜
Trivyは、コンテナイメージの脆弱性診断ツールです。ここではTrivyの機能や特徴などについて説明いたします。
コンテナ型仮想化に関連したOSS
ここでは、コンテナ型仮想化に関連したOSSを紹介いたします。

Kubernetesクラスタの構築の先頭へ