自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用K3s在樹莓派上運(yùn)行Kubernetes集群

系統(tǒng) Linux
我對在樹莓派上搭建 Kubernetes 集群已經(jīng)感興趣很長時間了,只要照著網(wǎng)上的教程,我可以在由三個樹莓派組成的集群中搭建一套 Kubernetes 并正常運(yùn)行。但在這種情況下,主節(jié)點(diǎn)上的內(nèi)存和 CPU 資源捉襟見肘,執(zhí)行 Kubernetes 任務(wù)的時候往往性能不佳,想要升級 Kubernetes 就更不可能了。

[[320478]]

跟隨接下來的介紹,自己搭建一個三節(jié)點(diǎn)的 Kubernetes 集群。

我對在樹莓派上搭建 Kubernetes 集群已經(jīng)感興趣很長時間了,只要照著網(wǎng)上的教程,我可以在由三個樹莓派組成的集群中搭建一套 Kubernetes 并正常運(yùn)行。但在這種情況下,主節(jié)點(diǎn)上的內(nèi)存和 CPU 資源捉襟見肘,執(zhí)行 Kubernetes 任務(wù)的時候往往性能不佳,想要升級 Kubernetes 就更不可能了。

這個時候,我非常激動地發(fā)現(xiàn)了 K3s 這個項目。K3s 被譽(yù)為在可用于資源受限環(huán)境下的輕量級 Kubernetes,它還針對 ARM 處理器做出了優(yōu)化,這讓 Kubernetes 集群可以在樹莓派上運(yùn)行得更好。在下文中,我們將會使用 K3s 來創(chuàng)建一個 Kubernetes 集群。 

 

準(zhǔn)備

要按照本文介紹的方式創(chuàng)建 Kubernetes 集群,首先需要準(zhǔn)備:

  • 至少一個樹莓派(包括 SD 卡和電源)
  • 網(wǎng)線
  • 將所有樹莓派連接到一起的交換機(jī)或路由器

我們會通過在線安裝的方式安裝 K3s,因此還需要可以連接到互聯(lián)網(wǎng)。

集群概覽

在這個集群里,我們會使用三個樹莓派。其中一個樹莓派作為主節(jié)點(diǎn),我們將它命名為 kmaster,并為其分配一個靜態(tài) IP 192.168.0.50(注:假設(shè)使用的私有網(wǎng)段是 192.168.0.0/24),而另外兩個樹莓派作為工作節(jié)點(diǎn),分別命名為 knode1knode2,也分別分配 192.168.0.51192.168.0.52 兩個 IP 地址。

當(dāng)然,如果你實(shí)際的網(wǎng)絡(luò)布局和上面不同,只要將文中所提及到的 IP 替換成你實(shí)際可用的 IP 就可以了。

為了不需要通過 IP 來引用某一個節(jié)點(diǎn),我們將每個節(jié)點(diǎn)的主機(jī)名記錄到 PC 的 /etc/hosts 文件當(dāng)中:

  1. echo -e "192.168.0.50\tkmaster" | sudo tee -a /etc/hosts
  2. echo -e "192.168.0.51\tknode1" | sudo tee -a /etc/hosts
  3. echo -e "192.168.0.52\tknode2" | sudo tee -a /etc/hosts

部署主節(jié)點(diǎn)

我們首先部署主節(jié)點(diǎn)。最開始的步驟當(dāng)然是使用鏡像安裝最新的 Raspbian,這個步驟可以參考我的另一篇文章,在這里就不展開介紹了。在安裝完成之后,啟動 SSH 服務(wù),將主機(jī)名設(shè)置為 kmaster,然后分配靜態(tài) IP 192.168.0.50

在主節(jié)點(diǎn)上安裝 Raspbian 完成后,啟動樹莓派并通過 ssh 連接上去:

  1. ssh pi@kmaster

在主節(jié)點(diǎn)上執(zhí)行以下命令安裝 K3s:

  1. curl -sfL https://get.k3s.io | sh -

等到命令跑完以后,一個單節(jié)點(diǎn)集群就已經(jīng)運(yùn)行起來了。讓我們檢查一下,還在這個樹莓派上執(zhí)行:

  1. sudo kubectl get nodes

就會看到這樣的輸出:

  1. NAME STATUS ROLES AGE VERSION
  2. kmaster Ready master 2m13s v1.14.3-k3s.1

獲取連接令牌join token

之后我們需要部署工作節(jié)點(diǎn)。在工作節(jié)點(diǎn)上安裝 K3s 的時候,會需要用到連接令牌,它放置在主節(jié)點(diǎn)的文件系統(tǒng)上。首先把連接令牌保存出來以便后續(xù)使用:

  1. sudo cat /var/lib/rancher/k3s/server/node-token

部署工作節(jié)點(diǎn)

