多节点(3)安装 KubeSphere

概念

多节点集群由至少一个主节点和一个工作节点组成。您可以使用任何节点作为任务机来执行安装任务,也可以在安装之前或之后根据需要新增节点(例如,为了实现高可用性)。

  • Control plane node:主节点,通常托管控制平面,控制和管理整个系统。
  • Worker node:工作节点,运行部署在工作节点上的实际应用程序。

本次采用一个Master节点,两个Worker节点的模式安装Kubesphere

Linux 主机

系统要求

系统最低要求(每个节点)
Ubuntu 16.04,18.04,20.04CPU:2 核,内存:4 G,硬盘:40 G
Debian Buster,StretchCPU:2 核,内存:4 G,硬盘:40 G
CentOS 7.xCPU:2 核,内存:4 G,硬盘:40 G
Red Hat Enterprise Linux 7CPU:2 核,内存:4 G,硬盘:40 G
SUSE Linux Enterprise Server 15 /openSUSE Leap 15.2CPU:2 核,内存:4 G,硬盘:40 G

我使用的是三台 CentOS 7.9(CentOS-7-x86_64-Minimal-2009.iso)的主机,各4核+8G+50G

多节点(3)安装 KubeSphere插图

三台主机需要能够互相访问

主机 IP主机名角色
192.168.1.220Mastercontrol plane, etcd
192.168.1.221Worker1worker
192.168.1.222Worker2worker

准备工作

1.用xshell连接三台linux主机

多节点(3)安装 KubeSphere插图1

开启 发送键输入到 所有会话

多节点(3)安装 KubeSphere插图2

因为接下来的操作要在三台主机上都执行,这样比较方便,当然你也可以一台一台执行。建议把三台虚拟机放在同一个窗口。必须等所有主机都执行完命令,你才能进行下一步。

多节点(3)安装 KubeSphere插图3

2.更新软件包

yum update -y
多节点(3)安装 KubeSphere插图4

3.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
多节点(3)安装 KubeSphere插图5

4.关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时
getenforce # 查看Selinux状态
多节点(3)安装 KubeSphere插图6

5.关闭swap

sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久
swapoff -a  # 临时

5.接下来这一步是给主机起名字,要单独执行

hostnamectl set-hostname

hostnamectl set-hostname master
hostnamectl set-hostname worker1
hostnamectl set-hostname worker2
hostname # 查看主机名
多节点(3)安装 KubeSphere插图7

7.添加hosts,根据你自己ip进行修改

cat >> /etc/hosts << EOF
192.168.1.220 master
192.168.1.221 worker1
192.168.1.222 worker2
EOF
多节点(3)安装 KubeSphere插图8

8.时间同步

yum install ntpdate -y
ntpdate time.windows.com
多节点(3)安装 KubeSphere插图9

9.将桥接的IPv4流量传递到iptables的链

cat >/etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system # 生效
modprobe br_netfilter && sysctl -p /etc/sysctl.d/k8s.conf
多节点(3)安装 KubeSphere插图10

10.安装ipvs

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_connt
多节点(3)安装 KubeSphere插图11

11.安装ipvsadm

yum -y install ipset ipvsadm

12.安装依赖组件

yum install -y wget ebtables socat ipset conntrack curl

13.安装docker

https://gitee.com/lushanyanyv/docker/blob/master/README.md

国内服务器

curl -sL https://gitee.com/lushanyanyv/docker/raw/master/docker-setup.sh | sed 's/\r$//' | bash

国外服务器

curl -sL https://gitee.com/lushanyanyv/docker/raw/master/docker-setup-abroad.sh | sed 's/\r$//' | bash

修改docker Cgroup Driver为systemd

sed -i.bak "s#^ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd#g" /usr/lib/systemd/system/docker.service 
systemctl daemon-reload
systemctl restart docker 

正式安装

14.设置kubernates仓库

 cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum makecache fast

15.安装kubelet kubectl

yum install -y kubelet-1.17.9 kubectl-1.17.9

16.接下来的所有操作,在主节点进行!

下载 KubeKey

如果您能正常访问 GitHub/Googleapis

curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -

如果您访问 GitHub/Googleapis 受限

export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -

17.为 kk 添加可执行权限

chmod +x kk

18.创建集群

命令如下

./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]
  • 安装 KubeSphere 3.3 的建议 Kubernetes 版本:v1.20.x、v1.21.x、* v1.22.x、* v1.23.x 和 * v1.24.x。带星号的版本可能出现边缘节点部分功能不可用的情况。因此,如需使用边缘节点,推荐安装 v1.21.x。如果不指定 Kubernetes 版本,KubeKey 将默认安装 Kubernetes v1.23.10。有关受支持的 Kubernetes 版本的更多信息,请参见支持矩阵
  • 如果您在此步骤的命令中不添加标志 --with-kubesphere,则不会部署 KubeSphere,只能使用配置文件中的 addons 字段安装,或者在您后续使用 ./kk create cluster 命令时再次添加这个标志。
  • 如果您添加标志 --with-kubesphere 时不指定 KubeSphere 版本,则会安装最新版本的 KubeSphere。

以下是一些示例,供您参考:

