Persiapan

Saya menggunakan tiga node VM untuk proyek lab rumah ini dengan 4 inti, 4 GB memori, dan 20 GB untuk penyimpanan kontainer, menggunakan sistem operasi Rocky Linux 9.5 dengan Docker Community Edition v28.2.2.

Nama Host Node vCPU Memori Penyimpanan Jaringan Pribadi
hmlab01swarm01 4 Core 4GB 20GB 172.16.0.111
hmlab01swarm02 4 Core 4GB 20GB 172.16.0.112
hmlab01swarm03 4 Core 4GB 20GB 172.16.0.113

Semua operasi menggunakan pengguna root, berhati-hatilah saat menjalankan perintah!
Pada langkah ini, eksekusi dilakukan di semua node

Opsional: Atur SElinux ke mode permisif untuk lingkungan pengembangan

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

Atur nama host statis

Konfigurasi lingkungan

node_01=hmlab01swarm01
node_02=hmlab01swarm02
node_03=hmlab01swarm03
node_IP01=172.16.0.111
node_IP02=172.16.0.112
node_IP03=172.16.0.113

Kemudian tambahkan nama host statis di /etc/hosts untuk semua node.

cat <<EOF > /etc/hosts
$NODE_IP01 $NODE_01
$NODE_IP02 $NODE_02
$NODE_IP03 $NODE_03
EOF

Tambahkan Repositori dan Instal Docker

dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Set

cat <<EOF | sudo tee /etc/docker/daemon.json
{
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
      "max-size": "100m"
      },
      "storage-driver": "overlay2"
}
EOF
systemctl restart docker.service
systemctl enable docker.service

Membuat kluster

Jalankan perintah berikut hanya pada node manajer pertama

docker swarm init --advertise-addr 172.16.0.111 --force-new-cluster

cluster-init

Untuk menambahkan node manajer lain, jalankan perintah ini yang telah kita gunakan sebelumnya dengan docker swarm join-token manager di node manajer pertama.

docker swarm join --token SWMTKN-1-04x40p3y8w72nv7a3merg1ee4ya4t6r3ra379gv7hv79udt0ho-8d18zrgpy5elj3f69i7rvz8tf 172.16.0.111:2377

another-swarm-manager

Referensi