利用项目空闲期,决定选型个PASS平台,让项目运行在上面看上去更高大上点。本人以前使用过openshift,刚开始倾向于使用比较熟悉的平台,选型时跟其他技术大咖沟通交流了下,好几位反馈kubesphere比较不错,看了下是国内开源的PASS平台,也比较新,本着支持国货的原则,最终选择使用kubesphere,记录下部署和使用过程。很多时候生产环境是跟公网隔离的,在使用部署直接选择了离线部署kebesphere,不多说直接上干货。

一、artifact制作

制作kubesphere安装模版,官方叫artifact,目的是在有网环境下制作,然后可以拷贝到网隔离的环境直接安装。制作一次后可以多次使用,且需要在有公网环境制作

1)从git下载kubekey最新包,Releases · kubesphere/kubekey · GitHub,上传到指定目录,并解压缩

kubernetes离线安装包 kubesphere 离线_linux

2、利用vi命令,创建manifest-sample.yaml文件,参照离线安装,本人使用的是ubuntu镜像,文件内容如下

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Manifest
metadata:
  name: sample
spec:
  arches:
  - amd64
  operatingSystems:
  - arch: amd64
    type: linux
    id: ubuntu
    version: "20.04"
    osImage: Ubuntu 20.04.3 LTS
    repository:
      iso:
        localPath:
        url: https://github.com/kubesphere/kubekey/releases/download/v2.0.0/ubuntu-20.04-amd64-debs.iso
  kubernetesDistributions:
  - type: kubernetes
    version: v1.21.5
  components:
    helm:
      version: v3.6.3
    cni:
      version: v0.9.1
    etcd:
      version: v3.4.13
    containerRuntimes:
    - type: docker
      version: 20.10.8
    crictl:
      version: v1.22.0
    docker-registry:
      version: "2"
      #harbor:
      #version: v2.4.1
    docker-compose:
      version: v2.2.2
  images:
  - registry.cn-beijing.aliyuncs.com/kubesphereio/examples-bookinfo-ratings-v1:1.16.3
  - registry.cn-beijing.aliyuncs.com/kubesphereio/cni:v3.20.0
  - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers:v3.20.0
  - registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol:v3.20.0
  - registry.cn-beijing.aliyuncs.com/kubesphereio/node:v3.20.0
  - registry.cn-beijing.aliyuncs.com/kubesphereio/coredns:1.8.0
  - registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache:1.15.12
  - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver:v1.21.5
  - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager:v1.21.5
  - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy:v1.21.5
  - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler:v1.21.5
  - registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.4.1
  registry:
    auths: {}

3、 制作artifact并导出,需要在有网络环境下,因为需要下载相关工具和镜像

执行命令:./kk artifact export -m manifest-sample.yaml -o kubesphere.tar.gz

kubernetes离线安装包 kubesphere 离线_linux_02

到此artifact制作完成,可以拷贝到离线环境直接通过kubesphere.tar.gz安装部署kubesphere

二、 离线安装kubephere

 1、拷贝kubekey-v2.1.0-linux-amd64.tar.gz和kubesphere.tar.gz(制作好的artifact)到需要部署kubespere的服务器,并执行tar -zxvf kubekey-v2.1.0-linux-amd64.tar.gz解压缩kubekey

2、创建kubespere集群config配置文件,执行以下命令,会自动生成一个config-sample.yaml文件

./kk create config --with-kubesphere v3.2.1 --with-kubernetes v1.21.5 -f config-sample.yaml

kubernetes离线安装包 kubesphere 离线_离线_03

用vi命令打开文件根据实际需要创建kubesphere集群节点

kubernetes离线安装包 kubesphere 离线_kubernetes离线安装包_04

 3、安装镜像仓库,执行以下命令

./kk init registry -f config-sample.yaml -a kubesphere.tar.gz

kubernetes离线安装包 kubesphere 离线_离线_05

说明:

config-sample.yaml 指离线环境集群的配置文件

kubesphere.tar.gz 指源集群打包出来的 tar 包镜像

4、安装kubesphere集群,执行以下命令 

./kk create cluster -f config-sample.yaml -a kubesphere.tar.gz --with-packages

kubernetes离线安装包 kubesphere 离线_kubernetes离线安装包_06

说明:

config-sample.yaml:离线环境集群的配置文件

kubesphere.tar.gz:源集群打包出来的 tar 包镜像

--with-packages:若需要安装操作系统依赖,需指定该选项

5、验证,在浏览器输入127.0.0.1:30880/login,弹出登录页面

kubernetes离线安装包 kubesphere 离线_配置文件_07

 

三、kubesphere卸载

执行以下命令即可: 

./kk delete cluster -f config-sample.yaml