Kubernetes feat. Fedora CoreOS on Bare Metal 實戰分享
最近在 eBay 上買了台 Dell PowerEdge R420 (12 cores, 96GB mem, 4TB HDD) 要來將所有在家裡跑的 web apps dockerized 後放到 Kubernetes 上來跑. 結果在轉移第一個 app 時就花了超乎預期的時間.
安裝 OS 與 Kubernetes 的過程很順利, 我選用的是 Fedora CoreOS 透過 live ISO 安裝在 bare metal 上的流程 (detail here). 用 live ISO 開機前需要準備一個 ignition file 來載入基本設定 (ip address, ssh key, etc.), 參考 Producing an Ignition File for details. 底下是我自己的設定 for your reference
variant: fcos
version: 1.0.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAA...... # 你的 SSH public key
storage:
files:
- path: /etc/NetworkManager/system-connections/eth0.nmconnection
mode: 0600
overwrite: true
contents:
# 手動設置 network interface 的 IP
inline: |
[connection]
type=ethernet
interface-name=eth0
[ipv4]
method=manual
addresses=192.168.100.124/24
gateway=192.168.100.1
dns=192.168.100.11;1.1.1.1;8.8.8.8
dns-search=redhat.com
上面的 guide 是用 podman 來跑 fcct 將 .fcc
轉成 .ign
. 如果你不喜歡或沒有 podman, 用 docker 也可以. 只要將 podman 換成 docker 即可 docker run -i --rm quay.io/coreos/fcct:release --pretty --strict < example.fcc > example.ign
CoreOS 安裝完成後, 我推薦使用 kubespray 來安裝 Kubernetes. kubespray 是使用 ansible 來設定及安裝所需要的 packages. 目前我只有一個 node, 但未來當我需要增加 nodes 的時候, 我只需要將新的 nodes 加到 kubespray 的 inventory file 後再跑一次 kuberspray 即可. For more information about ansible, visit here
經過上面的步驟後, 你就會有一個基本功能的 kubernetes cluster, 之後再來找時間談談怎麼設定 cluster admin 以及我還增加了那些額外的 services. That’s for today. Until next time, stay safe.