iT邦幫忙

2022 iThome 鐵人賽

DAY 2
1
DevOps

前端轉生~到了實驗室就要養幾隻可愛鯨魚:自架 Kubernetes 迷航日記系列 第 2

Day 2 — 我想要組可愛鯨魚艦隊~:Kubernetes + Docker 安裝(一)

  • 分享至 

  • xImage
  •  

可愛鯨魚

見習鯨魚這麼可愛不養一隻嗎?

圖片來源:Docker, Inc | LinkedIn


Kubernetes 發行版

Kubernetes 有不同發行版?!

相信各位都有聽過不同 雲端平台,他們都有自己一套 Kubernetes 例如:GKE, EKS, AKS, ...
(如果有$$使用公有雲可以減少很多踩雷時間,但我手上就只有機器沒有$$啊~)

那想 自架 Kubernetes 又有哪些選擇呢? kubeadm, minikube, microk8s, k3s, k0s, kind, ...

我因為初期看官方教學,就直接跳進了 kubeadm ~

kubeadm 安裝

我會以指令方式詳列各步驟,畢竟已經迷航重來好幾次了~ /images/emoticon/emoticon10.gif

註:我的 OS 版本 Ubuntu 20.04.3 LTS

關閉 swap

使用指令查看 swap 使用情況

cat /proc/swaps

Filename                                Type            Size    Used    Priority
/swap.img                               file            2097148 524     -2

我目前有使用的 swap Filename 為 swap.img,使用指令 swapoff -a 全部禁用

sudo swapoff -a

再檢查 /etc/fstab 設定,將 swap 相關檔案都註解掉,如最後一行 /swap.img

sudo vim /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation
/dev/disk/by-id/dm-uuid-LVM-XH3TxkEq3UeM0spGhibGchhEqdgSnnx8207HHO9eSyLmXbn15h5YQhuYVh3D2gaO / ext4 defaults 0 1
# /boot was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/c9397354-f4db-4d0d-afc2-6b71be28cc6e /boot ext4 defaults 0 1
# /swap.img       none    swap    sw      0       0

改完之後記得重啟機器!

sudo reboot

檢查 port 6443

檢查 port 有無被佔用

nc -v 127.0.0.1 6443

nc: connect to 127.0.0.1 port 6443 (tcp) failed: Connection refused

Connection refused 代表沒有被佔用是 正常 的哦!恭喜可以跳到下一步驟~

相反的,如果是 succeeded 代表有其他服務正在使用...

Connection to 127.0.0.1 6443 port [tcp/*] succeeded!

可以使用 netstat 查看是誰在用,如果沒有裝 netstat 可改用 lsof

sudo netstat -tulpn | grep :6443

sudo lsof -i -P -n | grep :6443

如果你看到的是 kube-apiser 你應該是重裝齁~可以參考之後的篇章,來看看關於 重新安裝 遇到的各種問題...

如果確認是不需要的東東可以用 sudo kill <PID> 砍掉

安裝 container runtime — Docker

Kubernetes 有支援不同 container runtime,不用思考當然要選擇可愛鯨魚 Docker 吧!

先說一下,如果你是用 snap 安裝 Docker 的...先砍了吧~
(如果你想知道我遇到什麼神奇現象可以看看之後的內容)

為 Docker 建立 repository

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安裝 Docker Engine

我安裝的版本為 20.10.18

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

啟用!召喚可愛鯨魚~

sudo service docker start

可使用 sudo docker info 檢查目前可愛鯨魚的狀態

將自己加入 Docker group

因為 Ubuntu 預設不使用 root 登入,將自己加入 Docker group 即可使用 docker 指令

sudo groupadd docker
sudo usermod -aG docker $USER

加入後記得重新登入,group 在下次登入才會生效,可以使用 groups 檢查是否加入
(如果用 sudo groups $USER 有看到,但 groups 看不到可以直接重啟 server 看看... sudo reboot )

成功後可直接執行 docker info 有沒有覺得更貼近可愛鯨魚了呢~

Ref


今天先安裝了 Docker 的部分,明天繼續安裝 Kubernetes 的部分吧~


上一篇
Day 1 — 先來看看我有哪些初始裝備
下一篇
Day 3 — 我想要組可愛鯨魚艦隊~:Kubernetes + Docker 安裝(二)
系列文
前端轉生~到了實驗室就要養幾隻可愛鯨魚:自架 Kubernetes 迷航日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言