通過 SD 卡在每個作為工作節(jié)點(diǎn)的樹莓派上安裝 Raspbian。在這里,我們把其中一個樹莓派的主機(jī)名設(shè)置為 knode1,為其分配 IP 地址 192.168.0.51,另一個樹莓派的主機(jī)名設(shè)置為 knode2,分配 IP 地址 192.168.0.52。接下來就可以安裝 K3s 了。

啟動主機(jī)名為 knode1 的樹莓派,通過 ssh 連接上去:

  1. ssh pi@knode1

在這個樹莓派上,安裝 K3s 的過程和之前差不多,但需要另外加上一些參數(shù),表示它是一個工作節(jié)點(diǎn),需要連接到一個已有的集群上:

  1. curl -sfL http://get.k3s.io | K3S_URL=https://192.168.0.50:6443 \
  2. K3S_TOKEN=剛才保存下來的連接令牌 sh -

K3S_TOKEN 的值需要替換成剛才保存下來的實(shí)際的連接令牌。完成之后,在主機(jī)名為 knode2 的樹莓派上重復(fù)這個安裝過程。

通過 PC 訪問集群

現(xiàn)在如果我們想要查看或者更改集群,都必須 ssh 到集群的主節(jié)點(diǎn)才能使用 kubectl,這是比較麻煩的。因此我們會將 kubectl 放到 PC 上使用。首先,在主節(jié)點(diǎn)上獲取一些必要的配置信息,sshkmaster 上執(zhí)行:

  1. sudo cat /etc/rancher/k3s/k3s.yaml

復(fù)制上面命令的輸出,然后在你的 PC 上創(chuàng)建一個目錄用來放置配置文件:

  1. mkdir ~/.kube

將復(fù)制好的內(nèi)容寫入到 ~/.kube/config 文件中,然后編輯該文件,將

  1. server: https://localhost:6443

改為

  1. server: https://kmaster:6443

出于安全考慮,只對自己保留這個配置文件的讀寫權(quán)限:

  1. chmod 600 ~/.kube/config

如果 PC 上還沒有安裝 kubectl 的話,就可以開始安裝了。Kubernetes 官方網(wǎng)站上有各種平臺安裝 kubectl方法說明,我使用的是 Ubuntu 的衍生版 Linux Mint,所以我的安裝方法是這樣的:

  1. sudo apt update && sudo apt install -y apt-transport-https
  2. curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
  3. echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
  4. sudo apt update && sudo apt install kubectl

上面幾個命令的作用是添加了一個包含 Kubernetes 的 Debian 軟件庫,獲取 GPG 密鑰以確保安全,然后更新軟件包列表并安裝 kubectl。如果 kubectl 有更新,我們將會通過標(biāo)準(zhǔn)軟件更新機(jī)制standard software update mechanism收到通知。

現(xiàn)在在 PC 上就可以查看 Kubernetes 集群了:

  1. kubectl get nodes

輸出大概會是這樣:

  1. NAME STATUS ROLES AGE VERSION
  2. kmaster Ready master 12m v1.14.3-k3s.1
  3. knode1 Ready worker 103s v1.14.3-k3s.1
  4. knode1 Ready worker 103s v1.14.3-k3s.1

至此,我們已經(jīng)搭建了一個三節(jié)點(diǎn)的 Kubernetes 集群。

K3s 的彩蛋

如果執(zhí)行 kubectl get pods --all-namespaces,就會看到其它服務(wù)的一些 Pod,比如 Traefik。Traefik 在這里起到是反向代理和負(fù)載均衡器的作用,它可以讓流量從單個入口進(jìn)入集群后引導(dǎo)到集群中的各個服務(wù)。Kubernetes 支持這種機(jī)制,但 Kubernetes 本身不提供這個功能,因此 Traefik 是一個不錯的選擇,K3s 安裝后立即可用的優(yōu)點(diǎn)也得益于此。 

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2022-05-20 11:54:13

KubernetesK3sLinux

2023-10-27 08:01:23

SSH連接K3s

2020-02-29 15:20:18

K8SKubernetes集群

2019-05-06 13:52:00

樹莓派Ubuntu MATEUbuntu

2020-04-14 13:15:27

k3sSSL證書樹莓派

2021-12-21 21:00:23

Ansible樹莓派語音助手

2020-05-13 07:00:00

K9SKubernetes集群

2020-09-11 19:41:06

KubernetesK8SK3S

2020-06-01 20:00:28

樹莓派TT-RSSLinux

2025-01-07 14:36:12

2020-07-16 21:00:05

樹莓派Kubernetes集Linux

2024-07-16 09:41:01

2021-03-19 13:00:39

樹莓派Linux

2018-11-08 09:00:31

樹莓派WordPressLinux

2022-02-08 15:59:29

k3sk8sDevOps

2024-06-07 09:44:10

K9s工具集群

2021-05-17 14:49:40

Kubernetes邊緣設(shè)備

2019-07-31 09:32:06

2020-07-10 09:37:24

KubernetesK9s集群管理

2017-04-24 17:00:26

Linux樹莓派Fedora 25
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號