使用虚拟机/云服务器安装KubeSphere

本文详细介绍如何使用KubeKey安装Kubernetes,并在此基础上安装KubeSphere。文章提供了具体步骤及遇到问题时的解决方案,例如手动创建存储类以解决安装过程中可能出现的错误。

本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star

同样先上Kubernetes的版本以及环境配置

软件环境

VMWare Palyer16 部署的两台Ubuntu 18.04
Kubernetes v1.20

Kubernetes环境

这里我们可以先看一下通过KubeKey安装的Kubernetes。大家可以自己排查一下再继续跟笔者往下走,如果对K8s架构熟悉的大佬可以略过此标题的内容。
kubectl get pod -A
这里我们可以看到KubeKey帮助我们安装的核心组件。
其中calico为网络插件、coreDNS为dns解析插件、apiserver为控制平面插件、kube-proxy网络代理组件、kube-scheduler调度器、nodelocaldns为集群的DNS提高服务质量。同学们一定要保证这些Pod都处于Running状态
细心的K8s同学会发现etcd去哪里了,这里KubeKey安装的etcd是以binary install安装的,所以可以通过systemctl status etcd查看。

开始安装KubeSphere

安装好了Kubernetes后安装KubeSphere很简单。
提供一种傻瓜式下发方法

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/kubesphere-installer.yaml
   
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yaml

kubectl命令没有的同学,可以按照 kubectl安装的教程
感兴趣的同学可以将两个文件下过来看一下。

wget https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/kubesphere-installer.yaml
   
wget https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yaml

然后再通过上面两条Kubectl apply将文件下发下去
其中kubesphere-install.yaml定义了CRD、serviceAccount、RoleBinding、Deployment
然后我们就可以等待一下安装啦!
国内如果下载失败可以去ACR(阿里镜像托管)配置一下加速,然后通过手动 docker pull kubesphere/ks-installer:v3.2.1拉取一下镜像。

这里基本所有同学都不可能成功安装,因为我们使用的Host Storage存储,因此需要手动创建存储类。
大概率会出现如下错误

fatal: [localhost]: FAILED! => {
    "assertion": "\"(default)\" in default_storage_class_check.stdout",
    "changed": false,
    "evaluated_to": false,
    "msg": "Default StorageClass was not found !"
}

文末我们进行存储类的分析。这里我们仅提供解决办法
创建文件storageclass.yaml

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

创建文件persistentVolumeClaim.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pve
spec:
  accessModes:
     - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: local-storage

下发yaml

kubectl apply -f storageclass.yaml
kubectl apply -f persistentVolumeClaim.yaml

下发两个Kubesphere yaml

kubectl apply -f kubesphere-installer.yaml
kubectl apply -f cluster-configuration.yaml

查看安装过程

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

安装成功,登录控制台

logs命令出现以下输出即为安装成功
在这里插入图片描述
${yourIP}:30880 访问控制台
Kubesphere 控制台

### 使用 KubeKey v3.1.7 进行 KubeSphere 离线安装的操作指南 #### 准备工作 为了成功完成离线环境下的 KubeSphere 部署,需先准备一个能够访问互联网的节点来创建所需的离线资源包。此过程涉及下载最新版本的 KubeKey (v3.1.7),并利用其生成适用于目标集群的镜像和依赖文件[^1]。 ```bash wget https://github.com/kubesphere/kubekey/releases/download/v3.1.7/kubekey-v3.1.7-linux-amd64.tar.gz tar -xvf kubekey-v3.1.7-linux-amd64.tar.gz chmod +x kk ``` #### 创建离线安装包 在具备网络连接的工作站上运行如下命令以打包必要的组件: ```bash ./kk create offline --with-kubernetes v1.20.5 --with-kubesphere v3.2.0 ./offline-packages/ ``` 上述指令会依据指定版本号收集 KubernetesKubeSphere 的二进制文件及其所需的所有容器映像至 `./offline-packages/` 文件夹内。 #### 将离线包传输到目标主机群集 通过合适的手段(如 USB 或者 NFS)把刚刚制作好的离线软件包复制给所有计划部署 KubeSphere服务器,并确保这些机器之间可以互相通信以及拥有足够的磁盘空间存储解压后的数据。 #### 安装前置工具 对于每台参与构成K8S集群的物理机或虚拟机而言,都需要预先安装备份一些基础性的Linux实用程序,这可以通过执行下面给出的一组YUM命令实现[^2]: ```bash yum install -y socat conntrack ebtables ipset ``` #### 执行实际安装流程 最后一步是在任意一台已准备好前述条件的控制平面节点上面启动正式的安装进程: ```bash export KKZONE=cn ./kk create cluster --with-kubernetes v1.20.5 --with-kubesphere v3.2.0 --offline true --image-repo /path/to/offline-packages/images --package-path /path/to/offline-packages/packages ``` 这条语句里的参数指定了要使用Kubernetes/KubeSphere 版本、确认采用离线模式、定义本地镜像仓库路径及附加插件的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值