kubernetes集群搭建-金沙1005

kubernetes集群搭建_kubernetes安装详解「建议收藏」kubesphere是在kubernetes之上构建的开源的企业级容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决kubernetes本身存在的存储、网络、安全和易用性等痛点。除此之外,平台

kubesphere 是在 kubernetes 之上构建的开源的企业级容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 kubernetes 本身存在的存储、网络、安全和易用性等痛点。

除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的金沙1005的解决方案帮助企业轻松应对敏捷开发与自动化运维、微服务治理、多租户管理、工作负载和集群管理、服务与网络管理、应用编排与管理、镜像仓库管理和存储管理等业务场景。

kubesphere 源代码和安装使用文档已在 github 上开放,欢迎关注:https://github.com/kubesphere/kubesphere

在现有 kubernetes 集群安装 kubesphere详细步骤在现有 kubernetes 集群安装 kubesphere详细步骤

kubesphere 一开始就推出了开源的社区版本,只是之前提供的安装方式比较单一,在已有的 kubernetes 集群上要想安装相对较麻烦,本文将为你演示如何在已有的 kubernetes 集群上安装 kubesphere。

环境准备

本文安装 kubesphere 使用到的相关环境及工具如下:

使用 kubeadm 搭建的 kubernetes 1.15.2 版本集群

helm v2.14.1 版本

使用 nfs 作为集群存储后端

使用到的安装脚本地址:https://github.com/kubesphere/ks-installer

首先需要确保集群中有一个默认的 storageclass 资源对象,关于 storageclass 的使用可以查看前面的文章介绍:

apiversion: storage.k8s.io/v1
kind: storageclass
metadata:
  name: dynamic-data
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: fuseim.pri/ifs

希望我今天分享的这篇文章可以帮到您。

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

$ kubectl get sc
name                     provisioner      age
dynamic-data (default)   fuseim.pri/ifs   4h41m
安装

首先将上面安装仓库 clone 到 kubernetes 集群中的 master 节点上,因为我们需要使用到 master 节点上的一些证书文件。

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

$ cat eof | kubectl create -f -
---
apiversion: v1
kind: namespace
metadata:
  name: kubesphere-system
---
apiversion: v1
kind: namespace
metadata:
  name: kubesphere-monitoring-system
eof

2.创建集群ca证书secret

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

$ kubectl -n kubesphere-system create secret generic kubesphere-ca  \
--from-file=ca.crt=/etc/kubernetes/pki/ca.crt  \
--from-file=ca.key=/etc/kubernetes/pki/ca.key 

3.创建etcd证书secret

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

$ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs  \
--from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt  \
--from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt  \
--from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key

由于我这里使用的是 kubeadm 搭建的集群,所以我们可以查看 etcd 的资源清单文件:

$ cat /etc/kubernetes/manifests/etcd.yaml
......
livenessprobe:
  exec:
    command:
    - /bin/sh
    - -ec
    - etcdctl_api=3 etcdctl --endpoints=https://[127.0.0.1]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt
        --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key
        get foo
......

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

4.修改部署文件 由于 kubesphere 部署过程中涉及到的组件非常多,所以安装过程中难免会有一些奇奇怪怪的问题,下面是我在安装过程中遇到的一些问题:

问题1:openldap 这个组件启动报错,因为 ks-account 组件又是依赖 openldap 这个组件的,所以同样启动报错,在安装过程中 openldap 出现了类似如下错误信息。

......
rm: cannot remove ‘/container/service/slapd/assets/config/bootstrap/ldif/readonly-user’: directory not empty 
rm: cannot remove ‘/container/service/slapd/assets/config/bootstrap/schema/mmc’: directory not empty 
rm: cannot remove ‘/container/service/slapd/assets/config/replication’: directory not empty 
rm: cannot remove ‘/container/service/slapd/assets/config/tls’: directory not empty *** /container/run/startup/slapd 
failed with status 1

解决方法:修改配置文件roles/ks-core/prepare/templates/ks-account-init.yaml.j2文件,在 openldap 这个 deployment 下面容器中添加启动参数–copy-service