您可以使用默认配置创建示例配置文件,也可以为该文件指定其他文件名或其他文件夹。

./kk create config [-f ~/myfolder/abc.yaml]

您可以指定要安装的 KubeSphere 版本(例如 --with-kubesphere v3.3.2)。

./kk create config --with-kubesphere [version]
./kk create config --with-kubernetes v1.23.10 --with-kubesphere
多节点(3)安装 KubeSphere插图12

19.编辑配置文件

如果您不更改名称,那么将创建默认文件 config-sample.yaml。编辑文件,以下是多节点集群(具有一个主节点)配置文件的示例。

spec:
  hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, user: ubuntu, password: Testing123}
  - {name: node1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: ubuntu, password: Testing123}
  - {name: node2, address: 192.168.0.4, internalAddress: 192.168.0.4, user: ubuntu, password: Testing123}
  roleGroups:
    etcd:
    - master
    control-plane:
    - master
    worker:
    - node1
    - node2
  controlPlaneEndpoint:
    domain: lb.kubesphere.local
    address: ""
    port: 6443

主机

请参照上方示例在 hosts 下列出您的所有机器并添加详细信息。
name:实例的主机名。
address:任务机和其他实例通过 SSH 相互连接所使用的 IP 地址。根据您的环境,可以是公有 IP 地址或私有 IP 地址。例如,一些云平台为每个实例提供一个公有 IP 地址,用于通过 SSH 访问。在这种情况下,您可以在该字段填入这个公有 IP 地址。
internalAddress:实例的私有 IP 地址。

此外,您必须提供用于连接至每台实例的登录信息,以下示例供您参考:

使用密码登录示例:

hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, port: 8022, user: ubuntu, password: Testing123}

在本教程中,端口 22 是 SSH 的默认端口,因此您无需将它添加至该 YAML 文件中。否则,您需要在 IP 地址后添加对应端口号,如上所示。

默认 root 用户示例:

hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, password: Testing123}

使用 SSH 密钥的无密码登录示例:

hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, privateKeyPath: "~/.ssh/id_rsa"}
  • 在安装 KubeSphere 之前,您可以使用 hosts 下提供的信息(例如 IP 地址和密码)通过 SSH 的方式测试任务机和其他实例之间的网络连接。
  • 在安装前,请确保端口 6443 没有被其他服务占用,否则在安装时会产生冲突(6443 为 API 服务器的默认端口)。

roleGroups

  • etcd:etcd 节点名称
  • control-plane:主节点名称
  • worker:工作节点名称

controlPlaneEndpoint(仅适用于高可用安装)

您需要在 controlPlaneEndpoint 部分为高可用集群提供外部负载均衡器信息。当且仅当您安装多个主节点时,才需要准备和配置外部负载均衡器。请注意,config-sample.yaml 中的地址和端口应缩进两个空格,address 应为您的负载均衡器地址。有关详细信息,请参见高可用配置

addons

您可以在 config-sample.yaml 的 addons 字段下指定存储,从而自定义持久化存储插件,例如 NFS 客户端、Ceph RBD、GlusterFS 等。有关更多信息,请参见持久化存储配置

KubeSphere 会默认安装 OpenEBS,为开发和测试环境配置 LocalPV,方便新用户使用。在本多节点安装示例中,使用了默认存储类型(本地存储卷)。对于生产环境,您可以使用 Ceph/GlusterFS/CSI 或者商业存储产品作为持久化存储解决方案。

  • 您可以编辑配置文件,启用多集群功能。有关更多信息,请参见多集群管理
  • 您也可以选择要安装的组件。有关更多信息,请参见启用可插拔组件。有关完整的 config-sample.yaml 文件的示例,请参见此文件

20.使用配置文件创建集群

./kk create cluster -f config-sample.yaml

如果使用其他名称,则需要将上面的 config-sample.yaml 更改为您自己的文件。

多节点(3)安装 KubeSphere插图13

整个安装过程可能需要 10 到 20 分钟,具体取决于您的计算机和网络环境。

21.验证安装

安装完成后,您会看到如下内容:

多节点(3)安装 KubeSphere插图14

现在,您可以通过 <NodeIP:30880 使用默认帐户和密码 (admin/P@88w0rd) 访问 KubeSphere 的 Web 控制台。

多节点(3)安装 KubeSphere插图15

22.启用 kubectl 自动补全

KubeKey 不会启用 kubectl 自动补全功能,请参见以下内容并将其打开:

请确保已安装 bash-autocompletion 并可以正常工作。

# Install bash-completion
apt-get install bash-completion
# Source the completion script in your ~/.bashrc file
echo 'source <(kubectl completion bash)' >>~/.bashrc
# Add the completion script to the /etc/bash_completion.d directory
kubectl completion bash >/etc/bash_completion.d/kubectl

安装完成!

感谢观看多节点(3)安装 KubeSphere,欢迎分享https://cn-lcx.cn/2023/08/31/%e5%a4%9a%e8%8a%82%e7%82%b93%e5%ae%89%e8%a3%85-kubesphere/

评论

  1. 幻透翼
    Windows Edge 125.0.0.0
    8 月前
    2024-6-06 22:04:54

    哥哥好厉害

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