精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用樹莓派構(gòu)建Kubernetes集群

系統(tǒng) Linux
將 Kubernetes 安裝在多個樹莓派上,實(shí)現(xiàn)自己的“家庭私有云”容器服務(wù)。

[[334002]]

將 Kubernetes 安裝在多個樹莓派上,實(shí)現(xiàn)自己的“家庭私有云”容器服務(wù)。

Kubernetes 從一開始就被設(shè)計為云原生的企業(yè)級容器編排系統(tǒng)。它已經(jīng)成長為事實(shí)上的云容器平臺,并由于接受了容器原生虛擬化和無服務(wù)器計算等新技術(shù)而繼續(xù)發(fā)展。

從微型的邊緣計算到大規(guī)模的容器環(huán)境,無論是公有云還是私有云環(huán)境,Kubernetes 都可以管理其中的容器。它是“家庭私有云”項(xiàng)目的理想選擇,既提供了強(qiáng)大的容器編排,又讓你有機(jī)會了解一項(xiàng)這樣的技術(shù) —— 它的需求如此之大,與云計算結(jié)合得如此徹底,以至于它的名字幾乎就是“云計算”的代名詞。

沒有什么比 Kubernetes 更懂“云”,也沒有什么能比樹莓派更合適“集群起來”!在廉價的樹莓派硬件上運(yùn)行本地的 Kubernetes 集群是獲得在真正的云技術(shù)巨頭上進(jìn)行管理和開發(fā)的經(jīng)驗(yàn)的好方法。

在樹莓派上安裝 Kubernetes 集群

本練習(xí)將在三個或更多運(yùn)行 Ubuntu 20.04 的樹莓派 4 上安裝 Kubernetes 1.18.2 集群。Ubuntu 20.04(Focal Fossa)提供了針對 64 位 ARM(ARM64)的樹莓派鏡像(64 位內(nèi)核和用戶空間)。由于目標(biāo)是使用這些樹莓派來運(yùn)行 Kubernetes 集群,因此運(yùn)行 AArch64 容器鏡像的能力非常重要:很難找到 32 位的通用軟件鏡像乃至于標(biāo)準(zhǔn)基礎(chǔ)鏡像。借助 Ubuntu 20.04 的 ARM64 鏡像,可以讓你在 Kubernetes 上使用 64 位容器鏡像。

AArch64 vs. ARM64;32 位 vs. 64 位;ARM vs. x86

請注意,AArch64 和 ARM64 實(shí)際上是同一種東西。不同的名稱源于它們在不同社區(qū)中的使用。許多容器鏡像都標(biāo)為 AArch64,并能在標(biāo)為 ARM64 的系統(tǒng)上正常運(yùn)行。采用 AArch64/ARM64 架構(gòu)的系統(tǒng)也能夠運(yùn)行 32 位的 ARM 鏡像,但反之則不然:32 位的 ARM 系統(tǒng)無法運(yùn)行 64 位的容器鏡像。這就是 Ubuntu 20.04 ARM64 鏡像如此有用的原因。

這里不會太深入地解釋不同的架構(gòu)類型,值得注意的是,ARM64/AArch64 和 x86_64 架構(gòu)是不同的,運(yùn)行在 64 位 ARM 架構(gòu)上的 Kubernetes 節(jié)點(diǎn)無法運(yùn)行為 x86_64 構(gòu)建的容器鏡像。在實(shí)踐中,你會發(fā)現(xiàn)有些鏡像沒有為兩種架構(gòu)構(gòu)建,這些鏡像可能無法在你的集群中使用。你還需要在基于 Arch64 的系統(tǒng)上構(gòu)建自己的鏡像,或者跳過一些限制以讓你的常規(guī)的 x86_64 系統(tǒng)構(gòu)建 Arch64 鏡像。在“家庭私有云”項(xiàng)目的后續(xù)文章中,我將介紹如何在常規(guī)系統(tǒng)上構(gòu)建 AArch64 鏡像。

為了達(dá)到兩全其美的效果,在本教程中設(shè)置好 Kubernetes 集群后,你可以在以后向其中添加 x86_64 節(jié)點(diǎn)。你可以通過使用 Kubernetes 的污點(diǎn)taint 和容忍toleration 能力,由 Kubernetes 的調(diào)度器將給定架構(gòu)的鏡像調(diào)度到相應(yīng)的節(jié)點(diǎn)上運(yùn)行。

關(guān)于架構(gòu)和鏡像的內(nèi)容就不多說了。是時候安裝 Kubernetes 了,開始吧!

前置需求

這個練習(xí)的要求很低。你將需要:

  • 三臺(或更多)樹莓派 4(最好是 4GB 內(nèi)存的型號)。
  • 在全部樹莓派上安裝 Ubuntu 20.04 ARM64。

為了簡化初始設(shè)置,請閱讀《修改磁盤鏡像來創(chuàng)建基于樹莓派的家庭實(shí)驗(yàn)室》,在將 Ubuntu 鏡像寫入 SD 卡并安裝在樹莓派上之前,添加一個用戶和 SSH 授權(quán)密鑰(authorized_keys)。

