2022年3月26日土曜日

Ubuntu 20.04/Debian 11(Bullseye)/Raspberry Pi OS(Bullseye 32bit)に軽量kubernetesのk3sをインストールする

Ubuntu 20.04/Debian 11(Bullseye)/Raspberry Pi OS(Bullseye 32bit)に軽量kubernetesのk3sをインストールするには、以下の実行手順を実行します。

実行手順

1. k3sのインストール
※Raspberry Pi OSの場合は以下のコマンドでパラメータを/boot/cmdline.txtに追加して再起動します。
echo ' cgroup_memory=1 cgroup_enable=memory' | sudo tee -a /boot/cmdline.txt

・ここからUbuntu/Debian/Raspberry Pi OS共通
sudo apt-get -y install curl

curl -sfL https://get.k3s.io | sh -

sudo k3s kubectl get node
※インストールしたホストの名称が表示されることを確認

2. (任意)kubernetes-dashboardのの導入
2.1. dashboardをデプロイ
GITHUB_URL=https://github.com/kubernetes/dashboard/releases
VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
sudo k3s kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml

2.2. デプロイ確認
sudo k3s kubectl get deployment -n kubernetes-dashboard

2.3. サービスアカウント作成
cat << EOF > dashboard.admin-user.yml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
EOF

sudo k3s kubectl apply -f ./dashboard.admin-user.yml

2.4. ClusterRoleBindingの作成
cat << EOF > dashboard.admin-user-role.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
EOF

sudo k3s kubectl apply -f ./dashboard.admin-user-role.yml

2.5. 外部からアクセス可能にする
sudo k3s kubectl port-forward --address='0.0.0.0' -n kubernetes-dashboard service/kubernetes-dashboard 8443:443
※Ctrl+Cで止まります

2.6. Tokenの取得
※手順2.5とは別の端末で実行
sudo k3s kubectl -n kubernetes-dashboard describe secret admin-user-token | grep '^token'

2.7. 外部ホストからブラウザでアクセス
2.6で取得したトークンを使用してログインします
https://<ホストまたはIP>:8443/#/login

3. (任意)kubernetes-dashboard用port-forwardのサービス化
以下のコマンドを実行してkubernetes dashboardにport fowardするサービスを作成します。
cat << EOF | sudo tee /etc/systemd/system/portfoward-dashboard.service
[Unit]
Description=port foward for kubernetes dashboard
After=k3s.service

[Service]
ExecStart=/usr/local/bin/k3s kubectl port-forward --address='0.0.0.0' -n kubernetes-dashboard service/kubernetes-dashboard 8443:443
StartLimitInterval=0
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# サービス開始
sudo systemctl start portfoward-dashboard.service

# サービス有効化
sudo systemctl enable portfoward-dashboard.service

# サービスステータス
sudo systemctl status portfoward-dashboard.service

0 件のコメント:

コメントを投稿