快轉到主要內容

《關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事》 Day 03 基礎架構設定 - 安全性群組 & 密鑰對

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

本篇大綱
#

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

內文
#

安全性群組
#

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

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

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

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。

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

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

相關文章