配置主機(jī)

在 Ubuntu 被安裝在樹莓派上,并且可以通過 SSH 訪問后,你需要在安裝 Kubernetes 之前做一些修改。

安裝和配置 Docker

截至目前,Ubuntu 20.04 在 base 軟件庫中提供了最新版本的 Docker,即 v19.03,可以直接使用 apt 命令安裝它。請注意,包名是 docker.io。請在所有的樹莓派上安裝 Docker:

  1. # 安裝 docker.io 軟件包
  2. $ sudo apt install -y docker.io

安裝好軟件包后,你需要做一些修改來啟用 cgroup(控制組)。cgroup 允許 Linux 內(nèi)核限制和隔離資源。實(shí)際上,這可以讓 Kubernetes 更好地管理其運(yùn)行的容器所使用的資源,并通過讓容器彼此隔離來增加安全性。

在對所有樹莓派進(jìn)行以下修改之前,請檢查 docker info 的輸出:

  1. # 檢查 `docker info`
  2. # 省略了某些輸出
  3. $ sudo docker info
  4. (...)
  5.  Cgroup Driver: cgroups
  6. (...)
  7. WARNING: No memory limit support
  8. WARNING: No swap limit support
  9. WARNING: No kernel memory limit support
  10. WARNING: No kernel memory TCP limit support
  11. WARNING: No oom kill disable support

上面的輸出突出顯示了需要修改的部分:cgroup 驅(qū)動和限制支持。

首先,將 Docker 使用的默認(rèn) cgroup 驅(qū)動從 cgroups 改為 systemd,讓 systemd 充當(dāng) cgroup 管理器,確保只有一個 cgroup 管理器在使用。這有助于系統(tǒng)的穩(wěn)定性,這也是 Kubernetes 所推薦的。要做到這一點(diǎn),請創(chuàng)建 /etc/docker/daemon.json 文件或?qū)?nèi)容替換為:

  1. # 創(chuàng)建或替換 /etc/docker/daemon.json 以啟用 cgroup systemd 驅(qū)動
  2.  
  3. $ sudo cat > /etc/docker/daemon.json <<EOF
  4. {
  5. "exec-opts": ["native.cgroupdriver=systemd"],
  6. "log-driver": "json-file",
  7. "log-opts": {
  8. "max-size": "100m"
  9. },
  10. "storage-driver": "overlay2"
  11. }
  12. EOF

啟用 cgroup 限制支持

接下來,啟用限制支持,如上面的 docker info 輸出中的警告所示。你需要修改內(nèi)核命令行以在引導(dǎo)時啟用這些選項(xiàng)。對于樹莓派 4,將以下內(nèi)容添加到 /boot/firmware/cmdline.txt 文件中:

  1. cgroup_enable=cpuset
  2. cgroup_enable=memory
  3. cgroup_memory=1
  4. swapaccount=1

確保它們被添加到 cmdline.txt 文件的行末。這可以通過使用 sed 在一行中完成。

  1. # cgroup 和交換選項(xiàng)添加到內(nèi)核命令行中
  2. # 請注意 "cgroup_enable=cpuset" 前的空格,以便在該行的最后一個項(xiàng)目后添加一個空格
  3. $ sudo sed -i '$ s/$/ cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1/' /boot/firmware/cmdline.txt

sed 命令匹配該行的終止符(由第一個 $ 代表),用列出的選項(xiàng)代替它(它實(shí)際上是將選項(xiàng)附加到該行)。

有了這些改變,Docker 和內(nèi)核應(yīng)該按照 Kubernetes 的需要配置好了。重新啟動樹莓派,當(dāng)它們重新啟動后,再次檢查 docker info 的輸出。現(xiàn)在,Cgroups driver 變成了 systemd,警告也消失了。

允許 iptables 查看橋接流量

根據(jù)文檔,Kubernetes 需要配置 iptables 來查看橋接網(wǎng)絡(luò)流量。你可以通過修改 sysctl 配置來實(shí)現(xiàn)。

  1. # 啟用 net.bridge.bridge-nf-call-iptables -iptables6
  2. cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
  3. net.bridge.bridge-nf-call-ip6tables = 1
  4. net.bridge.bridge-nf-call-iptables = 1
  5. EOF
  6. $ sudo sysctl --system

安裝 Ubuntu 的 Kubernetes 包

由于你使用的是 Ubuntu,你可以從 Kubernetes.io 的 apt 倉庫中安裝 Kubernetes 軟件包。目前沒有 Ubuntu 20.04(Focal)的倉庫,但最近的 Ubuntu LTS 倉庫 Ubuntu 18.04(Xenial) 中有 Kubernetes 1.18.2。最新的 Kubernetes 軟件包可以從那里安裝。

將 Kubernetes 軟件庫添加到 Ubuntu 的源列表之中:

  1. # 添加 packages.cloud.google.com atp 密鑰
  2. $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
  3.  
  4. # 添加 Kubernetes 軟件庫
  5. cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
  6. deb https://apt.kubernetes.io/ kubernetes-xenial main
  7. EOF

