遅ればせながら自宅内環境をkubernetesで作っていく このgitstはそれらの経緯の記録を行っているもの
Last active
February 9, 2022 16:04
-
-
Save g00cey/de7b2b716185673b26d5333dccf0ee5d to your computer and use it in GitHub Desktop.
このgitstは自宅環境内でのkubernetes環境で自分が使うサービスを管理するまでの記録を綴ったもの
VM(AMD64) Pi4 ベアメタル(raspbian)
Pi4で軽量に動くkubernetes環境ということで、k3s
core-dns: サービスとのマッピングがどんどん書き換わっていく関係でdnsmasqではなく、core-dnsが必要。 etcd: corednsで使用する情報を格納してどんどん入れ替えてくので必要。
kubernetesが重たいのは知っているので除外、そうなるとmicrok8s?と思ってインストールして試してみたが、何のコンテナを動かしてもいないときでも結構重たいのでこれは採用できないと思った。
結果的に残ったk3sで構築していくことに
Microk8sでadd-onで作っていたRegistryだったりmetal-lbだったりは自前で用意する必要がある。
curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -
hostで下記を実行し、nodeで実行するコマンドを生成
token=`sudo cat /var/lib/rancher/k3s/server/node-token`
master_host=`hostname`
echo "curl -sfL https://get.k3s.io | K3S_URL=https://${master_host}:6443 K3S_TOKEN=${token} sh -"
nodeで下記を実行
curl -sfL https://get.k3s.io | K3S_URL=https://master_node_ip:6443 K3S_TOKEN=mynodetoken sh -
ラズベリーパイでk3sクラスタを作ってみた | 日常系エンジニアのTech Blog
上記のサイトをcontrol planeのセットアップで参考にしていました。
raspbianように読み替えて下記の通りにしました。
modprobe nf_conntrack
modprobe br_netfilter
modprobe vxlan
cat << 'EOF' | sudo tee -a /etc/modules-load.d/modules.conf
nf_conntrack
br_netfilter
vxlan
EOF
cat << 'EOF' | sudo tee -a /etc/sysctl.d/99-kubernetes.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system
kubectl get node
kubectl get node
^TNAME STATUS ROLES AGE VERSION
pi1 Ready control-plane,master 5h8m v1.22.5+k3s1
pi4 Ready <none> 4h49m v1.22.5+k3s1
pi2 Ready <none> 4h50m v1.22.5+k3s1
pi3 Ready <none> 4h49m v1.22.5+k3s1
manually
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
snap package:
sudo snap install helm --classic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 | |
kind: Deployment | |
metadata: | |
name: nginx-deployment | |
spec: | |
selector: | |
matchLabels: | |
app: nginx | |
replicas: 4 # tells deployment to run 2 pods matching the template | |
template: | |
metadata: | |
labels: | |
app: nginx | |
spec: | |
containers: | |
- name: nginx | |
image: nginx:1.14.2 | |
ports: | |
- containerPort: 80 |
kubernetes apply -f 3.nginx.yaml
wget pi1
wget pi2
wget pi3
wget pi4
--2022-01-22 04:16:51-- http://pi1/
pi1 (pi1) をDNSに問いあわせています... 192.168.10.190
pi1 (pi1)|192.168.10.190|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2022-01-22 04:16:51 エラー 404: Not Found。
--2022-01-22 04:16:51-- http://pi2/
pi2 (pi2) をDNSに問いあわせています... 192.168.10.191
pi2 (pi2)|192.168.10.191|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2022-01-22 04:16:51 エラー 404: Not Found。
--2022-01-22 04:16:51-- http://pi3/
pi3 (pi3) をDNSに問いあわせています... 192.168.10.192
pi3 (pi3)|192.168.10.192|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2022-01-22 04:16:51 エラー 404: Not Found。
--2022-01-22 04:16:51-- http://pi4/
pi4 (pi4) をDNSに問いあわせています... 192.168.10.193
pi4 (pi4)|192.168.10.193|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2022-01-22 04:16:51 エラー 404: Not Found。
よさそう
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment