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

使用 Kubespray 安裝 Kubernetes 集群

系統(tǒng) Linux
你是否正在尋找有關(guān)如何使用 Kubespray 安裝 Kubernetes(k8s)的簡(jiǎn)單指南?一起來看一下吧。

此頁面上的分步指南將向你展示如何在 Linux 系統(tǒng)上使用 Kubespray 安裝 Kubernetes 集群。

Kubespray 是一個(gè)自由開源的工具,它提供了 Ansible 劇本playbook

它支持一系列操作系統(tǒng),包括 Ubuntu、CentOS、Rocky Linux 和 Red Hat Enterprise Linux(RHEL),它可以在各種平臺(tái)上部署 Kubernetes,包括裸機(jī)、公共云和私有云。

在本指南中,我們使用以下實(shí)驗(yàn)室:

  • Ansible 節(jié)點(diǎn)(Kubespray 節(jié)點(diǎn)):最小安裝的 Ubuntu 22.04 LTS(192.168.1.240)
  • 3 個(gè)控制器節(jié)點(diǎn):最小安裝的 Rocky Linux 9(192.168.1.241/242/243)
  • 2 個(gè)工作節(jié)點(diǎn):最小安裝的 Rocky Linux 9(192.168.1.244/245)

Kubespray 的最低系統(tǒng)要求

  • 主節(jié)點(diǎn):1500 MB RAM、2 個(gè) CPU 和 20 GB 可用磁盤空間
  • 工作節(jié)點(diǎn):1024 MB、2 個(gè) CPU、20 GB 可用磁盤空間
  • Ansible 節(jié)點(diǎn):1024 MB、1 個(gè) CPU 和 20 GB 磁盤空間
  • 每個(gè)節(jié)點(diǎn)上的互聯(lián)網(wǎng)連接
  • 擁有 sudo 管理員權(quán)限

事不宜遲,讓我們深入了解安裝步驟。

步驟 1)配置 Kubespray 節(jié)點(diǎn)

登錄到你的 Ubuntu 22.04 系統(tǒng)并安裝 Ansible。運(yùn)行以下一組命令:

$ sudo apt update
$ sudo apt install git python3 python3-pip -y
$ git clone https://github.com/kubernetes-incubator/kubespray.git
$ cd kubespray
$ pip install -r requirements.txt

驗(yàn)證 Ansible 版本,運(yùn)行:

$ ansible --version

創(chuàng)建主機(jī)清單,運(yùn)行以下命令,不要忘記替換適合你部署的 IP 地址:

$ cp -rfp inventory/sample inventory/mycluster
$ declare -a IPS=(192.168.1.241 192.168.1.241 192.168.1.242 192.168.1.243 192.168.1.244 192.168.1.245)
$ CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

修改清單文件,設(shè)置 3 個(gè)控制節(jié)點(diǎn)和 2 個(gè)工作節(jié)點(diǎn):

$ vi inventory/mycluster/hosts.yaml

保存并關(guān)閉文件。

查看并修改文件 ??inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml?? 中的以下參數(shù):

kube_version: v1.26.2
kube_network_plugin: calico
kube_pods_subnet: 10.233.64.0/18
kube_service_addresses: 10.233.0.0/18
cluster_name: linuxtechi.local

要啟用 Kuberenetes 儀表板和入口控制器等插件,請(qǐng)?jiān)谖募?nbsp;??inventory/mycluster/group_vars/k8s_cluster/addons.yml?? 中將參數(shù)設(shè)置為已啟用:

$ vi inventory/mycluster/group_vars/k8s_cluster/addons.yml
dashboard_enabled: true
ingress_nginx_enabled: true
ingress_nginx_host_network: true

保存并退出文件。

步驟 2)將 SSH 密鑰從 Ansible 節(jié)點(diǎn)復(fù)制到所有其他節(jié)點(diǎn)

首先在你的 Ansible 節(jié)點(diǎn)上為你的本地用戶生成 SSH 密鑰:

$ ssh-keygen

使用 ??ssh-copy-id?? 命令復(fù)制 SSH 密鑰:

$ ssh-copy-id sysops@192.168.1.241
$ ssh-copy-id sysops@192.168.1.242
$ ssh-copy-id sysops@192.168.1.243
$ ssh-copy-id sysops@192.168.1.244
$ ssh-copy-id sysops@192.168.1.245

還要在每個(gè)節(jié)點(diǎn)上運(yùn)行以下命令:

$ echo "sysops ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/sysops

步驟 3)禁用防火墻并啟用 IPV4 轉(zhuǎn)發(fā)

要在所有節(jié)點(diǎn)上禁用防火墻,請(qǐng)從 Ansible 節(jié)點(diǎn)運(yùn)行以下 ??ansible?? 命令:

$ cd kubespray
$ ansible all -i inventory/mycluster/hosts.yaml -m shell -a "sudo systemctl stop firewalld && sudo systemctl disable firewalld"

運(yùn)行以下 ??ansible?? 命令以在所有節(jié)點(diǎn)上啟用 IPv4 轉(zhuǎn)發(fā)和禁用交換:

$ ansible all -i inventory/mycluster/hosts.yaml -m shell -a "echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf"
$ ansible all -i inventory/mycluster/hosts.yaml -m shell -a "sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab && sudo swapoff -a"

