专业提供:服务器安全,网站安全,服务器环境配置,网站搬家迁移,私有云搭建
MENU

KubeSphere安装部署

KubeSphere安装部署

Kubesphere简介

KubeSphere是在 Kubernetes 之上构建的企业级分布式多租户容器管理平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对敏捷开发与自动化运维、微服务治理、多租户管理、工作负载和集群管理、服务与网络管理、应用编排与管理、镜像仓库管理和存储管理等业务场景。

1.1 产品功能

KubeSphere 为用户提供了一个具备极致体验的 Web 控制台,让您能够像使用任何其他互联网产品一样,快速上手各项功能与服务。KubeSphere 目前集成了应用负载、服务与网络、应用管理、资源管理和平台管理共五大模块,以下从专业的角度为您详解各个模块的功能服务:

KubeSphere安装部署

1.2  部署模式

KubeSphere 部署支持 all-in-one  multi-node 两种部署模式, KubeSphere Installer 采用 Ansible 对部署目标机器及部署流程进行集中化管理配置。采用预配置模板,可以在部署前通过对相关配置文件进行自定义实现对部署过程的预配置,以适应不同的 IT 环境,帮助您快速部署 KubeSphere。

  • KubeSphere 集群中由于部署服务的不同,分为管理节点和计算节点两个角色。
  • 当进行 all-in-one 模式进行单节点部署时,这个节点既是管理节点,也是计算节点。
  • 当进行 multi-node 模式部署多节点集群时,可在配置文件中设置集群角色。
  • 由于部署过程中需要更新操作系统和从镜像仓库拉取镜像,因此必须能够访问外网。无外网环境需先下载离线安装包安装。
  • 如果是新装系统,在 Software Selection 界面需要把 OpenSSH Server 选上。

 2  部署

2.1  环境准备

  • 集群现有的可用内存至少在 10G 以上

# kubectl version | grep Server
Server Version: version.Info{Major:”1″, Minor:”15″, GitVersion:”v1.15.3″, GitCommit:”2d3c76f9091b6bec110a5e63777c332469e0cba2″, GitTreeState:”clean”, BuildDate:”2019-08-19T11:05:50Z”, GoVersion:”go1.12.9″, Compiler:”gc”, Platform:”linux/amd64″}

# helm version
Client: &version.Version{SemVer:”v2.13.1″, GitCommit:”618447cbf203d147601b4b9bd7f8c37a5d39fbb4″, GitTreeState:”clean”}
Server: &version.Version{SemVer:”v2.13.1″, GitCommit:”618447cbf203d147601b4b9bd7f8c37a5d39fbb4″, GitTreeState:”clean”}

2.1.1 创建StorageClass

首先需要确保集群中有一个默认的 StorageClass 资源对象,关于 StorageClass 的使用可以查看

kubernetes(14):k8s基于NFS部署storageclass实现pv自动供给

KubeSphere安装部署

其中 annotations 下面的 storageclass.kubernetes.io/is-default-class: “true” 是必须的:

KubeSphere安装部署

2.2  清理环境

建议先停止已经安装的prometheus/gitlab/Jenkins/sonarqube/harbor/ metrics_server/node-exporter/ Dashboard会有冲突

 

2.3  安装

2.3.1 创建命名空间

首先,在集群中创建名为 kubesphere-system 和 kubesphere-monitoring-system 的namespace:

KubeSphere安装部署

2.3.2 创建集群ca证书secret

注:按照当前集群 ca.crt 和 ca.key 证书路径创建(kubeadm 创建集群的证书路径一般为/etc/kubernetes/pki)

KubeSphere安装部署

2.3.3 创建etcd证书secret

注:以集群实际 etcd 证书位置创建;若 etcd 没有配置证书,则创建空secret

KubeSphere安装部署

KubeSphere安装部署

从这里我们也可以获得 etcd 集群相关的证书。

2.3.4 下载代码

KubeSphere安装部署

2.3.5   在Kubernetes 集群部署 KubeSphere。

版本不一部署方式也不一样,我这里是通过配置文件确定部署模块的,把Jenkins、gitlab、harbor、sonarqube、监控一堆都部署上

修改cat config.yaml 文件

KubeSphere安装部署

# cat config.yaml

apiVersion: v1
data:
ks-config.yaml: |

kubernetes:
apiserverAddr: 10.6.76.25:6443 # master addr or master’s lb addr

etcd:
endpointIps: 10.6.76.25
port: 2379
tlsEnable: True

persistence:
storageClass: “kubesphere-data”

common:
enableHA: True
mysqlVolumeSize: 20Gi
minioVolumeSize: 20Gi
etcdVolumeSize: 20Gi
openldapVolumeSize: 2Gi
redisVolumSize: 2Gi

metrics-server:
enabled: True

console:
enableMultiLogin: True # enable/disable multi login
port: 30880
replicas: 1

