k8s/環境構築

k8s環境構築(MacOS)

YOOANT 2026. 4. 13. 19:08

1. Rocky Linux ISO ダウンロード (9.2 arm64 バージョン)

- Download : https://dl.rockylinux.org/vault/rocky/9.2/isos/aarch64/Rocky-9.2-aarch64-minimal.iso

- Site : https://rockylinux.org

 

2-1. UTM (4.6.5)

- Downlaod : https://github.com/utmapp/UTM/releases/download/v4.6.5/UTM.dmg

- Site : https://mac.getutm.app

 

2-2. VM

- Create a New Virtual Machine 選択

 

- Start : Virtualize
- Operating System : Linux
- Linux : Boot ISO Image [Browse..] -> Rocky ISO ファイル選択
- Hardware : Memory : 6144 MB, CPU Cores : 4
- Size : 32 GB
- Shared Directory : 無設定
- Summary : Name : k8s-master

 

▶ Summary

- Open VM Settings [チェック] 後に、[Save] したら詳細設定が表示される。

 

▶ 詳細設定

- Network > [V] Show Advanced Settings > Guest Network : 192.168.56.0/24 入力

2-3. VM 実行後 Rocky Linux 初期設定

- UTM 画面 > k8s-master 選択 > 実行▶ ボタンクリック > Install Rocky Linux 9.2

1. 言語 : 韓国語
2. ユーザー設定
  - rootパスワード(R):各自のrootパスワードを入力
  - rootユーザーのロック:チェックを解除
  - rootのパスワードによるSSHログインを許可:チェックを入れる

 

3. インストール先(D)
  - ストレージ構成:自動設定(A)にチェックが入っていることを確認後、[完了(D)]をクリック

 

4. ネットワークおよびホスト名
  - ホスト名(H):k8s-master を入力後、[適用(A)]をクリック
  - イーサネット(enp0s1):[設定(C)..]をクリック
   1) [IPv4設定]タブをクリック
   2) Method:手動
   3) アドレス:[Add]をクリック後 → アドレス(192.168.56.30)、ネットマスク(255.255.255.0)、ゲートウェイ(192.168.56.1)
  - [完了(D)]をクリック

5.[インストール開始(B)]をクリック
6.インストール完了メッセージを確認後、[再起動]する

 

2-4. Rocky Linux 実行

再起動すると、再度Linuxをインストールするように表示される。

そのため、上部の[電源ボタン]を押してシャットダウンし、下図のボタンを押すと[Clear]ボタンが表示される。

 

1.クリックして、上記の図のように(empty)状態になるようにする。

2.次に[▶]ボタンを押して、VMを起動する。

 

 

3. ターミナルでリモート接続

 

4-1. k8sインストール (arm64)

# yum -y update # (x)

echo '======== [4-2] タイムゾーン設定 ========'
timedatectl set-timezone Asia/Seoul
timedatectl set-ntp true
chronyc makestep

echo '======== [4-3] [WARNING FileExisting-tc]: tcがシステムパスに存在しないログ関連アップデート ========'
yum install -y yum-utils iproute-tc
echo '======== [4-3] [WARNING OpenSSL version mismatch ログ関連アップデート ========'
yum update openssl openssh-server -y

echo '======= [4-4] hosts設定 =========='
cat << EOF >> /etc/hosts
192.168.56.30 k8s-master
EOF

echo '======== [5] kubeadmインストール前の事前作業 ========'
echo '======== [5] ファイアウォール無効化 ========'
systemctl stop firewalld && systemctl disable firewalld

echo '======== [5] Swap無効化 ========'
swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab

echo '======== [6] コンテナランタイムインストール ========'
echo '======== [6-1] コンテナランタイムインストール前の事前作業 ========'
echo '======== [6-1] iptable設定 ========'
cat <<EOF |tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter

cat <<EOF |tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

sysctl --system

echo '======== [6-2] コンテナランタイム(containerdインストール) ========'
echo '======== [6-2-1] containerdパッケージインストール(option2) ========'
echo '======== [6-2-1-1] docker engineインストール ========'
echo '======== [6-2-1-1] repo設定 ========'
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

echo '======== [6-2-1-1] containerdインストール ========'
yum install -y containerd.io-1.6.21-3.1.el9.aarch64
systemctl daemon-reload
systemctl enable --now containerd

echo '======== [6-3] コンテナランタイム:CRI有効化 ========'
containerd config default > /etc/containerd/config.toml
sed -i 's/ SystemdCgroup = false/ SystemdCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd

echo '======== [7] kubeadmインストール ========'
echo '======== [7] repo設定 ========'
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

echo '======== [7] SELinux設定 ========'
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

echo '======== [7] kubelet, kubeadm, kubectlパッケージインストール ========'
yum install -y kubelet-1.27.2-150500.1.1.aarch64 kubeadm-1.27.2-150500.1.1.aarch64 kubectl-1.27.2-150500.1.1.aarch64 --disableexcludes=kubernetes
systemctl enable --now kubelet

echo '======== [8] kubeadmでクラスター作成 ========'
echo '======== [8-1] クラスター初期化(Pod Network設定) ========'
kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address 192.168.56.30

echo '======== [8-2] kubectl使用設定 ========'
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

echo '======== [8-3] Pod Networkインストール(calico) ========'
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico.yaml
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico-custom.yaml

echo '======== [8-4] MasterでPodを作成できるように設定 ========'
kubectl taint nodes k8s-master node-role.kubernetes.io/control-plane-

echo '======== [9] Kubernetes便利機能インストール ========'
echo '======== [9-1] kubectl自動補完機能 ========'
yum -y install bash-completion
echo "source <(kubectl completion bash)" >> ~/.bashrc
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
source ~/.bashrc

echo '======== [9-2] Dashboardインストール ========'
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/dashboard-2.7.0/dashboard.yaml

echo '======== [9-3] Metrics Serverインストール ========'
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/metrics-server-0.6.3/metrics-server.yaml

 

4-2. Pod 確認

k get pods -A
5. Dashboard接続

'k8s > 環境構築' 카테고리의 다른 글

kubernetes1.34クラスター構築  (0) 2026.04.23

日本語