......
image: {{ openldap_repo }}:{{ openldap_tag }}
imagepullpolicy: ifnotpresent
args:   # 添加该启动参数
- --copy-service 
name: openldap
......

问题2:如果现有集群中已经安装有 metrics_server,需要在配置文件中将 metrics_server_enable 设置为 false

问题3:在安装过程中卡死在waitting for ks-sonarqube port to become open部分,节点上通过 nodeport 已经可以正常访问 sonarqube ,该问题没有解决,由于是一个不影响全局安装的一个操作,所以同样在配置文件中将 sonarqube_enable 设置为 false

问题4:在安装过程中 istio 安装不上,由于我当前的集群资源不是很足,所以也临时取消掉 istio 的安装,后续在开启 istio 的支持。

最终用于安装 kubesphere 的配置文件如下所示:(deploy/kubesphere.yaml)

---
apiversion: v1
data:
  ks-config.yaml: |
    kube_apiserver_host: 10.151.30.11:6443
    etcd_tls_enable: true
    etcd_endpoint_ips: 10.151.30.11
    disablemultilogin: true
    elk_prefix: logstash
    metrics_server_enable: false
    sonarqube_enable: false
    istio_enable: false
kind: configmap
metadata:
  name: kubesphere-config
  namespace: kubesphere-system
......

只需要修改 configmap 的值即可,其中 kube_apiserver_host 就是现有集群的 apiserver 地址,etcd_endpoint_ips 就是 etcd 的所在节点 ip,默认端口为 2379,如果你是集群模式 etcd,这里可以填写多个节点 ip,中间用,隔开,下面就是不需要安装的组件设置为 false。

到这里执行安装命令即可:

$ kubectl apply -f deploy/kubesphere.yaml
$ kubectl get pods -n kubesphere-system
name                                     ready   status      restarts   age
ks-account-575d4fd8f-r5476               1/1     running     0          44m
ks-apigateway-5c56f79976-jxmd4           1/1     running     0          44m
ks-apiserver-5d56bc8976-678hj            1/1     running     0          41m
ks-console-75b6cb84c-ldsn7               1/1     running     0          42m
ks-console-75b6cb84c-pzqcx               1/1     running     0          42m
ks-controller-manager-78bfd56fbf-dtcg2   1/1     running     0          43m
ks-docs-65bd89559b-58lpp                 1/1     running     0          3h16m
kubesphere-installer-x7q8z               0/1     completed   0          45m
openldap-5bd67c84c6-gw8f5                1/1     running     0          114m
redis-6cf6fc98b5-nsqfn                   1/1     running     0          3h19m

在安装过程中可能会因为拉取镜像过慢导致安装校验失败,这种情况我们可以先手动在节点上拉取镜像,然后再重新创建一个新的用于安装的 job 即可。通过如下命令可以查看部署过程中的完整日志:

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

如果上面用于安装的 job 是完成状态的话,证明 kubesphere 已经安装成功了。

最后,可以创建一个 ingress 对象来访问 kubesphere:(kubesphere-ingress.yaml)

$ apiversion: extensions/v1beta1
kind: ingress
metadata:
  name: kubesphere
  namespace: kubesphere-system
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: ks.qikqiak.com
    http:
      paths:
      - path:
        backend:
          servicename: ks-console
          serviceport: 80

直接创建即可:

$ kubectl create -f kubesphere-ingress.yaml

最后做好域名解析,在浏览器中就可以访问了:

在现有 kubernetes 集群安装 kubesphere详细步骤在现有 kubernetes 集群安装 kubesphere详细步骤

默认的登录信息为:

用户名:admin
密码:p@88w0rd

在现有 kubernetes 集群安装 kubesphere详细步骤在现有 kubernetes 集群安装 kubesphere详细步骤

kubesphere 还在持续迭代和快速发展,欢迎大家在 github 关注和下载体验。

本文地址:https://www.linuxprobe.com/kubernetes-kubesphere.html

金沙1005的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/370098.html

(0)


