Tag: K8n

kubectl cheatsheet

オプション効果
kubectl get nodesノードの一覧表示
kubectl get podsポッドの一覧表示
kubectl get pods --namespace=<namespace_name>特定のネームスペースのリソースを表示
kubectl get namespacesネームスペース一覧
kubectl get jobsジョブの確認
kubectl get jobsジョブの確認
kubectl get svc -o wideサービスの一覧表示(ロードバランサーも見れる)
kubectl get deployments -n <namespace>デプロイメントの一覧表示
kubectl rollout restart <deployment> -n defaultデプロイメントの再起動
kubectl logs <pod_name>ログの確認とデバッグ
kubectl logs jobs/example-jobログ
kubectl scale deployment <deployment> --replicas=0 -n <namespace>デプロイメントのスケール
kubectl exec -it <pod_name> -- <command>ポッド内でコマンドを実行するには
kubectl apply -f <filename.yaml>リソースの作成
kubectl delete -f <filename.yaml>リソースの削除
Read more...

nerdctl cheatsheet

–address /run/k3s/containerd/containerd.sock –namespace k8s.io

サンプル

sudo nerdctl –address /run/k3s/containerd/containerd.sock –namespace k8s.io build -t cli-tool-docker:latest /mnt/nfs/home/exampleuser/workspace/git/github.com/exampleuser/cli-tool-docker/

exec

nerdctl/docs/command-reference.md at main · containerd/nerdctl

–init でコンテナ内でinit経由で起動できる

nerdctl はコンテナ内で独自の init プロセスを自動的に起動します。 この init プロセスは PID 1 として動作し、ユーザーが指定したコマンドはその子プロセスとして実行されます。 これにより、コンテナ内のプロセス管理が改善され、特にゾンビプロセスの問題が効果的に解決されます。

参考

Read more...

Gentooでkubernetesのセットアップに失敗した

事前準備

  • 固定 IP 化
  • swap を無効化
  • docker のインストールと自動起動

cgroup で CPU とメモリーが有効になっている必要がある

Gentoo で OpenRC だと /etc/rc.conf で設定する。

Gentoo側は Cgroup v1 と v2 の設定が選べる(hybrit になるようだ)。 Kubernetes での Cgroup v2 サポートは Docker で Docker Engine 20.10 から実装された模様

2021/10/10 時点の 私の Gentoo の Docker のバージョンを確認した所、20.10.7 だった。 kubernetes は 1.22 から Cgroup v2 をサポートした模様 参考 Kubernetes 1.22 における新機能は?

なぜ失敗しているのか?

kubeletやkubeadmのコンパイルは上手くいく。そういう観点でパッケージメンテナの作業は成功している。 kubeletも起動している。kubeadm –dry-runも正常に終了する。が実際にkubeadmで構築する段階で失敗している。 ここまま検証するより、一度、正常に動作しているkubenetesと比較した方が検証が進みやすそうだったので、構築できたk3s.ioを用いて検証を続けている。

kubernetes をインストールする

gentoo は標準でパッケージが用意されていたので、それでどこまで行けるか確認してみる。

パッケージインストール

app-admin/helm がマスクされていたのでマスクを外す。

cat << EOF | sudo tee -a /etc/portage/package.accept_keywords
app-admin/helm **
EOF
cat /etc/portage/package.accept_keywords
sudo emerge --ask  --quiet --verbose --verbose-conflicts  app-admin/helm sys-cluster/kubeadm sys-cluster/kubectl sys-cluster/kubelet \
  app-emulation/flannel net-firewall/conntrack-tools sys-apps/ethtool net-firewall/ebtables net-misc/socat

kubeadm init を –dry-run で実行、エラーが起きない事を確認する

sudo kubeadm init --dry-run --pod-network-cidr=10.244.0.0/16
cgroup でエラーが起きた
CGROUPS_MEMORY: missing

memory と /proc/cgroup を確認すると memory の enabled を見ると 0 、off になっているようだ。 memory を有効にすることを考える。

Read more...