下载 KubeKey
KubeKey 是新一代 Kubernetes 和 KubeSphere 安装器,可帮助您以简单、快速、灵活的方式安装 Kubernetes 和 KubeSphere。
- export KKZONE=cn
- curl -sfL https://get-kk.kubesphere.io | VERSION=v1.0.1 sh -
准备镜像
如果您想让安装加快或者您的机房没有外网,可以使用公司内部的私有仓库,预先把镜像推送到私有仓库中,我这里的仓库使用harbor
下载离线安装工具,我这里只是用这个脚本来下载和推送镜像
- curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/offline-installation-tool.sh
- curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/images-list.txt
拉取镜像
- ./offline-installation-tool.sh -s -l images-list.txt -d ./kubesphere-images
- 在./kubesphere-images目录下能看到以下压缩包
- # ll
- total 8606088
- -rw-r--r-- 1 root root 454465957 Feb 2 15:37 csi-images.tar.gz
- -rw-r--r-- 1 root root 1231853258 Feb 2 15:33 example-images.tar.gz
- -rw-r--r-- 1 root root 445244294 Feb 2 14:50 istio-images.tar.gz
- -rw-r--r-- 1 root root 762326634 Feb 2 14:27 k8s-images.tar.gz
- -rw-r--r-- 1 root root 1297767607 Feb 2 14:40 ks-core-images.tar.gz
- -rw-r--r-- 1 root root 3439146357 Feb 2 15:19 ks-devops-images.tar.gz
- -rw-r--r-- 1 root root 733165078 Feb 2 14:46 ks-logging-images.tar.gz
- -rw-r--r-- 1 root root 448651153 Feb 2 15:23 openpitrix-images.tar.gz
推送镜像到私有仓库,待脚本完成即可
- ./offline-installation-tool.sh -l images-list.txt -d ./kubesphere-images -r hub.evbj.easou.com
创建多节点集群
您可用使用 KubeKey 同时安装 Kubernetes 和 KubeSphere,通过自定义配置文件中的参数创建多节点集群。
创建安装有 KubeSphere 的 Kubernetes 集群(例如 --with-kubesphere v3.0.0)
- ./kk create config --with-kubernetes v1.17.9 --with-kubesphere v3.0.0
系统将创建默认的 config-sample.yaml 文件。您可以根据您的环境修改此文件。
- apiVersion: kubekey.kubesphere.io/v1alpha1
- kind: Cluster
- metadata:
- name: ESCloud
- spec:
- hosts:
- - {name: kubesphere001, address: 10.26.31.34, internalAddress: 10.26.31.34, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- - {name: kubesphere002, address: 10.26.31.36, internalAddress: 10.26.31.36, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- - {name: kubesphere003, address: 10.26.31.42, internalAddress: 10.26.31.42, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- - {name: kubesphere004, address: 10.26.31.46, internalAddress: 10.26.31.46, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- - {name: kubesphere005, address: 10.26.31.118, internalAddress: 10.26.31.118, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- - {name: kubesphere006, address: 10.26.31.119, internalAddress: 10.26.31.119, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- - {name: kubesphere007, address: 10.26.31.120, internalAddress: 10.26.31.120, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- - {name: kubesphere008, address: 10.26.31.121, internalAddress: 10.26.31.121, privateKeyPath: "~/.ssh/id_dsa", port: 20755}
- roleGroups:
- etcd:
- - kubesphere001
- - kubesphere002
- - kubesphere003
- master:
- - kubesphere001
- - kubesphere002
- - kubesphere003
- worker:
- - kubesphere004
- - kubesphere005
- - kubesphere006
- - kubesphere007
- - kubesphere008
- controlPlaneEndpoint:
- domain: lb.kubesphere.local
- address: ""
- port: "6443"
- kubernetes:
- version: v1.17.9
- imageRepo: kubesphere
- clusterName: cluster.local
- network:
- plugin: calico
- kubePodsCIDR: 10.233.64.0/18
- kubeServiceCIDR: 10.233.0.0/18
- registry:
- registryMirrors: []
- insecureRegistries: ["hub.kubeops.net"]
- privateRegistry: "hub.kubeops.net"
- addons: []
- ---
- apiVersion: installer.kubesphere.io/v1alpha1
- kind: ClusterConfiguration
- metadata:
- name: ks-installer
- namespace: kubesphere-system
- labels:
- version: v3.0.0
- spec:
- local_registry: "hub.kubeops.net"
- persistence:
- storageClass: ""
- authentication:
- jwtSecret: ""
- etcd:
- monitoring: true
- endpointIps: localhost
- port: 2379
- tlsEnable: true
- common:
- es:
- elasticsearchDataVolumeSize: 20Gi
- elasticsearchMasterVolumeSize: 4Gi
- elkPrefix: logstash
- logMaxAge: 7
- mysqlVolumeSize: 20Gi
- minioVolumeSize: 20Gi
- etcdVolumeSize: 20Gi
- openldapVolumeSize: 2Gi
- redisVolumSize: 2Gi
- console:
- enableMultiLogin: true # enable/disable multi login
- port: 30880
- alerting:
- enabled: false
- auditing:
- enabled: false
- devops:
- enabled: false
- jenkinsMemoryLim: 2Gi
- jenkinsMemoryReq: 1500Mi
- jenkinsVolumeSize: 8Gi
- jenkinsJavaOpts_Xms: 512m
- jenkinsJavaOpts_Xmx: 512m
- jenkinsJavaOpts_MaxRAM: 2g
- events:
- enabled: false
- ruler:
- enabled: true
- replicas: 2
- logging:
- enabled: false
- logsidecarReplicas: 2
- metrics_server:
- enabled: true
- monitoring:
- prometheusMemoryRequest: 400Mi
- prometheusVolumeSize: 20Gi
- multicluster:
- clusterRole: none # host | member | none
- networkpolicy:
- enabled: false
- notification:
- enabled: false
- openpitrix:
- enabled: false
- servicemesh:
- enabled: false
环境初始化
- ./kk init os -f config-sample.yaml
- INFO[14:04:19 CST] Init operating system
- INFO[14:04:20 CST] Start initializing kubesphere008 [10.26.31.121] node=10.26.31.121
- INFO[14:04:20 CST] Start initializing kubesphere001 [10.26.31.34] node=10.26.31.34
- INFO[14:04:20 CST] Start initializing kubesphere003 [10.26.31.42] node=10.26.31.42
- INFO[14:04:20 CST] Start initializing kubesphere005 [10.26.31.118] node=10.26.31.118
- INFO[14:04:20 CST] Start initializing kubesphere006 [10.26.31.119] node=10.26.31.119
- INFO[14:04:20 CST] Start initializing kubesphere004 [10.26.31.46] node=10.26.31.46
- INFO[14:04:20 CST] Start initializing kubesphere007 [10.26.31.120] node=10.26.31.120
- INFO[14:04:20 CST] Start initializing kubesphere002 [10.26.31.36] node=10.26.31.36
- INFO[14:06:34 CST] Complete initialization kubesphere005 [10.26.31.118] node=10.26.31.118
- INFO[14:06:56 CST] Complete initialization kubesphere002 [10.26.31.36] node=10.26.31.36
- INFO[14:07:04 CST] Complete initialization kubesphere006 [10.26.31.119] node=10.26.31.119
- INFO[14:07:04 CST] Complete initialization kubesphere007 [10.26.31.120] node=10.26.31.120
- INFO[14:07:07 CST] Complete initialization kubesphere003 [10.26.31.42] node=10.26.31.42
- INFO[14:07:11 CST] Complete initialization kubesphere004 [10.26.31.46] node=10.26.31.46
- INFO[14:08:23 CST] Complete initialization kubesphere001 [10.26.31.34] node=10.26.31.34
- INFO[14:10:57 CST] Complete initialization kubesphere008 [10.26.31.121] node=10.26.31.121
- INFO[14:10:57 CST] Init operating system successful.
部署
以上准备工作完成且再次检查配置文件无误后,执行安装。
- ./kk create cluster -f config-sample.yaml
- +-------------------------+------+------+---------+----------+-------+-------+-----------+--------+------------+-------------+------------------+--------------+
- | name | sudo | curl | openssl | ebtables | socat | ipset | conntrack | docker | nfs client | ceph client | glusterfs client | time |
- +-------------------------+------+------+---------+----------+-------+-------+-----------+--------+------------+-------------+------------------+--------------+
- | kubesphere005 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- | kubesphere006 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- | kubesphere007 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- | kubesphere004 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- | kubesphere001 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- | kubesphere003 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- | kubesphere002 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- | kubesphere008 | y | y | y | y | y | y | y | y | y | y | y | CST 14:16:55 |
- +-------------------------+------+------+---------+----------+-------+-------+-----------+--------+------------+-------------+------------------+--------------+
- This is a simple check of your environment.
- Before installation, you should ensure that your machines meet all requirements specified at
- https://github.com/kubesphere/kubekey#requirements-and-recommendations
- Continue this installation? [yes/no]: yes
- INFO[14:17:25 CST] Downloading Installation Files
- INFO[14:17:25 CST] Downloading kubeadm ...
- **************************************************
- #####################################################
- ### Welcome to KubeSphere! ###
- #####################################################
- Console: http://10.26.31.34:30880
- Account: admin
- Password: P@88w0rd
- NOTES:
- 1. After logging 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 ready.
- 2. Please modify the default password after login.
- #####################################################
- https://kubesphere.io 2021-02-05 15:47:21
- #####################################################
至此kubesphere安装成功,可以通过浏览器访问http://10.26.31.34:30880 验证
验证
您可以使用默认的帐户和密码 admin/P@88w0rd 登录 KubeSphere 控制台并开始使用 KubeSphere。请在登录后修改默认密码。
登录后如下图
现在就可以开始您的kubesphere之旅了,更多详情请参见官网。