kubesphere的安装与使用

kubesphere的安装与使用

  • kubesphere是什么
  • 安装kubesphere
    • 1.安装的kubesphere版本与k8s版本是否可以相对应
    • 2.集群中是否有默认 StorageClass
    • 3.安装kubesphere
  • kubesphere的简单使用示例
    • Deployment 部署 nginx
      • 数据存储
      • Deployment 部署 nginx
      • 创建service
    • StatefulSet 部署 redis
      • 数据存储
      • 创建 redis ConfigMap
      • StatefulSet 部署 redis
      • 创建service
  • 结语

kubesphere的安装与使用_第1张图片

kubesphere是什么

KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 为用户提供构建企业级 Kubernetes 环境所需的多项功能,例如多云与多集群管理、Kubernetes 资源管理、DevOps、应用生命周期管理、微服务治理(服务网格)、日志查询与收集、服务与网络、多租户管理、监控告警、事件与审计查询、存储管理、访问权限控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等

kubesphere官方文档

安装kubesphere

这里是在以有的k8s集群上安装kubesphere,在以有的k8s集群上安装kubesphere,需要满足两个前置条件

详见:前置条件链接

1.安装的kubesphere版本与k8s版本是否可以相对应

我这里安装的是kubesphere的v3.4,它要求k8s的版本v1.20.x~v1.26.x之间

#查看k8s版本
kubectl version

输出

WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:58:30Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.9", GitCommit:"d1483fdf7a0578c83523bc1e2212a606a44fd71d", GitTreeState:"clean", BuildDate:"2023-09-13T11:25:26Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}

所以这里版本是满足的

2.集群中是否有默认 StorageClass

集群中创建StorageClass和将其设置为默认 StorageClass可参考:
创建StorageClass
设置默认 StorageClass

查看集群中以有的StorageClass

kubectl get sc

输出

No resources found

显然我这里没有 StorageClass的资源,下面就创建一个StorageClass,并把这个创建的StorageClass设为默认的StorageClass

vim local-storage-class.yaml
#创建存储类,先创建一个local-storage-class.yaml,然后写入一下内容
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
#创建StorageClass资源
kubectl apply -f local-storage-class.yaml
#查看StorageClass
kubectl get sc

输出

在这里插入图片描述

StorageClass已经有了,接下来就将刚才创建的StorageClass设置为默认存储类

#将某个存储类设置为存储类
#kubectl patch storageclass StorageClass的NAME -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
kubectl patch storageclass local-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

查看StorageClass
在这里插入图片描述

PS:上面创建的storageclass 确实可以成功安装kubesphere,但是local-storage配合pvc无法动态创建pv。因此,创建storageclass 也可以使用nfs-storageclass ,详见创建nfs存储类

3.安装kubesphere

至此,kubesphere的安装前置条件已经满足,下面就是安装kubesphere了

安装参考链接

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

运行下面两条命令,只要没报错,使用下面命令查看安装进度,中间可能要等待一段时间(差不多8分钟左右),只要日志没报错,问题就不大

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

最后输出结果如下

kubesphere的安装与使用_第2张图片
开放服务器30880端口,浏览器访问ip:30880,默认用户名和密码为admin/P@88w0rd
kubesphere的安装与使用_第3张图片
至此kubesphere就安装完成了

PS:如果你要在主节点上安装kubesphere的话,还需要去除主节点上设置的taint(可以简单理解为允许pod在主节点调度)

#允许控制节点被调度
kubectl taint nodes --all node-role.kubernetes.io/control-plane-

在这里插入图片描述

kubesphere的简单使用示例

Deployment 部署 nginx

数据存储

需要创建pvc,创建pvc时就会通过StorageClass自动创建pv,并完成pv与pvc的绑定,无需管理员提前创建好pv
kubesphere的安装与使用_第4张图片

kubesphere的安装与使用_第5张图片

kubesphere的安装与使用_第6张图片
下一步,创建成功
kubesphere的安装与使用_第7张图片

Deployment 部署 nginx

kubesphere的安装与使用_第8张图片

kubesphere的安装与使用_第9张图片

kubesphere的安装与使用_第10张图片

kubesphere的安装与使用_第11张图片

kubesphere的安装与使用_第12张图片

kubesphere的安装与使用_第13张图片

kubesphere的安装与使用_第14张图片
kubesphere的安装与使用_第15张图片
kubesphere的安装与使用_第16张图片
kubesphere的安装与使用_第17张图片
点击下一步,创建
kubesphere的安装与使用_第18张图片
查看部署详情
kubesphere的安装与使用_第19张图片
其实使用上面ui界面创建Deployment,也是创建yaml文件,下面是kubesphere未本次部署创建的yaml文件
kubesphere的安装与使用_第20张图片
这时Deployment已经部署完成了,下面就是创建service,提供访问

创建service

kubesphere的安装与使用_第21张图片
kubesphere的安装与使用_第22张图片

kubesphere的安装与使用_第23张图片
kubesphere的安装与使用_第24张图片

kubesphere的安装与使用_第25张图片
service创建成功
kubesphere的安装与使用_第26张图片
访问测试,浏览器访问服务器外网ip+31556测试(前提是将服务器的端口防火墙放行)

在这里插入图片描述
访问成功,但是403,因为上面将ngxin容器的/usr/share/nginx/html目录挂载出来了,所以现在该目录下没有index.html。现在去该容器的目录下创建index.html或者到nfs的共享目录下找到nginx的挂载目录也可
在这里插入图片描述
再次浏览器访问测试
kubesphere的安装与使用_第27张图片
进入ngixn-dep部署的详情页可以查看容器日志,进入容器,调整副本数等等
kubesphere的安装与使用_第28张图片

StatefulSet 部署 redis

数据存储

创建pvc,方法与上面相同
kubesphere的安装与使用_第29张图片

创建 redis ConfigMap

为了测试kubesphere中ConfigMap的创建和使用,这里将redis.conf配置为ConfigMap挂载到redis容器下
在这里插入图片描述

kubesphere的安装与使用_第30张图片
kubesphere的安装与使用_第31张图片
kubesphere的安装与使用_第32张图片
创建成功
kubesphere的安装与使用_第33张图片

StatefulSet 部署 redis

kubesphere的安装与使用_第34张图片

kubesphere的安装与使用_第35张图片

kubesphere的安装与使用_第36张图片
下面还要设置容器的启动命令,因为会使用自定义的redis.conf
kubesphere的安装与使用_第37张图片

configmap的配置方式与pvc模板的使用相似
kubesphere的安装与使用_第38张图片

将容器里/data目录挂载出来,将redis-cfg configmap里的redis.conf键以文件的形式挂载到/usr/local/etc/redis目录下kubesphere的安装与使用_第39张图片
部署成功
kubesphere的安装与使用_第40张图片

创建service

kubesphere的安装与使用_第41张图片

访问测试

PS:服务器防火墙30109要打开

kubesphere的安装与使用_第42张图片

上面redis只是单机部署,所以用StatefulSet 部署与Deployment 感觉没什么差别,有时间了整一个集群部署看看。这里仅展示了我对kubusphere的简单使用,kubesphere还很多强大且便利的功能,像检测告警,DevOps流水线支持等等

官方链接

结语

写这些,仅记录自己学习使用k8s的过程。如果有什么错误的地方,还请大家批评指正。最后,希望小伙伴们都能有所收获。

你可能感兴趣的:(写着玩,k8s,kubesphere,docker,kubernetes,容器,kubernets,in,docker)