Kubeadm + Helm 使ってGitLab CIを試したい ② ~クラスタを作るの巻~

本当はAnsibleとか使ってプロビジョニングするのが良きなのでしょうが
そこまでまだ勉強できていませんということで,

愚直に,公式にそって入れていきます.
まず,Masterから.

早速暗雲

k8s公式のBefore you beginに,

  • 2 GB or more of RAM per machine (any less will leave little room for your apps)
  • 2 CPUs or more

とありますねぇ.まぁ.無視で.

まずDocker入れる

公式に従って,下記コマンドでインストール.
これバージョン古い気がするけどいいのかな.

# yum install -y docker

ちなみにインストールされたDockerのバージョンは1.13.1・・・古い...(´・ω・`)
そのせいかdocker daemonを起動できません.SELinuxがpermissiveにもかかわらず.
仕方ないですね.Disabledにしましょう.
やりかたはこちら参照.
でようやくdocker daemonを起動します.

# systemctl enable docker 
# systemctl start docker

ちなみに初期のrootパスワードはいじってなければvagrantです.

次にkubeadmとkubeletとkubectlをインストールします.

まずリポジトリ登録から.

# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
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
EOF

そして,インストールしてkubeletを起動します.

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

CentOS入れてるので下記の処理もやります.

# cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# sysctl --system

次にkubeadmでセキュアなクラスターを作ります.

ここで,公式通りにやると暗雲立ち込めたあの子たちのせいでエラーが返ってきます.
kubeletちゃんと動いてないよsystemctl status kubeletで見ろよと言われるので見る.

するとswapはサポートされてないよを言われる.
ふと,GitLab入れるときとかメモリ足りるか不安になりつつ,
下記のようにswapを無効化してkubelet daemonを再起動します.

# swapoff -a
# systemctl restart kubelet

そして,まだいろいろエラー来るので,下記のようにして黙殺.(良いのかはわからない)

# kubeadm init --ignore-preflight-errors all

クラスターができたので,マスターノードの一般ユーザーから,ノードの管理(kubectl)ができるようにする.

ちなみに,kubeadm initするとセキュアなクラスターができます.それがkubeadmのポリシー.
なので,デフォルトでRBACがオンになっている.

まずはkubeadm initしたときに結果が出力されているので,その通りにやります.
出力結果はどこかにメモしておくのが吉かもしれない.

# exit
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

これで,kubeadm 使って,vagrantユーザーからクラスタの管理ができるようになりました.

こっからNode間のネットワークのためのツールを入れてようやくNodeをjoinさせられるけど
力尽きました.

また明日改めて書きます.

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.