當(dāng) Kubernetes 添加了 Ubuntu 20.04(Focal)倉庫時 —— 也許是在下一個 Kubernetes 版本發(fā)布時 —— 請確保切換到它。

將倉庫添加到源列表后,安裝三個必要的 Kubernetes 包:kubelet、kubeadm 和 kubectl:

  1. # 更新 apt 緩存并安裝 kubeletkubeadm kubectl
  2. # (輸出略)
  3. $ sudo apt update &amp;&amp; sudo apt install -y kubelet kubeadm kubectl

最后,使用 apt-mark hold 命令禁用這三個包的定期更新。升級到 Kubernetes 需要比一般的更新過程更多的手工操作,需要人工關(guān)注。

  1. # 禁止(標(biāo)記為保持)Kubernetes 軟件包的更新
  2. $ sudo apt-mark hold kubelet kubeadm kubectl
  3. kubelet set on hold.
  4. kubeadm set on hold.
  5. kubectl set on hold.

主機(jī)配置就到這里了! 現(xiàn)在你可以繼續(xù)設(shè)置 Kubernetes 本身了。

創(chuàng)建 Kubernetes 集群

在安裝了 Kubernetes 軟件包之后,你現(xiàn)在可以繼續(xù)創(chuàng)建集群了。在開始之前,你需要做一些決定。首先,其中一個樹莓派需要被指定為控制平面節(jié)點(diǎn)(即主節(jié)點(diǎn))。其余的節(jié)點(diǎn)將被指定為計算節(jié)點(diǎn)。

你還需要選擇一個 CIDR(無類別域間路由)地址用于 Kubernetes 集群中的 Pod。在集群創(chuàng)建過程中設(shè)置 pod-network-cidr 可以確保設(shè)置了 podCIDR 值,它以后可以被容器網(wǎng)絡(luò)接口Container Network Interface(CNI)加載項(xiàng)使用。本練習(xí)使用的是 FlannelCNI。你選擇的 CIDR 不應(yīng)該與你的家庭網(wǎng)絡(luò)中當(dāng)前使用的任何 CIDR 重疊,也不應(yīng)該與你的路由器或 DHCP 服務(wù)器管理的 CIDR 重疊。確保使用一個比你預(yù)期需要的更大的子網(wǎng):總是有比你最初計劃的更多的 Pod!在這個例子中,我將使用 CIDR 地址 10.244.0.0/16,但你可以選擇一個適合你的。

有了這些決定,你就可以初始化控制平面節(jié)點(diǎn)了。用 SSH 或其他方式登錄到你為控制平面指定的節(jié)點(diǎn)。

初始化控制平面

Kubernetes 使用一個引導(dǎo)令牌來驗(yàn)證被加入集群的節(jié)點(diǎn)。當(dāng)初始化控制平面節(jié)點(diǎn)時,需要將此令牌傳遞給 kubeadm init 命令。用 kubeadm token generate 命令生成一個令牌:

  1. # 生成一個引導(dǎo)令牌來驗(yàn)證加入集群的節(jié)點(diǎn)
  2. $ TOKEN=$(sudo kubeadm token generate)
  3. $ echo $TOKEN
  4. d584xg.xupvwv7wllcpmwjy

現(xiàn)在你可以使用 kubeadm init 命令來初始化控制平面了:

  1. # 初始化控制平面
  2. #(輸出略)
  3. $ sudo kubeadm init --token=${TOKEN} --kubernetes-version=v1.18.2 --pod-network-cidr=10.244.0.0/16

如果一切順利,你應(yīng)該在輸出的最后看到類似這樣的東西:

  1. Your Kubernetes control-plane has initialized successfully!
  2.  
  3. To start using your cluster, you need to run the following as a regular user:
  4.  
  5. mkdir -p $HOME/.kube
  6. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  7. sudo chown $(id -u):$(id -g) $HOME/.kube/config
  8.  
  9. You should now deploy a pod network to the cluster.
  10. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  11. https://kubernetes.io/docs/concepts/cluster-administration/addons/
  12.  
  13. Then you can join any number of worker nodes by running the following on each as root:
  14.  
  15. kubeadm join 192.168.2.114:6443 --token zqqoy7.9oi8dpkfmqkop2p5 \
  16. --discovery-token-ca-cert-hash sha256:71270ea137214422221319c1bdb9ba6d4b76abfa2506753703ed654a90c4982b

注意兩點(diǎn):第一,Kubernetes 的 kubectl 連接信息已經(jīng)寫入到 /etc/kubernetes/admin.conf。這個 kubeconfig 文件可以復(fù)制到用戶的 ~/.kube/config 中,可以是主節(jié)點(diǎn)上的 root 用戶或普通用戶,也可以是遠(yuǎn)程機(jī)器。這樣你就可以用 kubectl 命令來控制你的集群。

其次,輸出中以 kubernetes join 開頭的最后一行是你可以運(yùn)行的命令,你可以運(yùn)行這些命令加入更多的節(jié)點(diǎn)到集群中。

