快轉到主要內容

《關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事》 Day 04 基礎架構設定 - Instance & 網路設定

·403 字·2 分鐘·
ChengHao Yang
作者
ChengHao Yang
SRE / CNCF Ambassador
目錄
iThome 鐵人賽 2022 ——《關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事》 - 本文屬於一個選集。
§ 4: 本文

本篇大綱
#

這篇文章是要架設 Cloud Native Infra Labs 的第三部分,接續前面設定好的 Key pair,要來設定 VM Instance,還有一些小 Bug。

內文
#

接下來我們就來設定 VM 啦!

設定雲實例 VM
#

回顧一下這次架設 Kubernetes Cluster,分配如下:

Server NameCPURamPrivate IPNotes
bastion-host22G192.168.200.100/24Public IP, Control Center
k8s-m044G192.168.200.101/24K8S Master node
k8s-n044G192.168.200.102/24K8S Worker node 0
k8s-n144G192.168.200.103/24K8S Worker node 1
gitlab-runner22G192.168.200.104/24GitLab Shell Runner

我這裡會架設 5 台 Instance,其中 3 台做為 Kubernetes 的 Master Node 跟 Worker Node,1 台做為跳板 Host,剩下 1 台如果有機會講到 GitLab CI/CD 的話就會把他排進去做為 Shell Runner。

這邊我們先架設 bastion-host

按下 發動雲實例

day04-01.png
  • 雲實例:bastion-host
day04-02.png

來源選擇 Ubuntu-22.04

day04-03.png

類型選擇 m1.small(2 vCPUs, 2 GB)

day04-04.png

網路選擇 public,等等再手動掛 private

day04-05.png

安全性群組給予 Public SSHPrivate SSH

day04-06.png

Key Pair 選擇上次新增的金鑰對,就可以發動雲實例了。

day04-07.png

手動掛上網卡,按下 附加網路卡

day04-08.png
  • 選擇建立網路介面的形式:由網路(跟 IP 位址)
  • 網路:private
  • 固定 IP 位址:192.168.200.100

加完網路卡記得重開 VM

day04-09.png

就來試試連線,<PUBLIC_IP> 填寫 bastion-host 寫的 IP,<PRIVATE_KEY_PATH> 填寫私鑰的路徑。

ssh -i <PRIVATE_KEY_PATH> ubuntu@<PUBLIC_IP>

ssh -i my-server [email protected] # 反正我 IP 鎖上了
day04-10.png

確認可以連線後就可以來建立其他的 Instance。

這裡就依序把 k8s-m0k8s-n0k8s-n1gitlab-runner 建立起來。

day04-11.png

gitlab-runner 選擇 2 vCPUs, 2 GB,其餘選擇 4 vCPU, 4 GB。

day04-12.png

每一台都加入 private 網路。

day04-13.png

安全性群組就是 Private SSH 都要加入,k8s-m0 加入 Master nodek8s-n0k8s-n1 加入 Worker node

day04-14.png

如果發現 private 網路分配的 IP 沒有想要的,可以先卸除網路卡。

day04-15.png

再像剛剛前面的步驟加入回去,最後再重開機 VM 即可。

day04-16.png

雙網卡修正
#

接完後會發現,怎麼都 ping 不到。

day04-17.png

這邊我們用下列命令查詢:

ip addr
day04-18.png

就會發現他的另一個網卡沒有設定到。(這裡不知道是 Openstack 問題還是 Lab 本身問題)

我們來手動修改:(vim 或 nano 都可以,覺得順手就好)

sudo vim /etc/netplan/50-cloud-init.yaml

檔案內容會長這樣

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: fa:16:3e:8b:cb:6a
            set-name: ens3
    version: 2

幫另外一組網卡 ens4 加入設定(設定 DHCP 沒關係,因為 Openstack 已經鎖定了。)

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: fa:16:3e:8b:cb:6a
            set-name: ens3
        ens4:
            dhcp4: true
            match:
                macaddress: fa:16:3e:1f:f6:de # 填寫 ens4 的 Mac address
            set-name: ens4
    version: 2

看好差不多就可以套用,但注意如果套用失敗就連不進去了,就需要再次重建了。

sudo netplan apply
day04-19.png

重新 apply 之後就會有內網了,也可以 Ping 到主機。

day04-20.png
day04-21.png

複製 Private key 到 Bastion Host
#

接下來我們就把 Key 複製進去 Bastion Host 裡面,可以使用 scp 複製檔案進去到 Bastion Host。

scp -i <PRIVATE_KEY_PATH> <LOCAL_FILE_PATH> <REMOTE_USER>@<REMOTE_IP>:<REMOTE_PATH>

這個就是從 Local 端傳到 Remote 端,反之亦然。

scp -i my-server ./my-server [email protected]:~/private.key

我這裡是把它取名為 private.key,然後就可以試著用 ssh 連線到其他的內網 VM 了。

ssh -i private.key [email protected]
ssh -i private.key [email protected]
ssh -i private.key [email protected]
ssh -i private.key [email protected]

這篇內容已經把主機架設好了,接下來我們就來簡介 K8s 還有為什麼會需要 K8s 吧!

本系列內容也會同步貼到我的 iT 邦幫忙 https://ithelp.ithome.com.tw/users/20112934 歡迎來點一下追蹤,那我們就下一篇文章見啦!

iThome 鐵人賽 2022 ——《關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事》 - 本文屬於一個選集。
§ 4: 本文

相關文章