05.09——K8S—KubeSphere部署

一、admin/rancher部署:

1、admin:部署简单,使用复杂,因为控制器这些都是容器,后期修改复杂。

证书有效期默认是1年,需要admin改源码。

2、rancher:国内用的不多,可以使用kubesphere。

弊端:

使用复杂,API Server等都是容器化安装,很多功能缺失,需要后期手动去配,装插件、打镜像等。

二、KubeSphere:

KubeSphere 为用户提供轻量级安装程序 KubeKey(该程序支持安装 Kubernetes、KubeSphere 及相关插件),安装过程简单而友好。KubeKey 不仅能帮助用户在线创建集群,还能作为离线安装解决方案。

以下是可用的安装选项:

1、All-in-One:在单个节点上安装 KubeSphere(仅为让用户快速熟悉 KubeSphere)。

2、多节点安装:在多个节点上安装 KubeSphere(用于测试或开发)。

3、在 Linux 上离线安装:将 KubeSphere 的所有镜像打包(便于在 Linux 上进行离线安装)。

4、高可用安装:安装具有多个节点的高可用 KubeSphere 集群,该集群用于生产环境。

5、最小化安装:仅安装 KubeSphere 所需的最少系统组件。以下是最低资源要求:

2 个 CPU

4 GB 运行内存

40 GB 存储空间

6、全家桶安装:安装 KubeSphere 的所有可用系统组件,例如 DevOps、服务网格、告警等。

1、KubeKey:

替代了以前使用的基于 ansible 的安装程序。

KubeKey 的几种使用场景:

-仅安装 Kubernetes;

-使用一个命令同时安装 Kubernetes 和 KubeSphere;

-扩缩集群;

-升级集群;

-安装 Kubernetes 相关的插件(Chart 或 YAML)。

2、多节点安装:

①下载KubeKey:

 //可以访问GitHub的情况下,直接下载:

curl -sfL https://get-kk.kubesphere.io | VERSION=v2.0.0 sh -

//访问受限的情况下:

export KKZONE=cn  //先执行命令以确保您从正确的区域下载 KubeKey

curl -sfL https://get-kk.kubesphere.io | VERSION=v2.0.0 sh -  //执行命令下载

PS:

1、可以通过修改VERSION后的值来修改下载的版本号;

2、下载 KubeKey 后,如果您将其传输至访问 Googleapis 同样受限的新机器,请您在执行以下步骤之前务必再次执行 export KKZONE=cn 命令。

实例:

图示为下载成功的回显

②为kk文件添加执行权限:

chmod +x kk  //chmod命令添加权限,r:读 w:写 x:执行

实例:

图示为添加权限回显

③创建集群:

对于多节点安装,需要通过指定配置文件来创建集群。

1、创建配置文件:

//创建配置文件

./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]

//实例:

./kk create config --with-kubernetes v1.18.6 --with-kubesphere v3.1.1 -f ~/lrz/test.yaml

PS:

1、安装 KubeSphere 3.2.1 的建议 Kubernetes 版本:v1.19.x、v1.20.x、v1.21.x 或 v1.22.x(实验性支持)。如果不指定 Kubernetes 版本,KubeKey 将默认安装 Kubernetes v1.21.5。

2、如果在此步骤的命令中不添加标志 --with-kubesphere,则不会部署 KubeSphere,只能使用配置文件中的 addons 字段安装,或者在您后续使用 ./kk create cluster 命令时再次添加这个标志。

3、如果添加标志 --with-kubesphere 时不指定 KubeSphere 版本,则会安装最新版本的 KubeSphere。

2、编辑配置文件:

不更改名称,那么将创建默认文件 config-sample.yaml。

apiVersion: kubekey.kubesphere.io/v1alpha2

kind: Cluster

metadata:

  name: sample

//配置master和node信息

//name:实例的主机名。

//address:任务机和其他实例通过 SSH 相互连接所使用的 IP 地址。根据您的环境,可以是公有 IP 地址或私有 IP 地址。例如,一些云平台为每个实例提供一个公有 IP 地址,用于通过 SSH 访问。在这种情况下,您可以在该字段填入这个公有 IP 地址。