將新的 kubeconfig 復(fù)制到你的用戶可以使用的地方后,你可以用 kubectl get nodes 命令來驗(yàn)證控制平面是否已經(jīng)安裝:

  1. # 顯示 Kubernetes 集群中的節(jié)點(diǎn)
  2. # 你的節(jié)點(diǎn)名稱會有所不同
  3. $ kubectl get nodes
  4. NAME         STATUS   ROLES    AGE     VERSION
  5. elderberry   Ready    master   7m32s   v1.18.2

安裝 CNI 加載項(xiàng)

CNI 加載項(xiàng)負(fù)責(zé) Pod 網(wǎng)絡(luò)的配置和清理。如前所述,這個練習(xí)使用的是 Flannel CNI 加載項(xiàng),在已經(jīng)設(shè)置好 podCIDR 值的情況下,你只需下載 Flannel YAML 并使用 kubectl apply 將其安裝到集群中。這可以用 kubectl apply -f - 從標(biāo)準(zhǔn)輸入中獲取數(shù)據(jù),用一行命令完成。這將創(chuàng)建管理 Pod 網(wǎng)絡(luò)所需的 ClusterRoles、ServiceAccounts 和 DaemonSets 等。

下載并應(yīng)用 Flannel YAML 數(shù)據(jù)到集群中:

  1. # 下載 Flannel YAML 數(shù)據(jù)并應(yīng)用它
  2. # (輸出略)
  3. $ curl -sSL https://raw.githubusercontent.com/coreos/flannel/v0.12.0/Documentation/kube-flannel.yml | kubectl apply -f -

將計算節(jié)點(diǎn)加入到集群中

有了 CNI 加載項(xiàng),現(xiàn)在是時候?qū)⒂嬎愎?jié)點(diǎn)添加到集群中了。加入計算節(jié)點(diǎn)只需運(yùn)行 kube init 命令末尾提供的 kubeadm join 命令來初始化控制平面節(jié)點(diǎn)。對于你想加入集群的其他樹莓派,登錄主機(jī),運(yùn)行命令即可:

  1. # 加入節(jié)點(diǎn)到集群,你的令牌和 ca-cert-hash 應(yīng)各有不同
  2. $ sudo kubeadm join 192.168.2.114:6443 --token zqqoy7.9oi8dpkfmqkop2p5 \
  3.     --discovery-token-ca-cert-hash sha256:71270ea137214422221319c1bdb9ba6d4b76abfa2506753703ed654a90c4982b

一旦你完成了每個節(jié)點(diǎn)的加入,你應(yīng)該能夠在 kubectl get nodes 的輸出中看到新節(jié)點(diǎn):

  1. # 顯示 Kubernetes 集群中的節(jié)點(diǎn)
  2. # 你的節(jié)點(diǎn)名稱會有所不同
  3. $ kubectl get nodes
  4. NAME         STATUS   ROLES    AGE     VERSION
  5. elderberry   Ready    master   7m32s   v1.18.2
  6. gooseberry    Ready    &lt;none&gt;   2m39s   v1.18.2
  7. huckleberry   Ready    &lt;none&gt;   17s     v1.18.2

驗(yàn)證集群

此時,你已經(jīng)擁有了一個完全正常工作的 Kubernetes 集群。你可以運(yùn)行 Pod、創(chuàng)建部署和作業(yè)等。你可以使用服務(wù)從集群中的任何一個節(jié)點(diǎn)訪問集群中運(yùn)行的應(yīng)用程序。你可以通過 NodePort 服務(wù)或入口控制器實(shí)現(xiàn)外部訪問。

要驗(yàn)證集群正在運(yùn)行,請創(chuàng)建一個新的命名空間、部署和服務(wù),并檢查在部署中運(yùn)行的 Pod 是否按預(yù)期響應(yīng)。此部署使用 quay.io/clcollins/kube-verify:01 鏡像,這是一個監(jiān)聽請求的 Nginx 容器(實(shí)際上,與文章《使用 Cloud-init 將節(jié)點(diǎn)添加到你的私有云》中使用的鏡像相同)。你可以在這里查看鏡像的容器文件。

為部署創(chuàng)建一個名為 kube-verify 的命名空間:

  1. # 創(chuàng)建一個新的命名空間
  2. $ kubectl create namespace kube-verify
  3. # 列出命名空間
  4. $ kubectl get namespaces
  5. NAME              STATUS   AGE
  6. default           Active   63m
  7. kube-node-lease   Active   63m
  8. kube-public       Active   63m
  9. kube-system       Active   63m
  10. kube-verify       Active   19s

現(xiàn)在,在新的命名空間創(chuàng)建一個部署:

  1. # 創(chuàng)建一個新的部署
  2. $ cat <<EOF | kubectl create -f -
  3. apiVersion: apps/v1
  4. kind: Deployment
  5. metadata:
  6.   name: kube-verify
  7.   namespace: kube-verify
  8.   labels:
  9.     app: kube-verify
  10. spec:
  11.   replicas: 3
  12.   selector:
  13.     matchLabels:
  14.       app: kube-verify
  15.   template:
  16.     metadata:
  17.       labels:
  18.         app: kube-verify
  19.     spec:
  20.       containers:
  21.       - name: nginx
  22.         image: quay.io/clcollins/kube-verify:01
  23.         ports:
  24.         - containerPort: 8080
  25. EOF
  26. deployment.apps/kube-verify created

