KubeSphere 概述
官网地址:https://kubesphere.io/zh/
什么是 kubesphere
KubeSphere 是一个开源的多云容器管理平台,旨在简化企业级 k8s 集群的部署、管理和运维。它提供了一个可视化的管理界面,帮助用户更轻松地管理和监控 k8s 集群,同时集成了常用的 DevOps 工具和服务,如 CI/CD、日志管理、监控告警等,进一步提高了开发和运维效率。KubeSphere 还支持跨云、混合云和多集群的管理,帮助用户更好地应对复杂多样的场景需求。作为一个开源项目,KubeSphere 也积极参与社区,与 k8s 生态系统保持紧密的技术合作和交流。
KubeSphere 愿景是打造一个以 k8s 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度。
全栈的 k8s 容器云 PaaS 解决方案,KubeSphere 是在 k8s 之上构建的以应用为中心的多租户(NS、sa )容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。
KubeSphere 作为企业级的全栈化容器平台,为用户提供了一个极致体验的 Web 控制台,让您能够像使用任何其他互联网产品一样,快速上手各项功能与服务。KubeSphere 目前提供了工作负载管理、微服务治理、DevOps 工程、Source to Image、多租户管理、多维度监控、日志查询与收集、告警通知、服务与网络、应用管理、基础设施管理、镜像管理、应用配置密钥管理等功能模块,并支持对接多种开源的存储与网络方案,支持高性能的商业存储与网络服务。
线上Demo体验:https://kubesphere.cloud/login/?redirect=%2Fconsole%2Fmanaged-cluster%2F
参考设置 pwd:Aa123456.
kubesphere 优点
KubeSphere 具有以下优点:
- 简化部署和管理:KubeSphere 提供了一个直观的可视化管理界面,使得用户可以轻松地部署、管理和监控 k8s 集群,无需深入了解底层的技术细节。
- 多云支持:KubeSphere 可以集中管理不同云平台上的 k8s 集群,使得用户可以轻松地在多个云提供商之间进行迁移和管理,降低了云厂商锁定的风险。
- 集成 DevOps 工具:KubeSphere 集成了常用的 DevOps 工具和服务,如 CI/CD、日志管理、监控告警等,帮助用户构建端到端的开发流水线,提高开发效率和质量。
- 多集群管理:KubeSphere 支持跨多个 k8s 集群的管理,使得用户可以轻松地管理和监控多个集群,提供了更好的灵活性和扩展性。
- 社区支持和活跃度:KubeSphere 是一个开源项目,积极参与 k8s 社区,与其它项目和工具保持紧密的技术合作和交流,用户可以获得广泛的社区支持和贡献。
总的来说,KubeSphere 简化了 k8s 集群的部署和管理,提供了多云支持、集成 DevOps 工具和多集群管理等功能,使得企业能够更加方便地构建和管理容器化的应用。
kubesphere 的使用场景
KubeSphere 适用于以下场景:
- 企业级 k8s 管理:KubeSphere 提供了一个可视化的管理界面,帮助企业更轻松地管理和监控 k8s 集群,包括集群的部署、配置、扩展和升级等。它还提供了权限管理、日志管理、监控告警等功能,适用于大规模的企业级 k8s 管理。
- 多云管理:KubeSphere 支持跨多个云提供商的 k8s 集群管理,可以集中管理不同云平台上的集群,帮助企业在不同云之间进行应用迁移和管理,降低了云厂商锁定的风险。
- DevOps 实践:KubeSphere 集成了常用的 DevOps 工具和服务,如 CI/CD、日志管理、监控告警等,帮助企业构建端到端的开发流水线。它提供了可视化的 CI/CD 界面,支持自动化构建、测试和部署,提高了开发效率和质量。
- 多集群管理:KubeSphere 支持跨多个 k8s 集群的管理,可以轻松地管理和监控多个集群。这对于需要在不同环境中部署应用或者进行灾备和容灾等场景非常有用。
- 容器化应用管理:KubeSphere 提供了一套完整的容器化应用管理功能,包括应用的部署、扩展、配置、监控和升级等。它还支持应用市场和插件机制,可以方便地扩展和定制功能。
总的来说,KubeSphere 适用于企业级 k8s 集群的管理、多云场景下的应用迁移和管理、DevOps 实践、多集群管理以及容器化应用管理等场景。它提供了丰富的功能和易用的界面,帮助企业更好地利用 k8s 构建和管理容器化应用。
KubeKey 一键部署 k8s 集群
官方文档:https://kubesphere.io/zh/docs/v3.4/installing-on-linux/introduction/multioverview/
一台master node(初始化主节点)、两台 work node( join加入主节点)
安装docker
#移除以前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 配置yum源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 配置阿里云镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://g8vxwvax.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 启动Docker
sudo systemctl start docker
# 设置开机启动Docker
sudo systemctl enable docker
# 检查是否安装成功
sudo docker run hello-world
系统环境准备
# 节点之中不可以有重复的主机名,mac地址等,设置不同的hostname
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
# 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 将SElinux设置为permissive模式,禁用
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcin$/SELINUX=permissive/' /etc/selinux/config
# 关闭swap分区
sudo swapoff -a
sudo sed -ri 's/.*swap.*/#&/' /etc/fstab
# 允许 iptables 检查桥接流量(所有节点)
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
# 安装依赖
yum -y install socat conntrack ebtables ipset net-tools
# 配置ssh互访,所有节点
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.111
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.112
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.113
下载 KubeKey
# 只在master上执行即可
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | sh -
# 为 kk 添加可执行权限:
chmod +x kk
创建集群
# 创建集群配置文件
./kk create config --with-kubernetes v1.22.12 --with-kubesphere v3.4.0
vim config-sample.yaml
spec:
hosts:
- {name: master, address: 192.168.0.111, internalAddress: 192.168.0.111, user: root, password: "123456"}
- {name: node1, address: 192.168.0.112, internalAddress: 192.168.0.112, user: root, password: "123456"}
- {name: node2, address: 192.168.0.113, internalAddress: 192.168.0.113, user: root, password: "123456"}
roleGroups:
etcd:
- master
control-plane:
- master
worker:
- node1
- node2
# 创建集群 整个安装过程可能需要 10 到 20 分钟,具体取决于您的计算机和网络环境
./kk create cluster -f config-sample.yaml
# 安装完成后,您会看到如下内容
10:17:15 CST success: [master]
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://192.168.0.110:30880
Account: admin
Password: P@88w0rd
NOTES:
1. After you log into the console, please check the
monitoring status of service components in
"Cluster Management". If any service is not
ready, please wait patiently until all components
are up and running.
2. Please change the default password after login.
#####################################################
https://kubesphere.io 2023-10-26 10:25:15
#####################################################
10:25:32 CST success: [master]
10:25:32 CST Pipeline[CreateClusterPipeline] execute successfully
Installation is complete.
Please check the result using the command:
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 告警系统 | 可以为工作负载和节点自定义告警策略。告警策略被触发后,告警消息会通过不同的渠道(例如,邮件和 Slack)发送至接收人。 |
| KubeSphere 审计日志系统 | 提供一套与安全相关并按时间顺序排列的记录,记录平台上不同租户的活动。 |
| KubeSphere DevOps 系统 | 基于 Jenkins 提供开箱即用的 CI/CD 功能,提供一站式 DevOps 方案、内置 Jenkins 流水线与 B2I & S2I。 |
| KubeSphere 事件系统 | 提供一个图形化的 Web 控制台,用于导出、过滤和警告多租户 Kubernetes 集群中的 Kubernetes 事件。 |
| KubeSphere 日志系统 | 在统一的控制台中提供灵活的日志查询、收集和管理功能。可以添加第三方日志收集器,例如 Elasticsearch、Kafka 和 Fluentd。 |
| HPA | 根据设定指标对 Pod 数量进行动态伸缩,使运行在上面的服务对指标的变化有一定的自适应能力。 |
| 网络策略 | 可以在同一个集群内部之间设置网络策略(比如限制或阻止某些实例 Pod 之间的网络请求)。 |
| KubeEdge | 为集群添加边缘节点并在这些节点上运行工作负载。 |
| KubeSphere 应用商店 | 基于 Helm 的应用程序商店,允许用户管理应用的整个生命周期。 |
| KubeSphere 服务网格 (基于 Istio) | 提供细粒度的流量治理、可观测性、流量追踪以及可视化流量拓扑图。 |
| 容器组 IP 池 | 创建容器组 IP 池并从 IP 池中分配 IP 地址到 Pod。 |
| 服务拓扑图 | 集成 Weave Scope 以查看应用和容器的服务间通信(拓扑图)。 |
- 以
admin
身份登录控制台。点击左上角的平台管理 ,然后选择集群管理。 - 点击定制资源定义,然后在搜索栏中输入
clusterconfiguration
,点击搜索结果进入其详情页面。 - 在自定义资源中,点击
ks-installer
右侧的三个点,然后选择编辑 YAML。 - 在该配置文件中,将对应组件
enabled
的false
更改为true
,以启用要安装的组件。完成后,点击确定以保存配置。
根据自己需要的功能来开启对应的服务。
安装好应用商店:本质 Helm 还有 Devops:本质 Jenkins。
添加自己的仓库(项目-应用仓库添加)
bitnami https://charts.bitnami.com/bitnami
azure http://mirror.azure.cn/kubernetes/charts/
ali-stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
kaiyuanshe http://mirror.kaiyuanshe.cn/kubernetes/charts
harbor https://helm.goharbor.io
接下来自己任意玩即可