# K8s on Ubuntu Guide 關閉swap --- ``` swapon --show ``` > 確認有沒有啟用 swap如果,沒有任何輸出,代表目前系統沒有啟用 swap ``` sudo vim /etc/fstab ``` 將/swapfile所在行注釋 >Swap 在 /etc/fstab 裡的樣子會像這樣: \ ```UUID=xxxx-xxxx none swap sw 0 0``` \ 或是: \ ```/dev/sdX# none swap sw 0 0``` 暫時關閉swap ``` sudo swapoff -a ``` 啟用ipv4轉發 --- 暫時 ``` sudo sysctl -w net.ipv4.ip_forward=1 ``` 永久 ``` cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.ipv4.ip_forward = 1 EOF ``` 下載[kubectl, kubeadm, kubelet](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) --- 下載[docker](https://docs.docker.com/engine/install/ubuntu/) --- > docker在下載時會自動下載配套版本的containerd,如果有特殊需求再另外下載``` sudo apt install containerd ``` 提升權限 --- ``` sudo usermod -aG docker <user> ``` >重新登錄去更新權限狀態 產生containerd預設配置 --- ``` sudo mkdir -p /etc/containerd sudo containerd config default | sudo tee /etc/containerd/config.toml ``` 調整containerd 的 cgroup 驅動 --- ``` sudo vim /etc/containerd/config.toml ``` ``` [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] SystemCgroup = false -> true ``` ``` sudo systemctl restart containerd ``` > Node到此即可(更改hostname:sudo hostnamectl set-hostname new-hostname) init k8s --- ``` sudo kubeadm init --cri-socket unix:///var/run/containerd/containerd.sock --pod-network-cidr=<ip/mask> --control-plane-endpoint <ip> ``` 下載[calico](https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart) --- > 執行```watch kubectl get pods -n calico-system```觀察calico 的 pod,等待所有 calico pod 的 STATUS 為 Running > 執行```kubectl get nodes -o wide```,確認節點已成功連上集群,應看到如下狀態 > ``` > NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME > <your-hostname> Ready master 52m v1.12.2 10.128.0.28 <none> Ubuntu 18.04.1 LTS 4.15.0-1023-gcp docker://18.6.1 > ``` # Note 運行一段時間後加入節點需生成新token(預設 token 有效期 24hr)與ca證書的sha256編碼hash值 ``` kubeadm token create --print-join-command ``` >此為直接生成join指令 開啟自動補全與簡化指令: ``` # 設定 k 為 kubectl 的 alias alias k=kubectl # 啟用 kubectl 補全功能 source <(kubectl completion bash) complete -o default -F __start_kubectl k ``` > 把整段放入```~/.bashrc```中 <!-- second scheduler: apiVersion: kubescheduler.config.k8s.io/v1beta2 -> apiVersion: kubescheduler.config.k8s.io/v1 -->
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up