Kubernetes 現(xiàn)在將開始創(chuàng)建部署,它由三個 Pod 組成,每個 Pod 都運(yùn)行 quay.io/clcollins/kube-verify:01 鏡像。一分鐘左右后,新的 Pod 應(yīng)該運(yùn)行了,你可以用 kubectl get all -n kube-verify 來查看它們,以列出新命名空間中創(chuàng)建的所有資源:

  1. # 檢查由該部署創(chuàng)建的資源
  2. $ kubectl get all -n kube-verify
  3. NAME                               READY   STATUS              RESTARTS   AGE
  4. pod/kube-verify-5f976b5474-25p5r   0/1     Running             0          46s
  5. pod/kube-verify-5f976b5474-sc7zd   1/1     Running             0          46s
  6. pod/kube-verify-5f976b5474-tvl7w   1/1     Running             0          46s
  7.  
  8. NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
  9. deployment.apps/kube-verify   3/3     3            3           47s
  10.  
  11. NAME                                     DESIRED   CURRENT   READY   AGE
  12. replicaset.apps/kube-verify-5f976b5474   3         3         3       47s

你可以看到新的部署、由部署創(chuàng)建的復(fù)制子集,以及由復(fù)制子集創(chuàng)建的三個 Pod,以滿足部署中的 replicas: 3 的要求。你可以看到 Kubernetes 內(nèi)部工作正常。

現(xiàn)在,創(chuàng)建一個服務(wù)來暴露在三個 Pod 中運(yùn)行的 Nginx “應(yīng)用程序”(在本例中是“歡迎”頁面)。這將作為一個單一端點(diǎn),你可以通過它連接到 Pod:

  1. # 為該部署創(chuàng)建服務(wù)
  2. $ cat <<EOF | kubectl create -f -
  3. apiVersion: v1
  4. kind: Service
  5. metadata:
  6.   name: kube-verify
  7.   namespace: kube-verify
  8. spec:
  9.   selector:
  10.     app: kube-verify
  11.   ports:
  12.     - protocol: TCP
  13.       port: 80
  14.       targetPort: 8080
  15. EOF
  16. service/kube-verify created

創(chuàng)建服務(wù)后,你可以對其進(jìn)行檢查并獲取新服務(wù)的 IP 地址:

  1. # 檢查新服務(wù)
  2. $ kubectl get -n kube-verify service/kube-verify
  3. NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
  4. kube-verify   ClusterIP   10.98.188.200   &lt;none&gt;        80/TCP    30s

你可以看到 kube-verify 服務(wù)已經(jīng)被分配了一個 ClusterIP(僅對集群內(nèi)部)10.98.188.200。這個 IP 可以從你的任何節(jié)點(diǎn)到達(dá),但不能從集群外部到達(dá)。你可以通過在這個 IP 上連接到部署內(nèi)部的容器來驗(yàn)證它們是否在工作:

  1. # 使用 curl 連接到 ClusterIP
  2. # (簡潔期間,輸出有刪節(jié))
  3. $ curl 10.98.188.200
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  5. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  6.  
  7. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  8. <head>

成功了!你的服務(wù)正在運(yùn)行,容器內(nèi)的 Nginx 正在響應(yīng)你的請求。你的服務(wù)正在運(yùn)行,容器內(nèi)的 Nginx 正在響應(yīng)你的請求。

此時,你的樹莓派上有一個正在運(yùn)行的 Kubernetes 集群,安裝了一個 CNI 加載項(xiàng)(Flannel),并有一個運(yùn)行 Nginx Web 服務(wù)器的測試部署和服務(wù)。在大型公有云中,Kubernetes 有不同的入口控制器來與不同的解決方案交互,比如最近報道的 Skipper 項(xiàng)目。同樣,私有云也有與硬件負(fù)載均衡器設(shè)備(如 F5 Networks 的負(fù)載均衡器)交互的入口控制器,或用于處理進(jìn)入節(jié)點(diǎn)的流量的 Nginx 和 HAProxy 控制器。

在以后的文章中,我將通過安裝自己的入口控制器來解決將集群中的服務(wù)暴露給外界的問題。我還將研究動態(tài)存儲供應(yīng)器和 StorageClasses,以便為應(yīng)用程序分配持久性存儲,包括利用你在上一篇文章《將樹莓派家庭實(shí)驗(yàn)室變成網(wǎng)絡(luò)文件系統(tǒng)》中設(shè)置的 NFS 服務(wù)器來為你的 Pod 創(chuàng)建按需存儲。

去吧,Kubernetes

“Kubernetes”(κυβερνήτης)在希臘語中是飛行員的意思 —— 但這是否意味著駕駛船只以及引導(dǎo)船只的人?誒,不是。“Kubernan”(κυβερνάω)是希臘語“駕駛”或“引導(dǎo)”的意思,因此,去吧,Kubernan,如果你在會議上或其它什么活動上看到我,請試著給我一個動詞或名詞的通行證,以另一種語言 —— 我不會說的語言。