monitoring:
prometheusReplicas: 1
prometheusMemoryRequest: 400Mi
prometheusVolumeSize: 20Gi
grafana:
enabled: True

logging:
enabled: True
elasticsearchMasterReplica: 1
elasticsearchDataReplica: 1
elasticsearchVolumeSize: 20Gi
logMaxAge: 7
elkPrefix: logstash
containersLogMountedPath: “”
kibana:
enabled: True

openpitrix:
enabled: True

devops:
enabled: True
jenkinsMemoryLim: 2Gi
jenkinsMemoryReq: 1500Mi
jenkinsVolumeSize: 8Gi
jenkinsJavaOpts_Xms: 512m
jenkinsJavaOpts_Xmx: 512m
jenkinsJavaOpts_MaxRAM: 2g
sonarqube:
enabled: True

servicemesh:
enabled: True

notification:
enabled: True

alerting:
enabled: True

harbor:
enabled: True
domain: harbor.devops.kubesphere.local
gitlab:
enabled: True
domain: gitlab.devops.kubesphere.local

kind: ConfigMap
metadata:
name: ks-installer
namespace: kubesphere-system

cat config.yaml

KubeSphere安装部署

2.3.6   查看部署日志

#这个不同版本也不一样,实在不行就直接 kubectl -n kubesphere-system logs -f 部署的pod

KubeSphere安装部署

2.3.7   所需镜像

注意查看失败的pod信息,如果有镜像不能正确拉取,可以通过ks-installer/scripts/download-docker-images.sh下载 或者根据提示失败的node上拉取

KubeSphere安装部署

 

3   登录使用kubesphere

3.1  登录

查看控制台的服务端口,使用 IP:30880 访问 KubeSphere UI 界面,默认的集群管理员账号为 admin/P@88w0rd

KubeSphere安装部署

KubeSphere安装部署

KubeSphere安装部署

 

3.2  prometheus监控

ks整合了prometheus监控,多种维度监控

KubeSphere安装部署

KubeSphere安装部署

KubeSphere安装部署

设置一个测试告警

配置起来非常方便

KubeSphere安装部署

KubeSphere安装部署

KubeSphere安装部署

邮件发送

KubeSphere安装部署

KubeSphere安装部署

3.3  Jenkins

Jenkins 是一款由 Java 开发的开源的持续集成工具,KubeSphere 内置的 Jenkins 服务端可参考如下步骤登录访问。

1、Jenkins Dashboard 服务暴露的端口 (NodePort) 默认为 30180,若在云平台部署 KubeSphere,则需要进行端口转发和添加防火墙规则,确保外网流量能够正常通过该端口。

2、然后访问公网 IP 和端口号即 http://${EIP}:${NODEPORT},Jenkins 已对接了 KubeSphere 的 LDAP,因此可使用用户名 admin 和 KubeSphere 集群管理员的密码 (初始密码为 P@88w0rd) 登录 Jenkins Dashboard。

说明:若部署在私有环境,则可以在集群的任意节点通过 http://{$节点 IP}:30180 进行访问。

KubeSphere安装部署

3.4 sonarqube

SonarQube 是一个开源的代码分析软件,用来持续分析和检测代码的质量,支持检测 Java、C#、C、C++、JavaScript 等二十多种编程语言。通过 SonarQube 可以检测出项目中潜在的 Bug、漏洞、代码规范、重复代码、缺乏单元测试等问题,SonarQube 提供了 UI 界面进行查看和管理。KubeSphere 安装时默认内置了 SonarQube 服务,可参考如下步骤,访问内置 SonarQube。

KubeSphere安装部署

在浏览器中访问 SonarQube,初次登录的默认账号密码为 admin / admin

创建 SonarQube Token

KubeSphere安装部署

e7a66041f8920011049207b480cef50b54474c8a

KubeSphere安装部署

KubeSphere安装部署

KubeSphere安装部署

3.5 gitlab

在浏览器中可以通过 {$域名}:{$NodePort} 即 http://gitlab.devops.kubesphere.local:30080 访问 GitLab 登录页面。默认的 GitLab 用户名和密码为 admin / P@88w0rd

这个一定要域名解析啊

KubeSphere安装部署

KubeSphere安装部署

3.6 harbor

可以域名解析 http://harbor.devops.kubesphere.local:30280

输入默认的管理员用户名和密码 admin / Harbor12345 登录 Harbor。

其它用户登录的账号密码与 KubeSphere 的 LDAP 用户账户体系一致。

KubeSphere安装部署

3.7 elk日志中心

KubeSphere安装部署

KubeSphere安装部署

KubeSphere安装部署

3.8 kubectl控制台

相当于命令行

KubeSphere安装部署

KubeSphere安装部署

 

 

 

 

联系我们

联系我们

4006-130-160

在线咨询:点击这里给我发消息

邮件:leo@hs.com.cn

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
SHARE
TOP