最近在 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.