文章目录
- 一、kubersphere
- 1、KuberSphere简介
- 2、 全栈的 Kubernetes 容器云 PaaS 解决方案
- 3、为什么选择 KubeSphere ?
- 4、 主要功能
- 二、kubespshe 安装(KubeKey安装)
- 1、环境配置
- 2、配置软件依赖
- 3、安装KubeSphere和kubernetes
- 4、安装完成核验
- 5、登陆系统
- 三、Kubernetes可视化界面kubesphere
- 1、kubesphere简介
- 2、kubesphere安装
- 3、安装helm
- 4、部署KubeSphere
- 1、开始安装
- 2、检查安装日志
- 3、查看pod运行状况
- 4、访问kubesphere
- 5、故障排查汇总
一、kubersphere
1、KuberSphere简介
1、linux 安装
2、kubernetes安装
官方文档
- Linux 上的 All-in-one 安装
- 创建企业空间、项目、帐户和角色
- [KubeSphere v2.0 使用手册](KubeSphere v2.0 使用手册)
原文链接:KubeSphere v2.0 使用手册
KubeSphere 容器平台面向云原生应用的容器混合云
KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。
2、 全栈的 Kubernetes 容器云 PaaS 解决方案
KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。
KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。
3、为什么选择 KubeSphere ?
KubeSphere 为企业用户提供高性能可伸缩的容器应用管理服务,旨在帮助企业完成新一代互联网技术驱动下的数字化转型,加速业务的快速迭代与交付,以满足企业日新月异的业务需求。
1、完全开源: 通过 CNCF 一致性认证的 Kubernetes 平台,100% 开源,由社区驱动与开发
2、简易安装: 支持部署在任何基础设施环境,提供在线与离线安装,支持一键升级与扩容集群
3、功能丰富: 在一个平台统一纳管 DevOps、云原生可观测性、服务网格、应用生命周期、多租户、多集群、存储与网络
4、模块化 & 可插拔: 平台中的所有功能都是可插拔与松耦合,您可以根据业务场景可选安装所需功能组件
-
不同团队的受益
实现从云端到数据中心自动化部署、扩容与升级集群
- 1、提高资源利用率,减少内部基础设施的成本支出
- 2、提供安全增强,支持多种存储与网络方案
- 3、为企业交付一个通过 CNCF 认证和可信赖的 Kubernetes 发行版
- 4、支持 Kubernetes 的多云与多集群管理,提供多云与多可用区的高可用
-
开发者
从繁琐的 YAML 编辑工作中解放,让开发者只需专注于业务开发
- 1、为开发者提供向导式的用户体验,降低上手云原生技术栈的学习曲线
- 2、内置常用的自动化部署环境,为应用(Java/NodeJs/Python/Go)部署提供定制化的容器运行环境
- 3、提供开箱即用的工具集,帮助开发者将代码快速构建为可运行的容器镜像,提高开发效率
- 4、提供应用商店和应用生命周期管理,缩短应用上线周期
-
运维团队
构建一站式企业级的 DevOps 架构与可视化运维能力
- 1、提供从平台到应用维度的日志、监控、事件、审计、告警与通知,实现集中式与多租户隔离的可观测性
- 2、简化应用的持续集成、测试、审核、发布、升级与弹性扩缩容
- 3、为云原生应用提供基于微服务的灰度发布、流量管理、网络拓扑与追踪
- 4、提供易用的界面命令终端与图形化操作面板,满足不同使用习惯的运维人员
-
用户
在 Kubernetes 上使用与运维应用变得极其简单
- 1、通过应用商店一键部署与升级应用至 Kubernetes
- 2、提供按需容器资源申请,支持设置容器的弹性伸缩(HPA),提升应用的可靠性与灵活性
- 3、支持导入 Helm 应用仓库可视化编辑与部署应用
- 4、应用商店将支持运营,提供针对应用的计量与计费(v3.x)
4、 主要功能
https://kubesphere.io/zh/
支持在任何基础设施上部署 Kubernetes,提供在线与离线安装,支持添加 GPU 节点
提供 Web 控制台对接 Kubernetes 原生 API 快速创建与管理 Kubernetes 资源,内置多维度的可观测性
提供统一的认证鉴权与细粒度的基于角色的授权系统,支持对接 AD/LDAP
支持 GlusterFS、Ceph、NFS、LocalPV,提供多个 CSI 插件对接公有云与企业级存储;提供面向物理机 Kubernetes 环境的负载均衡器 OpenELB,支持网络策略可视化,支持 Calico、Flannel、Cilium、Kube-OVN 等网络插件
二、kubespshe 安装(KubeKey安装)
1、环境配置
官方支持的操作系统及最低配置
操作系统 | 最低配置 |
---|
Ubuntu 16.04, 18.04 | 2 核 CPU,4 GB 内存,40 GB 磁盘空间 |
Debian Buster, Stretch | 2 核 CPU,4 GB 内存,40 GB 磁盘空间 |
CentOS 7.x | 2 核 CPU,4 GB 内存,40 GB 磁盘空间 |
Red Hat Enterprise Linux 7 | 2 核 CPU,4 GB 内存,40 GB 磁盘空间 |
SUSE Linux Enterprise Server 15/openSUSE Leap 15.2 | 2 核 CPU,4 GB 内存,40 GB 磁盘空间 |
安装前最好保证环境是纯净环境,我这里是云服务器,重装了CentOS7.6系统
支持容器
使用KubeKey进行安装会默认安装最新容器,也可以在使用KubeKey进行安装前安装好指定容器
支持的容器 | 版本 |
---|
Docker | 19.3.8 + |
containerd | 最新版 |
CRI-O(试验版,未经充分测试) | 最新版 |
iSula(试验版,未经充分测试) | 最新版 |
Kubernetes依赖
KubeKey可以指定安装Kubernetes 和 KubeSphere ,但是不同版本的Kubernetes有不同的依赖要求
依赖项 | Kubernetes 版本 ≥ 1.18 | Kubernetes 版本 < 1.18 |
---|
socat | 必须 | 可选但建议 |
conntrack | 必须 | 可选但建议 |
ebtables | 可选但建议 | 可选但建议 |
ipset | 可选但建议 | 可选但建议 |
2、配置软件依赖
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
swapoff -a
echo "vm.swappiness=0" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum -y update
也就是上面的Kubernetes依赖里的内容,全部安装
yum install -y ebtables socat ipset conntrack
3、安装KubeSphere和kubernetes
使用KubeKey可以选择安装KubeSphere和kubernetes的其中一个,也可以全部安装
如果网络不好的小伙伴无法下载默认源,执行以下命令设置国内下载
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.1 sh -
chmod +x kk
在安装前请先检查hostname,如果不符合规则会报以下错误
error: Pipeline[CreateClusterPipeline] execute failed: Module[InitKubernetesModule] exec failed:
failed: [VM-20-8-centos] [AddWorkerLabel] exec failed after 5 retires: add worker label failed: Failed to exec command: sudo -E /bin/bash -c "/usr/local/bin/kubectl label --overwrite node VM-20-8-centos node-role.kubernetes.io/worker="
Error from server (NotFound): nodes "VM-20-8-centos" not found: Process exited with status 1
这时候就需要修改hostname,因为我们是单机安装就设置为master吧,执行以下命令
hostnamectl --static set-hostname master
设置完成后使用`hostnamectl status`命令进行核验
[root@master01 kubesphere]
Static hostname: master01
Icon name: computer-vm
Chassis: vm
Machine ID: 241ae9d4dc04406abf2a9709f70b2a7f
Boot ID: 39d25b17fdeb4e3b85a069f452539a9c
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 5.4.236-1.el7.elrepo.x86_64
Architecture: x86-64
./kk create cluster --with-kubernetes v1.22.10 --with-kubesphere v3.3.0
如果只需要安装KubeSphere或者kubernetes其中一个去掉–with的另一个就可以
4、安装完成核验
安装完成后执行以下命令查看安装结果
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
输出信息会显示 Web 控制台的 IP 地址和端口号,默认的 NodePort 是 30880
。现在可以使用默认的帐户和密码 (admin/P@88w0rd
) 通过 :30880
访问控制台。
5、登陆系统
在浏览器上访问ip+30880的地址出现以下页面
使用默认的帐户和密码 (admin/P@88w0rd
)进行登陆,登陆后就可以探索KubeSphere了
但是真正使用k8s集群单机是不可以的,下篇文章是多节点集群的配置
三、Kubernetes可视化界面kubesphere
【kubesphere官网】:集群要求高
【kubesphere安装教程】 :开源kuboard也不错,集群要求不高【轻量级】
1、kubesphere简介
KubeSphere是一款面向云原生设计的开源项目,在目前主流容器调度平台Kubernetes之上构建的分布式多租户容器管理平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大降低开发、测试、运维的日常工作的复杂度
2、kubesphere安装
kubesphere文档 : https://kubesphere.io/zh/
环境准备
3、安装helm
下面我们需要在 master 节点安装 helm
Helm是Kubernetes的包管理器。包管理器类似于我们在 **Ubuntu** 中使用的 **apt**。**Centos** 中使用的 **yum** 或者**Python** 中的 **pip** 一样,能快速查找、下载和安装软件包。Helm由客户端组件helm和服务端组件Tiller组成,能够将一组K8S资源打包统一管理,是查找、共享和使用为Kubernetes构建的软件的最佳方式。
[root@k8s-m-01 ~]
[root@k8s-m-01 ~]
[root@k8s-m-01 ~]
[root@k8s-m-01 ~]
[root@k8s-m-01 ~]
[root@k8s-m-01 ~]
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}
[root@k8s-m-01 .config]
| Operating System | Cache Path | Configuration Path | Data Path |
|------------------|---------------------------|--------------------------------|-------------------------|
| Linux | $HOME/.cache/helm | $HOME/.config/helm | $HOME/.local/share/helm |
| macOS | $HOME/Library/Caches/helm | $HOME/Library/Preferences/helm | $HOME/Library/helm |
| Windows | %TEMP%\helm | %APPDATA%\helm | %APPDATA%\helm |
[root@k8s-m-01 ~]
[root@k8s-m-01 ~]
[root@k8s-m-01 ~]
4、部署KubeSphere
k8s集群的默认存储类部署
安装前
如果您的服务器无法访问 GitHub,则可以分别复制 kubesphere-installer.yaml 和 cluster-configuration.yaml 中的内容并将其粘贴到本地文件中。然后,您可以对本地文件使用 kubectl apply -f 来安装 KubeSphere。
同时查看k8s集群的默认存储类
[root@master01 ~]
如果没有默认存储类,那么就需要安装默认的存储类
因为我安装的是 nfs,所以在安装了 nfs 服务器启动
[root@master01 ~]
1、开始安装
官网:https://github.com/kubesphere/ks-installer
如果您的服务器无法访问 GitHub,则可以分别复制 kubesphere-installer.yaml 和 cluster-configuration.yaml 中的内容并将其粘贴到本地文件中。然后,您可以对本地文件使用 kubectl apply -f 来安装 KubeSphere。
[root@master01 ~]
[root@master01 ~]
2、检查安装日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-installer -o jsonpath='{.items[0].metadata.name}') -f
3、查看pod运行状况
[root@master01 ~]
ks-console-5c5676fb55-5ffgb 1/1 Running 0 41m
ks-console-5c5676fb55-96fwx 1/1 Running 0 41m
ks-console-5c5676fb55-nkpvn 1/1 Running 0 41m
[root@master01 ~]
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ks-console NodePort 10.98.135.216 <none> 80:30880/TCP 42m
4、访问kubesphere
ip:30880
5、故障排查汇总
TASK [preinstall : KubeSphere | Stopping if StorageClass was not found] ********
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
`解决`
kubectl patch sc local -p '{"metadata": {"annotations": {"storageclass.beta.kubernetes.io/is-default-class": "true"}}}'
其中local为我的sc名称
或者在创建class时添加注解:
metadata:
annotations:
storageclass.beta.kubernetes.io/is-default-class: "true"
[root@master01 ~]
Error from server (NotFound): services "ks-console" not foun
`解决`
安装Kubernetes配置默认存储类
`解决`
[root@master01 ~]
nameserver 114.114.114.114
nameserver 8.8.8.8
`常见问题及解决方式如下`
[root@master01 ~]
[root@master01 ~]
[root@master01 ~]
[root@master01 ~]
[root@master01 ~]
`解决`
[root@master01 kubesphere]
NAME READY STATUS RESTARTS AGE
ks-apiserver-6c6b5b9486-ptbg4 0/1 CrashLoopBackOff 10 (4m31s ago) 36m
ks-apiserver-6c6b5b9486-rnxkg 0/1 CrashLoopBackOff 10 (3m43s ago) 35m
ks-apiserver-6c6b5b9486-rt4px 0/1 CrashLoopBackOff 10 (3m59s ago) 36
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)