iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

本篇大綱

這篇文章是要架設 Cloud Native Infra Labs 的第二部分,簡介並設定安全性群組跟密鑰對,建立 VM 的前置作業。

內文

安全性群組

對於 IT 管理的部分,我們會需要控管每台 VM 進出的 Port,安全性群組就是我們需要的功能。

我們再來看我們要規劃的 Server 表:

Server Name CPU Ram Private IP Notes
bastion-host 2 2G 192.168.200.100/24 Public IP, Control Center
k8s-m0 4 4G 192.168.200.101/24 K8S Master node
k8s-n0 4 4G 192.168.200.102/24 K8S Worker node 0
k8s-n1 4 4G 192.168.200.103/24 K8S Worker node 1
gitlab-runner 2 2G 192.168.200.104/24 GitLab Shell Runner

bastion-host 是我們的堡壘 Server,接入裡面的內網,不讓 Kubernetes 對外直接 Expose,這裡我們只需要對外開 22 Port,並且限制外網來源即可。

內網的 VM 也要互相連線,需要對 Private IP 互相開 SSH 連線。

K8s 的部分我們可以先看官網裡面的 Reference

day03-1.png

這裡我們可以看到 Master node (Control plane) 是需要 Inbound 6443, 2379-2380, 10250, 10259, 10257,Worker node 則是需要 10250, 30000~32767,後面的 30000~32767 可以依據情況做調整,因為這個是 NodePort 範圍的預設。

那這樣我們就會大約需要幾個 Policy 來滿足我們上面的需求

  • Public SSH:對外 Expose SSH,套用 bastion-host
  • Private SSH:對內網的 SSH 可以互相連線,套用所有 Server
  • Master node:套用 Master node
  • Worker node:套用 Worker node

我們先來建立新的安全群組

點擊新建安全性群組

day03-2.png

這邊的名稱跟描述都可以自己取名

day03-3.png

新增完後會有個只有出口的設定,代表這可以向外連線出去。

點擊 加入規則

day03-4.png

  • 規則:SSH
  • 遙控:CIDR
  • CIDR:這裡可以依照需求調整。

如果想要方便連線可以設定 0.0.0.0/0,代表所有地方都可以連線。

day03-5.png

如果不想公開連線,就設定 <自己 IP>/32,代表只有此 IP 可以連線。

day03-6.png

再回去安全性群組新增 Private SSH

day03-7.png

Private SSH 新增規則:

  • 規則:SSH
  • 遙控:CIDR
  • CIDR:192.168.200.0/24 (代表所有內網 IP)

day03-8.png

再回去安全性群組新增 Master node 群組。

day03-9.png

Master node 新增 K8s API Server 規則:

  • 規則:自訂 TCP 規則
  • 描述:Kubernetes API server (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:接口
  • 接口:6443
  • 遙控:CIDR
  • CIDR:192.168.200.0/24

day03-10.png

Master node 新增 etcd 規則:

  • 規則:自訂 TCP 規則
  • 描述:etcd server client API (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:接口
  • 接口:6443
  • 遙控:CIDR
  • CIDR:192.168.200.0/24

day03-11.png

Master node 新增 Kubelet API 規則:

  • 規則:自訂 TCP 規則
  • 描述:Kubelet API (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:接口
  • 接口:10250
  • 遙控:安全性群組
  • 安全性群組:Master node
  • 網路協定類型:IPv4

day03-12.png

Master node 新增 kube-scheduler 規則:

  • 規則:自訂 TCP 規則
  • 描述:kube-scheduler (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:接口
  • 接口:10257
  • 遙控:安全性群組
  • 安全性群組:Master node
  • 網路協定類型:IPv4

day03-13.png

Master node 新增 kube-controller-manager 規則:

  • 規則:自訂 TCP 規則
  • 描述:kube-controller-manager (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:接口
  • 接口:10257
  • 遙控:安全性群組
  • 安全性群組:Master node
  • 網路協定類型:IPv4

day03-14.png

再回去安全性群組新增 Worker node 群組。

day03-15.png

Worker node 新增 Kubelet API 規則:

  • 規則:自訂 TCP 規則
  • 描述:Kubelet API Master node (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:接口
  • 接口:10250
  • 遙控:安全性群組
  • 安全性群組:Master node
  • 網路協定類型:IPv4

day03-16.png

Worker node 新增 Kubelet API 規則(自己):

  • 規則:自訂 TCP 規則
  • 描述:Kubelet API Self (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:接口
  • 接口:10250
  • 遙控:安全性群組
  • 安全性群組:Worker node
  • 網路協定類型:IPv4

day03-17.png

Worker node 新增 NodePort 規則:

  • 規則:自訂 TCP 規則
  • 描述:NodePort Services (描述都可以自己訂定,方便辨識即可。)
  • 方向:入口
  • 開放埠口:範圍埠口
  • 從此埠口:30000
  • 到此埠口:32767
  • 遙控:CIDR
  • CIDR:0.0.0.0/0 (之後要為 Load Balancer 做準備,因此設定所有來源。)

day03-18.png

那這樣就設定完成了。

密鑰對 Key Pair

對 VM 做 SSH 連線有兩種方式,第一種是密碼,但是密碼很容易被暴力破解,通常我們會用第二種,SSH Key。

這裡可以用 Openstack 上的新增密鑰對來做,但這裡為了增加安全性還有自訂方便性,我會用 ssh-keygen 本機產生公私鑰。

ssh-keygen -t ed25519 -C "<comment>" -f my-server

下完這組命令以後會產生私鑰 my-server 跟公鑰 my-server.pub 這兩個檔案

day03-19.png

day03-20.png

點擊 輸入公鑰

day03-21.png

  • 密鑰對名稱:CloudNative - Personal Lab (可以自訂)
  • 金鑰類型:SSH 金鑰檔
  • 公鑰:my-server.pub 的檔案內容

day03-22.png

這樣我們就建立好我們的 Key pair 了,下一篇我們就來設定 VM Instance。

本系列內容也會同步貼到我的 Blog https://blog.yangjerry.tw 歡迎來我的 Blog 點一下 RSS 追蹤,那我們就下一篇文章見啦!


上一篇
Day 02 基礎架構設定 - 網路架構
下一篇
Day 04 基礎架構設定 - Instance & 網路設定
系列文
關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言