Learn_k8s_3
k8s構築日記その3。 過去の奮闘記録。 構築日記その1 構築日記その2 実は今まで一回もK8S上でアプリを動かしたことがないという。 これは正直恥ずかしいですね。構築はしたが、動かせはしていないという話だな。勿体無い!! ってことで、今回は、K8S構築日記その3ということで、構築日記その1と構築日記その2を振り返りつつ、 ちゃんとアプリをクラスタ上で動かせるようにしたいと思います。はい。動かすアプリは、そうです、例の競馬アプリです。 そして、外部に公開して、しかも、インターネットから見えるようにしたいと思う。これができるとまじで最高だぜへへ。 まずは構築から昔の俺が残してくれた手順に従って構築をやります。 クラスター情報 master : controle plane gamma : worker zeta : worker でやりたいと思います。ちなみにマスターのosはraspbianです。 バージョン情報 このサイト を参考にバージョンを決めた。 k8s (kubelet : kubeadm) : 1.27 containerd : 1.7.0 + なので、1.7.2でインストールする。 containerdのarmバイナリ k8sを導入するまとめ 1. containerdを導入。 k8sのv1.25以降は、コンテナエンジンにdockerエンジンを使えません。(理由は、dockerがcriを満たしていないから)。criを満たしてるcontainerdをインストールする必要があります。 containerdのインストールは、githubのリポジトリからできます。同時に、runcとcniもインストールしてださい。 ちなみに、cniは、container network interfaceで、まあ、コンテナのネットワークを操るためのapiですね。 で、そのapiを操るのが、cniプラグイン。で、cniプラグインには、calicoだったり、flannelだったりがあるわけですね。で、プラグインには、3種類のモードがあって、オーバーレイと、ルーティングと、アンダーレイですね。オーバレイを使うことで、別のホスト上にいるコンテナ同士が同じセグメントにいるようになります。 で、だけど、/etc/cni/net.dにはデフォルトのやつ、おかなくて結構です。まったく問題ありませんので、お気になさらず。ということで。 ちなみに、これにはruncも入っているので安心してインストール/ダウンロードしてください。全く問題ないです。 wget https://github.com/containerd/containerd/releases/download/v1.7.20/cri-containerd-cni-1.7.20-linux-arm64.tar.gz mkdir containerd_dir mv cri-containerd-cni containerd_dir tar xvfz cri sudo mkdir /etc/containerd 必要なものを必要なディレクトリに置いてくれるように以下のスクリプトを実行 #!/bin/bash # Define the paths to your installation directories CONTAINERD_BIN_DIR="/usr/local/bin" CONTAINERD_SBIN_DIR="/usr/local/sbin" CONTAINERD_ETC_DIR="/etc/containerd" CONTAINERD_SYSTEMD_DIR="/etc/systemd/system" CONTAINERD_OPT_DIR="/opt/" # Define the source directory where you extracted the Containerd files SOURCE_DIR="/home/ray/containerd_dir" # Move binary files to /usr/local/bin cp -r "$SOURCE_DIR/usr/local/bin/"* "$CONTAINERD_BIN_DIR/" # Move sbin files to /usr/local/sbin cp -r "$SOURCE_DIR/usr/local/sbin/"* "$CONTAINERD_SBIN_DIR/" # Move etc files to /etc/containerd cp -r "$SOURCE_DIR/etc/"* "$CONTAINERD_ETC_DIR/" # Move systemd service file to /etc/systemd/system cp "$SOURCE_DIR/etc/systemd/system/containerd.service" "$CONTAINERD_SYSTEMD_DIR/" # move cni and other utils to opt cp -r "$SOURCE_DIR/opt/containerd" "CONTAINERD_OPT_DIR" cp -r "$SOURCE_DIR/opt/cni" "CONTAINERD_OPT_DIR" # Reload systemd to recognize the new service systemctl daemon-reload echo "Containerd installed successfully." nerdctlも一緒にいんすとる ...