免責(zé)聲明:如前所述,我不會讀也不會講希臘語,尤其是古希臘語,所以我選擇相信我在網(wǎng)上讀到的東西。你知道那是怎么一回事。我對此有所保留,放過我吧,因?yàn)槲覜]有開“對我來說都是希臘語”這種玩笑。然而,只是提一下,雖然我可以開玩笑,但是實(shí)際上沒有,所以我要么偷偷摸摸,要么聰明,要么兩者兼而有之。或者,兩者都不是。我并沒有說這是個好笑話。

所以,去吧,像專業(yè)人員一樣在你的家庭私有云中用自己的 Kubernetes 容器服務(wù)來試運(yùn)行你的容器吧!當(dāng)你越來越得心應(yīng)手時,你可以修改你的 Kubernetes 集群,嘗試不同的選項(xiàng),比如前面提到的入口控制器和用于持久卷的動態(tài) StorageClasses。

這種持續(xù)學(xué)習(xí)是 DevOps 的核心,持續(xù)集成和新服務(wù)交付反映了敏捷方法論,當(dāng)我們學(xué)會了處理云實(shí)現(xiàn)的大規(guī)模擴(kuò)容,并發(fā)現(xiàn)我們的傳統(tǒng)做法無法跟上步伐時,我們就接受了這兩種方法論。

你看,技術(shù)、策略、哲學(xué)、一小段希臘語和一個可怕的原始笑話,都匯聚在一篇文章當(dāng)中。

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

2017-10-30 16:12:30

DockerServerless樹莓派

2019-03-24 20:30:18

樹莓派Linux

2022-07-06 07:27:52

32Core樹莓派集群

2023-03-09 11:35:40

2021-01-18 09:08:44

樹莓派Ceph開源

2023-06-08 17:20:37

Lua樹莓派

2019-03-31 08:00:02

樹莓派更新樹莓派 Linux

2022-05-22 19:28:54

XMLJava樹莓派

2017-10-09 09:33:55

2018-10-18 10:30:50

樹莓派NAS數(shù)據(jù)庫

2022-08-29 00:20:48

Render樹莓派物聯(lián)網(wǎng)

2019-03-12 18:33:57

樹莓派Linux

2022-03-29 12:40:35

Linux樹莓派

2019-03-26 09:00:43

樹莓派編程Linux

2018-05-25 08:44:22

樹莓派PythonMySQL

2014-12-24 09:35:29

Docker集群管理kubernetes

2021-02-07 08:00:00

Kubernetes集群云原生

2021-03-29 21:24:40

樹莓派Linux

2022-02-11 09:24:05

樹莓派OpenWrt固定IP服務(wù)

2019-03-23 19:33:14

樹莓派Linux操作系統(tǒng)
點(diǎn)贊
收藏

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

