Docker
kubernetes

CentOS7でKubernetesをall-in-one構成で動かす

参考記事:https://qiita.com/sheepland/items/d63bfe24c8e363132f7a


Kubernetesのインストール


ホストネームを変える

# sudo hostnamectl set-hostname 'k8s-master'

# echo "10.26.5.22 k8s-master" >> /etc/hosts


簡単のためSELinux、Firewallを止める(本番環境ではやらないでください)

# setenforce 0

# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# systemctl stop firewalld && systemctl disable firewalld


Dockerのインストール

# yum install -y yum-utils device-mapper-persistent-data lvm2

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum makecache fast
# yum remove docker docker-common docker-selinux docker-engine
# yum install docker-ce
# systemctl restart docker && systemctl enable docker


Kubernetesのリポジトリを登録

# cat <<EOF > /etc/yum.repos.d/hoge.repo

[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$(uname -m)
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


Kubeadm(Kubernetesをいい感じに入れてくれるやつ)のインストール

# yum install kubeadm

# systemctl restart kubelet && systemctl enable kubelet


Master Nodeの作成

# swapoff -a

# kubeadm init

kubeadm initが成功すると次に行う作業が表示されるので行う。

なお、同時に表示されるkubeadm join --token ~~はall-in-one構成では現状必要ない。

# mkdir -p $HOME/.kube

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


ネットワークの作成

# export kubever=$(kubectl version | base64 | tr -d '\n')

# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
serviceaccount "weave-net" created
clusterrole "weave-net" created
clusterrolebinding "weave-net" created
daemonset "weave-net" created


以下のようになれば成功

# kubectl get nodes

NAME STATUS ROLES AGE VERSION
kubetest Ready master 1h v1.11.1


KubernetesのMaster NodeをWorker Nodeと兼任させる

ここまででKubernetesのMaster Nodeの設定は終了しているはず。

しかし、KubernetesのMaster NodeはDefaultではWorker Nodeとしては動作しない。

以下のコマンドを打つことで、Worker Nodeとして動作するようになる。

参考:https://mbook-x86.hatenablog.com/entry/2018/04/29/024210

# kubectl taint nodes --all node-role.kubernetes.io/master-