忙しい人向け
- CentOS 7.8 + CRI-O 1.18 + Kubernetes 1.18.3の組み合わせの動作を確認
- Kubeletの設定方法が変わっていた。次のように設定しないとKubeletが動かないのでkubeadでデプロイできなかった
インストールについて
CentOS 7のインストール
- インストール方法は省略。
ファイアウォール
firewall-cmdを使って以下のように設定しました。
CRI-Oのインストール前の事前準備
# cat > /etc/modules-load.d/containerd.conf <<EOF overlay br_netfilter EOF # modprobe overlay # modprobe br_netfilter
ネットワーク関連の設定
# cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF # sysctl --system
CRI-Oのインストール
- Installing CRI-O に書かれているコマンドを実行。
CRI-Oの設定を確認
conmonとcgroup_managerの設定を確認。
# vi /etc/crio/crio.conf ... conmon = "/usr/libexec/crio/conmon" ... cgroup_manager = "systemd"
Kubeletの設定を変更
以下のように設定しました。
必要なパッケージをインストール
- kubeadm、kubelet、kubectlのインストール を参考に、kubelet, kubeadm, kubectlパッケージをインストールする。
1.18.3を導入した
cat <<EOF > /etc/yum.repos.d/kubernetes.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 EOF # Set SELinux in permissive mode (effectively disabling it) setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config yum install -y kubelet-1.18.3-0.x86_64 kubeadm-1.18.3-0.x86_64 kubectl-1.18.3-0.x86_64 --disableexcludes=kubernetes systemctl enable --now kubelet
K8sクラスタのデプロイ
「pod-network-cidr」は導入するCNIに適したものを設定する。 --control-plane-endpoint
はノードに設定されているIPアドレスのうち、外部からアクセスできるものを指定する。
# kubeadm init --kubernetes-version 1.18.3 --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint=192.168.1.70
Kubeconfigの用意
kubeadmでクラスター作成がうまくいくと、コマンドを実行しろと言われるので実行。
# mkdir -p $HOME/.kube # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # chown $(id -u):$(id -g) $HOME/.kube/config
MasterノードをWorkerとして使う
master 1nodeにする場合は次を実行。Workerを追加する場合は、出力されているkubeadm joinコマンドをWorkerノードで実行。
# kubectl taint nodes --all node-role.kubernetes.io/master-
Podネットワークアドオンのインストール
任意のPodネットワークアドオンをインストールする。筆者が動作確認したバージョンは以下のとおり。
Calico and v1.18.3(実行にはメモリ8GB以上必要)
CentOS 7とK8s v1.18.3でCNI Calicoは以下のバージョンで正常に動いた。
# curl -LO https://docs.projectcalico.org/v3.14/manifests/calico.yaml (YAMLのCALICO_IPV4POOL_CIDRをpod-network-cidrと同じものに変更) # kubectl apply -f calico.yaml
構築手順は以上
構築した環境を使って、公式サイトの「アプリケーションの実行」を試してみましょう。