91官网在线免费观看| 97久久超碰国产精品| 久久精品电影网| 亚洲色图欧美另类| 日韩国产激情| 亚洲精品成人在线| 欧美精品亚洲精品| 性欧美18一19性猛交| 男人天堂欧美日韩| 欧美大片在线免费观看| 欧美黄色一级生活片| 最新国产精品精品视频| 欧洲亚洲精品在线| 国产av熟女一区二区三区| 国产小视频在线| 国产999精品久久| 国产精品久久久久免费a∨大胸| 黄色一级视频免费观看| 欧美综合在线视频观看| 欧美精品一区二区三区在线播放| 老头吃奶性行交视频| 欧美巨大xxxx做受沙滩| 国产精品久久久久aaaa樱花| 国产一区二区三区四区五区在线| 国产一区二区三区黄片| 久久综合导航| 69av在线播放| 精品无码久久久久成人漫画 | 成人午夜电影在线播放| 在线观看黄色国产| 快she精品国产999| 97精品一区二区三区| 欧美黑人猛猛猛| 日韩成人精品一区| 亚洲精品在线视频| 亚洲久久久久久| youjizzjizz亚洲| 日韩一级视频免费观看在线| 手机免费av片| 青青伊人久久| 欧美日韩精品一区二区在线播放 | 久久99精品国产.久久久久| 欧美一级视频在线观看| 日本中文字幕免费| 亚洲二区免费| 久久久综合av| 国产真人真事毛片| 欧美视频福利| 欧美极品在线播放| 国产无遮挡又黄又爽又色| 欧美精品18| 久久99热这里只有精品国产| 午夜国产福利一区二区| 亚洲天天影视网| 欧美精品在线极品| 劲爆欧美第一页| 黄色av日韩| 久久久久久久爱| 日韩精品一区三区| 中文国产一区| 日本三级韩国三级久久| 波多野结衣不卡| 免费人成黄页网站在线一区二区| 国产精品久久电影观看| 91成人一区二区三区| 久久99国产精品麻豆| 91精品在线一区| 亚洲精品一区二区三区蜜桃 | 亚洲理论片在线观看| 欧美精品一区二区久久| 色老头一区二区三区在线观看| 亚洲欧美卡通动漫| 欧美激情五月| 91sa在线看| 国产偷人爽久久久久久老妇app| 美女视频网站黄色亚洲| 亚洲自拍在线观看| 日韩一级片免费在线观看| 91丝袜高跟美女视频| 亚洲春色在线| 美足av综合网| 欧美综合一区二区| 潘金莲一级淫片aaaaa| 免费日韩一区二区三区| 一区二区中文字幕| 看免费黄色录像| 亚洲美女91| 国产精品美女www| 国产激情久久久久久熟女老人av| 99久久国产综合色|国产精品| 日韩高清三级| 欧美大胆的人体xxxx| 欧美体内谢she精2性欧美| 成人综合久久网| 国产成人夜色高潮福利影视| 国产亚洲精品成人av久久ww| 青草影院在线观看| 老司机亚洲精品| 成人xxxxx色| 国产大片在线免费观看| 艳妇臀荡乳欲伦亚洲一区| 日韩有码免费视频| 第四色在线一区二区| 在线播放日韩专区| 日韩欧美一区二区一幕| 精品一区二区国语对白| 免费日韩电影在线观看| 手机电影在线观看| 欧美日韩免费在线视频| 小毛片在线观看| 午夜av一区| 国产精品96久久久久久| 日本韩国在线观看| 97人妻精品一区二区免费| 欧美日韩在线大尺度| 国产精品视频一区二区三区四| 日批免费在线观看| 亚洲黄网站在线观看| 九九热免费精品视频| 少妇精品导航| 97在线看免费观看视频在线观看| 97人妻精品一区二区三区软件| 国产网红主播福利一区二区| 亚欧无线一线二线三线区别| 亚洲日本va| 欧美成人免费小视频| 在线观看亚洲国产| 久久精品免视看| 免费在线激情视频| 欧美日韩一区二区三区在线电影| 欧美精品在线网站| 国产日韩在线观看一区| 国产精品福利av| the porn av| 欧美日韩在线网站| 国产成人在线一区| 国产中文字幕在线看| 精品人伦一区二区三区蜜桃网站 | 午夜激情在线观看视频| 一道本一区二区三区| 97视频人免费观看| 午夜在线视频免费| 五月激情六月综合| 91精品小视频| 亚洲欧美日本国产专区一区| 精品国产电影| 美女露胸视频在线观看| 日韩精品黄色网| 日本a级c片免费看三区| 久久精品视频在线看| 欧美日韩亚洲一二三| 精品美女视频| 成人黄色av网| a视频在线免费看| 日韩精品最新网址| 日韩经典在线观看| 97精品久久久午夜一区二区三区 | www亚洲视频| 久久蜜桃av一区精品变态类天堂 | 91麻豆蜜桃一区二区三区| 亚洲午夜无码av毛片久久| 亚洲综合图色| 国产精品老牛影院在线观看| 91看片在线观看| 91精品国产色综合久久不卡电影| 欧美国产日韩在线观看成人| 国产精品一二三在| 欧美国产亚洲一区| 国产精品午夜一区二区三区| 国产精品一区二区久久久| 国内精品久久久久国产| 亚洲第一精品自拍| 欧美精品韩国精品| 国产精品福利一区| 中文视频在线观看| 久久精品中文| 日韩国产精品毛片| 麻豆国产欧美一区二区三区r| 日本午夜精品理论片a级appf发布| 91网在线播放| 亚洲激情在线观看视频免费| 欧美一级黄视频| 亚洲乱码中文字幕| 9.1成人看片| 激情综合色播五月| heyzo亚洲| 欧美岛国激情| 精品一区久久久久久| 黄色成人小视频| 孩xxxx性bbbb欧美| 日本中文字幕电影在线免费观看| 日韩欧美一区二区视频| 国产情侣小视频| 亚洲综合久久av| 欧美性受xxxx黑人| 国内精品伊人久久久久av影院 | 日本一本高清视频| 中文字幕欧美日本乱码一线二线| 乳色吐息在线观看| 日日夜夜精品免费视频| 欧美高清中文字幕| 成人情趣视频网站| 精品欧美一区二区三区久久久 | 国产丝袜不卡| 久久久久久久性潮| 88xx成人精品| 在线观看男女av免费网址| 亚洲视频999| 男人天堂综合网| 欧美一级黄色大片| 中文字幕精品在线观看| 欧美日韩一区二区精品| 免费在线观看亚洲| 亚洲欧洲另类国产综合| 精品无码国产污污污免费网站 | 长河落日免费高清观看| proumb性欧美在线观看| 亚洲第一区第二区第三区| 丝袜诱惑亚洲看片| 无码人妻精品一区二区三区在线| 婷婷综合亚洲| 小说区图片区图片区另类灬| 天天操综合520| 国产精品自拍首页| 中文久久电影小说| 91国产丝袜在线放| 91精品视频一区二区| 国产精品视频白浆免费视频| 在线观看精品| 日本国产欧美一区二区三区| 国内激情视频在线观看| 久久久久久av| 91在线中字| 久久国产精品久久久久久| 日本在线观看www| 色噜噜狠狠狠综合曰曰曰88av| yourporn在线观看视频| 国产一区二区成人| 成全电影播放在线观看国语| 国产一区二区三区四区福利| 美国成人毛片| 一本色道久久综合狠狠躁篇怎么玩 | 日韩亚洲欧美综合| 99久久精品免费看国产交换| 制服丝袜一区二区三区| 国产伦精品一区二区三区免.费 | 视频一区 中文字幕| 精品国产电影一区二区| 你懂的网站在线| 日韩精品免费在线视频观看| 人成在线免费视频| 国产亚洲欧洲黄色| 免费高清在线观看| 久久夜精品香蕉| 欧美日韩日本网| 日本高清成人vr专区| 久久精品久久久久久| 成年人黄视频在线观看| 欧美乱大交xxxxx| 黑人另类精品××××性爽| 韩国精品久久久999| 碰碰在线视频| 国产精品免费观看在线| 日本一区二区三区中文字幕| 成人深夜直播免费观看| 亚洲一区网址| 蜜桃成人免费视频| 第一会所sis001亚洲| 国产成年人在线观看| 欧美另类亚洲| 国产h视频在线播放| 三级影片在线观看欧美日韩一区二区| 在线观看av日韩| 国产精品99久久久久久似苏梦涵| 婷婷五月精品中文字幕| 久久亚洲精精品中文字幕早川悠里 | 色av吧综合网| 国产精品蜜臀| 国产成人精品视频| 成人免费观看49www在线观看| 动漫精品视频| 欧美日韩国产在线观看网站| 9l视频自拍9l视频自拍| 亚洲一区自拍| 日韩高清第一页| 成人av在线一区二区| 久久久久久国产免费a片| 亚洲欧美日本在线| 99久久精品国产亚洲| 91精品免费观看| 四虎精品在永久在线观看| 最近更新的2019中文字幕| 俺来也官网欧美久久精品| 国产精品久久97| 欧美韩一区二区| 一区二区高清视频| 亚洲高清免费| 日本77777| 久久新电视剧免费观看| 99久久99久久精品国产| 欧美午夜片欧美片在线观看| 国产喷水吹潮视频www| 日韩经典中文字幕| 性欧美猛交videos| 国产精品久久久久久久久久久久久久 | 免费成人在线观看视频| 日本久久久久久久久久| 久久蜜桃av一区精品变态类天堂| 成人性生交大片免费看无遮挡aⅴ| 一区二区欧美国产| 中日精品一色哟哟| 日韩精品在线观| 日本欧美电影在线观看| 国产精品第一页在线| 久久99偷拍| 久久www视频| 国精产品一区一区三区mba桃花 | 夜夜春成人影院| 欧美一区二区激情| 国产制服丝袜一区| 国产又粗又长免费视频| 色综合久久88色综合天天6| 成人免费视频国产免费麻豆| 久久久999精品| 国产精品亲子伦av一区二区三区| 久久五月天婷婷| 亚洲私人影院| 国产免费a级片| 中文字幕亚洲一区二区va在线| 成人h动漫精品一区二区下载| 日韩欧美国产三级| av免费在线免费观看| 91精品久久久久久久久久久久久久| 国产乱码精品一区二区三区四区| 久久国产亚洲精品无码| 国产久卡久卡久卡久卡视频精品| 99热在线观看精品| 欧美男人的天堂一二区| 91网页在线观看| 国产欧美韩国高清| 99成人超碰| 激情成人在线观看| 亚洲精品成人悠悠色影视| 99久久亚洲精品日本无码| 久久久精品视频成人| 91精品国产自产观看在线| 国产福利片一区二区| 国产又黄又大久久| 欧美成人一区二区三区高清| 日韩免费看网站| 岛国av免费在线观看| 免费亚洲一区二区| 日本少妇一区二区| 成人做爰视频网站| 欧美一区日本一区韩国一区| 成年人网站在线| 国产日韩亚洲精品| 亚洲影音一区| 男人天堂资源网| 制服.丝袜.亚洲.另类.中文| 亚洲91av| 精品国产一区二区三区麻豆小说| 亚洲视频www| 国产一二三四区在线| 欧美一卡2卡三卡4卡5免费| 黄色美女视频在线观看| 国内精品一区二区| 日韩综合小视频| 国产一区第一页| 亚洲第一国产精品| 久久精品女人天堂av免费观看| 一区二区三视频| 国产白丝精品91爽爽久久| 亚洲精品午夜国产va久久成人| 亚洲视频在线观看免费| 成人免费观看49www在线观看| 国产婷婷一区二区三区| 国产日韩亚洲欧美综合| 国产丝袜在线视频| 欧美性在线视频| 天天久久综合| 亚洲视频在线播放免费| 在线观看日韩高清av| 18av在线播放| 欧美一区少妇| 国产精品一区二区你懂的| 久久精品一二区| 久久不射热爱视频精品| 三级小说欧洲区亚洲区| 在线观看免费av网址| 精品国产1区2区| 最新国产露脸在线观看| 欧美大香线蕉线伊人久久国产精品| 狠狠色丁香久久婷婷综合_中 | 精品视频第一区| 九九视频精品免费| 国语对白永久免费| 欧美日本精品在线| 成人区精品一区二区婷婷| 91av在线免费|