步驟 4)啟動(dòng) Kubernetes 部署

現(xiàn)在,我們都準(zhǔn)備好開始 Kubernetes 集群部署,從 Ansible 節(jié)點(diǎn)運(yùn)行下面的 Ansible 劇本:

$ cd kubespray
$ ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml

現(xiàn)在監(jiān)控部署,可能需要 20 到 30 分鐘,具體取決于互聯(lián)網(wǎng)速度和硬件資源。

部署完成后,我們將在屏幕上看到以下輸出:

很好,上面的輸出確認(rèn)部署已成功完成。

步驟 5)訪問 Kubernetes 集群

登錄到第一個(gè)主節(jié)點(diǎn),切換到 root 用戶,在那里運(yùn)行 ??kubectl?? 命令:

$ sudo su -
# kubectl get nodes
# kubectl get pods -A

輸出:

完美,上面的輸出確認(rèn)集群中的所有節(jié)點(diǎn)都處于就緒狀態(tài),并且所有命名空間的 容器莢Pod

讓我們嘗試部署基于 Nginx 的部署并將其公開為節(jié)點(diǎn)端口,運(yùn)行以下 ??kubectl?? 命令:

$ kubectl create deployment demo-nginx-kubespray --image=nginx --replicas=2
$ kubectl expose deployment demo-nginx-kubespray --type NodePort --port=80
$ kubectl get deployments.apps
$ kubectl get pods
$ kubectl get svc demo-nginx-kubespray

以上命令的輸出:

現(xiàn)在嘗試使用工作節(jié)點(diǎn)的 IP 地址和節(jié)點(diǎn)端口(30050)訪問此 Nginx 應(yīng)用。

使用以下 ??curl?? 命令或 Web 瀏覽器訪問此應(yīng)用。

$ curl 192.168.1.245:30050

或者,

完美,這證實(shí)了應(yīng)用可以在我們的集群之外訪問。

步驟 6)Kubernetes 儀表板(GUI)

要訪問 Kubernetes 儀表板,讓我們首先創(chuàng)建服務(wù)帳戶并分配管理員權(quán)限,以便它可以使用令牌訪問儀表板。

在 kube-system 命名空間中創(chuàng)建名為 “admin-user” 的服務(wù)帳戶:

$ vi dashboard-adminuser.yml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system

保存并關(guān)閉文件。

$ kubectl apply -f dashboard-adminuser.yml
serviceaccount/admin-user created

創(chuàng)建集群角色綁定:

$ vi admin-role-binding.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system

保存并退出文件。

$ kubectl apply -f admin-role-binding.yml
clusterrolebinding.rbac.authorization.k8s.io/admin-user created

現(xiàn)在,為管理員用戶創(chuàng)建令牌:

$ kubectl -n kube-system  create token admin-user

復(fù)制此令牌并將其放在安全的地方,因?yàn)槲覀儗⑹褂昧钆频卿?Kubernetes 儀表板。

使用以下 ??ssh?? 命令從你的系統(tǒng)連接到第一個(gè)主節(jié)點(diǎn):

$ ssh -L8001:localhost:8001 sysops@192.168.1.241

注意:替換適合你環(huán)境的 IP 地址。

登錄后,切換到 root 用戶并運(yùn)行 ??kubectl proxy?? 命令:

$ sudo su -
# kubectl proxy
Starting to serve on 127.0.0.1:8001

打開系統(tǒng)的網(wǎng)絡(luò)瀏覽器,如下設(shè)置代理:

完成代理設(shè)置后,將以下網(wǎng)址粘貼到瀏覽器中:

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#/login

選擇令牌登錄并粘貼你在上面為管理員用戶生成的令牌,然后單擊“登錄Sign in”。

這就是本指南的全部?jī)?nèi)容,我希望你能從中找到有用的信息。

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

2020-07-08 08:03:37

KubernetesLens集群

2021-09-27 05:42:44

VeleroKubernetes 公有云

2019-07-04 13:10:53

Docker設(shè)計(jì)云計(jì)算

2021-07-01 11:29:45

KubernetesGrafana監(jiān)控

2023-06-25 18:53:03

2022-09-23 17:26:04

VeleroKubernetes

2023-10-27 08:03:29

Kubernetes開源工具

2024-02-21 07:48:37

KubeSlice云原生Kubernetes

2021-06-17 06:29:16

kube-vip Kubernetes開源項(xiàng)目

2022-07-05 08:10:25

Kubernetes云原生

2022-11-30 09:39:44

KubeadmDebian 11Kubernetes

2019-04-01 09:17:23

Kubernetes公共云祼機(jī)

2022-08-14 20:48:41

KubernetesArgoCD

2020-05-13 07:00:00

K9SKubernetes集群

2023-12-08 07:59:04

2023-11-03 13:20:13

Kubernetes

2020-04-02 15:10:57

Kubernetes集群安全

2023-06-27 17:37:08

Kubernete容器集群

2022-01-03 07:49:04

Kubernetes集群容器

2021-12-22 07:47:42

Kubernetes 運(yùn)維開源
點(diǎn)贊
收藏

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