相关推荐

  • 有限元形状函数的几何意义_阶跃函数的性质总结在有限元法中,形函数是一个十分重要的概念。它不仅可以用做单元的内插函数,把单元内任一点的位移用节点位移表示,而且可作为加权余量法中的加权函数,可以处理外载荷,将分布力等效为节点上的集中力和力矩,此外,它还可用于后续的等参数单元的坐标变换等。1形函数的构造原理单元形函数主要取决于单元的形状、节点类型和单元的节点数目。节点的类型可以是只包含场函数的节点值,也可能还包含场函数导数的节点值。是否需要场…_形函数

  • zxing_netboot网络安装//关联 zxing包packagecom.dasudian.qrcode;importcom.xys.libzxing.zxing.activity.captureactivity;importcom.xys.libzxing.zxing.encoding.encodingutils;importandroid.app.activity;importandroid.co

  • mysql磁盘无法挂载_磁盘无法挂载超过2t大小磁盘解决方法[通俗易懂]磁盘分区格式mbr限制了单块磁盘大小为2tb,如果想挂载超过2tb的磁盘,就要换成其他格式如gpt格式。因为帮助客户使用onapp搭建云平台,存储先用6tb在测试,所以需要通过其他格式来挂载这6tb的磁盘。分享下linux上(我用的centos5.9x86_64)挂载使用6tb的dellmd3600f硬件存储的方法:[root@demo~]#parted/dev/sdb#使用parted来…_mysql2t数据量

  • win7 arp攻击_arp攻击命令谈起arp病毒很多用户都不会感到陌生,因为如果受到arp攻击,电脑数据就会向指定地址传送,这时候就会对我们造成巨大损失,那么怎么反arp攻击呢?其实很简单,下面就由小编教大家win7系统反arp攻击的方法吧!  方法/步骤:  1、进如cmd(ms-dos)框,查看arp命令的帮助,如图:  2、根据帮助查看是否遭受到了arp攻击,如图:  3、怎样解决arp攻击?(添加mac-ip的映射,本机ip对应本机mac),如图:  w…

  • python学习知识点备忘(二)浮点数在计算机中的存储是存在“误差”的,数值范围和小数后精度因计算机系统不同而存在略微差异。一个返回为浮点型,一个返回为整型。短路逻辑的核心思想就是:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。科学计数法:11e2,11e-8以e/e为幂的符号,以10为基数。1.1.整数整数长度是不受限制的,也就是说它是有无限大的精度。,它可以把除数和被除数的运算结果结合起来,返回一个包含商和余数的。返回值返回一个元组(取商的结果,取余的结果)_divmod()函数

  • 谷歌老闪退啊 和 pycharm版本问题 and 微信闪退「终于解决」我清了浏览记录也没用感觉这2个方法靠谱点,还没用过设置里面:选择高级-时间限然后开始清理或者设置面板中点高级-重置并清理或者重启https://jingyan.baidu.com/article/eb9f7b6dbfa6f6c79264e844.html…

  • java快速排序算法代码_java快速排序算法代码「建议收藏」1、什么是算法2、递归3、时间复杂度(1)引入(2)小结(3)判断标准(4)空间复杂度4、列表查找:二分查找(1)线性查找(顺序查找)(2)二分查找(3)alex版本(5)对比(6)列表查找:练习5、列表排序6、冒泡排序(1)冒泡排序思路(2)基础版本(3)冒泡排

  • python学习心得(1)——变量,数列[通俗易懂]一直对图灵系列的书报有好感,时尚的封皮和高质量的纸张,就算没看过内容,也已经爱不释手。前两天,从当当那里买了一本「python编程——从入门到实践」。当时从it圈的大佬得知当当有优惠,而且使用它的优惠吗最多能达到满400-250,啃书族怎么可能会放过这个机会,赶紧抓紧时间,从热销榜找出了几本感兴趣的书,就这样的机缘巧合,让我开始了python之旅。看了些豆瓣的评论,很多人都说这本书条理清晰,适合编…_python中变量是数列

发表回复

您的电子邮箱地址不会被公开。

联系js555888金沙老品牌

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图