//internalAddress:实例的私有 IP 地址。

spec:

  hosts:

  - {name: master, address: 192.168.142.128, internalAddress: 192.168.142.128, user: root, password: "123456"}

  - {name: node1, address: 192.168.142.130, internalAddress: 192.168.142.130, user: root, password: "123456"}

  - {name: node2, address: 192.168.142.140, internalAddress: 192.168.142.140, user: root, password: "123456"}

  roleGroups:

    etcd:  //etcd节点名称

    - master

    control-plane:  //主节点名称

    - master

    worker:  //工作节点名称

    - node1

    - node2

//高可用安装

  controlPlaneEndpoint:

    ## Internal loadbalancer for apiservers

    # internalLoadbalancer: haproxy  //内置负载均衡器,取消注释即可使用

    domain: lb.kubesphere.local  //默认内部访问域名

    address: ""  //缩进2空格,填写公共IP(例如阿里云SLB)或者私有IP

    port: 6443  //缩进2空格

  kubernetes:

    version: v1.18.6  //K8S版本

imageRepo: kubesphere  //下载镜像的仓库

    clusterName: cluster.local  //集群名称

    masqueradeAll: false  //使用纯 iptables 代理模式,masqueradeAll 即让 kube-proxy 对所有流量进行源地址转换 (SNAT)。它默认值为 false

    maxPods: 110  //Kubelet 可运行 Pod 的最大数量,默认值为 110

    nodeCidrMaskSize: 24  //集群中节点 CIDR 的掩码大小,默认值为 24

    proxyMode: ipvs  //使用的代理模式,默认为 ipvs

  network:

    plugin: calico  //CNI插件。KubeKey默认安装Calico,也可以指定为Flannel。只有使用Calico作为CNI插件时,才能使用某些功能,例如 Pod IP 池

    kubePodsCIDR: 10.233.64.0/18  //Kubernetes Pod 子网的有效 CIDR 块。CIDR 块不应与您的节点子网和 Kubernetes 服务子网重叠

    kubeServiceCIDR: 10.233.0.0/18  //Kubernetes 服务的有效 CIDR 块

    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni

    multusCNI:

      enabled: false

  registry:

    plainHTTP: false

    privateRegistry: ""  //配置私有镜像仓库,用于离线安装(例如,Docker 本地仓库或 Harbor)

    namespaceOverride: ""

    registryMirrors: []  //配置 Docker 仓库镜像以加速下载

    insecureRegistries: []  //设置不安全镜像仓库的地址

  addons: []  //指定存储,从而自定义持久化存储插件

PS:

1、端口 22 是 SSH 的默认端口,因此无需将它添加至该 YAML 文件中。否则,您需要在 IP 地址后添加对应端口号,如下所示。

    hosts:

  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, port: 8022, user: ubuntu, password: Testing123}

2、用户默认root可以删除user。

3、使用 SSH 密钥的无密码登录示例:

  hosts:

  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, privateKeyPath: "~/.ssh/id_rsa"}

4、在安装前,请确保端口 6443 没有被其他服务占用,否则在安装时会产生冲突(6443 为 API 服务器的默认端口)。

3、使用配置文件创建集群:

 ./kk create cluster -f config-sample.yaml  //整个安装过程可能需要 10 到 20 分钟

PS:

依赖conntrack,用yum源安装即可。

下图为安装过程:

4、验证安装:

安装完可以看到如下内容:

#####################################################

###              Welcome to KubeSphere!          ###

#####################################################

Console: http://192.168.142.128:30880

Account: admin

Password: P@88w0rd

NOTES:

  1. After you log into the console, please check the

    monitoring status of service components in

    the "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            20xx-xx-xx xx:xx:xx

#####################################################

然后就可以通过<NODEIP:30880>使用默认账户密码(admin/P@88w0rd)访问控制台。

5、启用kubectl补全:

KubeKey 不会启用 kubectl 自动补全功能,请确保已安装 bash-autocompletion 并可以正常工作。

 yum -y install bash-completion

echo 'source <(kubectl completion bash)' >>~/.bashrc

kubectl completion bash >/etc/bash_completion.d/kubectl


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容