官方文档:https://kubesphere.io/zh/docs/
硬件推荐配置
容器运行时
您的集群必须有一个可用的容器运行时。如果您使用 KubeKey 搭建集群,KubeKey 会默认安装最新版本的 Docker。或者,您也可以在创建集群前手动安装 Docker 或其他容器运行时。
依赖项要求
KubeKey 可以将 Kubernetes 和 KubeSphere 一同安装。针对不同的 Kubernetes 版本,需要安装的依赖项可能有所不同。您可以参考以下列表,查看是否需要提前在节点上安装相关的依赖项。
KubeKey 是用 Go 语言开发的一款全新的安装工具,代替了以前基于 ansible 的安装程序。KubeKey 为用户提供了灵活的安装选择,可以分别安装 KubeSphere 和 Kubernetes 或二者同时安装,既方便又高效。
网络和 DNS 要求
- 请确保 /etc/resolv.conf 中的 DNS 地址可用,否则,可能会导致集群中的 DNS 出现问题。
- 如果您的网络配置使用防火墙规则或安全组,请务必确保基础设施组件可以通过特定端口相互通信。建议您关闭防火墙。有关更多信息,请参见端口要求。
- 支持的 CNI 插件:Calico 和 Flannel。其他插件也适用(例如 Cilium 和 Kube-OVN 等),但请注意它们未经充分测试。
提示:
- 建议您的操作系统处于干净状态(不安装任何其他软件),否则可能会发生冲突。
- 如果您无法从 dockerhub.io 下载容器镜像,建议提前准备仓库的镜像地址(即加速器)。有关更多信息,请参见为安装配置加速器。
一、准备工作
1、关闭防火墙或开启必要的端口
[root@master ~]# systemctl stop firewalld.service[root@master ~]# systemctl disable firewalld.serviceRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
2、查看并关闭swap分区
[root@master ~]# swapoff -a
[root@master ~]# echo "vm.swappiness=0" >> /etc/sysctl.conf
[root@master ~]# sysctl -p /etc/sysctl.conf
vm.swappiness = 0
[root@master ~]# sed -i 's$/dev/mapper/centos-swap$#/dev/mapper/centos-swap$g' /etc/fstab
3、关闭 Selinux
1、临时关闭(不用重启机器):
setenforce 0 #设置SELinux 成为permissive模式
#setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
可使用如下命令
[root@master ~]# sed -i 's/enforcing/disabled/g' /etc/selinux/config
### 查看Selinux状态
[root kubesphere-master-2 ~]#getenforce
Disabled
4、安装依赖组件
yum install -y ebtables socat ipset conntrack
5、安装docker
[root@master ~]# yum install -y yum-utils
//添加yum源
[root@master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master ~]# yum makecache fast
//安装
[root@master ~]# yum -y install docker-ce docker-ce-cli
//启动
[root@master ~]# systemctl enable docker && systemctl start docker
[root@master ~]# systemctl status docker
设置docker镜像加速器
[root@master ~]# cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://gqk8w9va.mirror.aliyuncs.com"]
}
EOF
//重启docker使配置生效
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl status docker
[root@master ~]# docker info|grep "Registry Mirrors" -A 1

6、DNS
防止出现问题,我把 114.114.114.114 加上了
[root@master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.96.209.133
nameserver 192.168.10.54
[root@master ~]# echo "nameserver 114.114.114.114" >> /etc/resolv.conf
[root@master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.96.209.133
nameserver 192.168.10.54
nameserver 114.114.114.114
二、安装 KubeSphere
1、设置kubernetes仓库
[root@master ~]# cat >/etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
[root@master ~]# yum makecache fast
//安装kubelet和kubectl
[root@master ~]# yum install -y kubelet-1.21.5 kubectl-1.21.5
2、下载 KubeKey
[root@master ~]# mkdir kubekey
[root@master ~]# cd kubekey
[root@master kubekey]# export KKZONE=cn
[root@master kubekey]# curl -sfL https://get-kk.kubesphere.io | VERSION=v1.2.0 sh -
//为 kk 添加可执行权限
[root@master kubekey]# chmod +x kk
3、开始安装
使用kubekey安装kubernetes(v1.21.5)和 kubesphere(v3.2.0)
[root@master kubekey]# ./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.0
执行该命令后,KubeKey 将检查您的安装环境,结果显示在一张表格中。有关详细信息,请参见节点要求和依赖项要求。输入 yes 继续安装流程。
这里可以看到 kubelet 和 kubectl 默认是会安装,上面手动安装的步骤可以省略。docker 最好还是手动安装,这里也检测出了我安装的版本。
当您看到以下输出时,表明安装已经完成。
输入以下命令以检查安装结果。
[root@master kubekey]# kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
输出信息会显示 Web 控制台的 IP 地址和端口号,默认的 NodePort 是
30880。现在,您可以使用默认的帐户和密码(admin/P@88w0rd)通过<NodeIP>:30880访问控制台。

在这里可以看出来本质上是通过 Ansible 部署的。
4、启用 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
详细信息见此。
推荐阅读
多节点安装:
https://kubesphere.com.cn/docs/installing-on-linux/introduction/multioverview/
添加新节点:
https://kubesphere.com.cn/docs/installing-on-linux/cluster-operation/add-new-nodes/
删除新节点(需要在目标节点上面设置污点阻止调度并驱逐容器组):
https://kubesphere.com.cn/docs/v3.3/installing-on-linux/cluster-operation/remove-nodes/
镜像仓库:
https://kubesphere.com.cn/docs/project-user-guide/configuration/image-registry/
