1.前置要求
1.2.离线安装kubernetes
安装kube1.18.6版本
参考:https://www.sealyun.com/
1.2.修改Kubernetes集群中所有节点中docker
的daemon.json
文件
vi /etc/docker/daemon.json
1.3.添加Harbor
私有仓库地址
如果不配置后续在安装KubeSphere组件时候回发送htts请求,这里我们是使用的http,因为在内网离线环境中不需要使用https
{
"insecure-registries":
["192.168.28.150:8001"]
}
1.4.重启docker服务,让配置生效
systemctl daemon-reload
systemctl restart docker
1.5.登录Harbor
docker login 192.168.28.150:8001 -u 用户名 -p 密码
1.6.离线安装存储服务
2.准安装镜像
当您在离线环境中安装 KubeSphere 时,需要事先准备一个包含所有必需镜像的镜像包。
使用以下命令从能够访问互联网的机器上下载镜像清单文件
images-list.txt
:curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/images-list.txt
该文件根据不同的模块列出了
##+modulename
下的镜像。您可以按照相同的规则把自己的镜像添加到这个文件中。要查看完整文件,请参见附录。下载
offline-installation-tool.sh
。curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/offline-installation-tool.sh
使
.sh
文件可执行。chmod +x offline-installation-tool.sh
您可以执行命令
./offline-installation-tool.sh -h
来查看如何使用脚本: ```shell root@master:/home/ubuntu# ./offline-installation-tool.sh -h Usage:./offline-installation-tool.sh [-l IMAGES-LIST] [-d IMAGES-DIR] [-r PRIVATE-REGISTRY] [-v KUBERNETES-VERSION ]
Description:
-b : save kubernetes’ binaries.
-d IMAGES-DIR : the dir of files (tar.gz) which generated by docker save
. default: ./kubesphere-images
-l IMAGES-LIST : text file with list of images.
-r PRIVATE-REGISTRY : target private registry:port.
-s : save model will be applied. Pull the images in the IMAGES-LIST and save images as a tar.gz file.
-v KUBERNETES-VERSION : download kubernetes’ binaries. default: v1.17.9
-h : usage message
- 在 `offline-installation-tool.sh` 中拉取镜像。
```shell
./offline-installation-tool.sh -s -l images-list.txt -d ./kubesphere-images
3.推送镜像至私有仓库
将打包的镜像文件传输至您的本地机器,并运行以下命令把它推送至仓库。
./offline-installation-tool.sh -l images-list.txt -d ./kubesphere-images -r 192.168.28.150:8001/kubesphere-install
命令中的域名是 192.168.28.150:8001/kubesphere-install
。请确保使用您自己仓库的地址。
4.下载部署文件
与在现有 Kubernetes 集群上在线安装 KubeSphere 相似,您也需要事先下载 cluster-configuration.yaml
和 kubesphere-installer.yaml
。
执行以下命令下载这两个文件,并将它们传输至您充当任务机的机器,用于安装。
curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml
编辑
cluster-configuration.yaml
添加您的私有镜像仓库。例如,本教程中的仓库地址是192.168.28.150:8001/kubesphere-install
,将它用作.spec.local_registry
的值,如下所示:spec: persistence: storageClass: "" # 上面步骤已经安装了nfs作为默认存储,这里就不需要指定了 authentication: jwtSecret: "" local_registry: 192.168.28.150:8001/kubesphere-install # Add this line manually; make sure you use your own registry address.
您可以在该 YAML 文件中启用可插拔组件,体验 KubeSphere 的更多功能。有关详情,请参考启用可插拔组件。
编辑完成后保存
cluster-configuration.yaml
。使用以下命令将ks-installer
替换为您自己仓库的地址。sed -i "s#^\s*image: kubesphere.*/ks-installer:.*# image: 192.168.28.150:8001/kubesphere-install/kubesphere/ks-installer:v3.0.0#" kubesphere-installer.yaml
命令中的仓库地址是
192.168.28.150:8001/kubesphere-install
。请确保使用您自己仓库的地址。5.开始安装
确定完成上面所有步骤后,您可以执行以下命令。
kubectl apply -f kubesphere-installer.yaml kubectl apply -f cluster-configuration.yaml
查看安装日志:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
验证安装
安装完成后,您会看到以下内容: ```#
Welcome to KubeSphere!
#
Console: http://192.168.28.140:30880 Account: admin Password: P@88w0rd
NOTES:
- 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.
- Please modify the default password after login.
#
https://kubesphere.io 2021-02-09 13:50:43
#
现在,您可以通过 `http://{IP}:30880` 使用默认帐户和密码 `admin/P@88w0rd` 访问 KubeSphere 的 Web 控制台。<br />要访问控制台,请确保在您的安全组中打开端口 30880。

<a name="gLTGx"></a>
# 6.安装PorterLB(负载均衡器)
用于Kubernetes 在裸机、边缘和虚拟化中的负载均衡器实现<br />官网:[https://porterlb.io/](https://porterlb.io/)<br />参考:[离线在Kubernetes上安装 PorterLB负载均衡器](https://www.yuque.com/u167769/vdiros/uczciz)
<a name="hafEv"></a>
# 附录
<a name="khtoE"></a>
## KubeSphere v3.0.0 镜像清单
k8s-images
kubesphere/kube-apiserver:v1.17.9
kubesphere/kube-scheduler:v1.17.9
kubesphere/kube-proxy:v1.17.9
kubesphere/kube-controller-manager:v1.17.9
kubesphere/kube-apiserver:v1.18.6
kubesphere/kube-scheduler:v1.18.6
kubesphere/kube-proxy:v1.18.6
kubesphere/kube-controller-manager:v1.18.6
kubesphere/kube-apiserver:v1.16.13
kubesphere/kube-scheduler:v1.16.13
kubesphere/kube-proxy:v1.16.13
kubesphere/kube-controller-manager:v1.16.13
kubesphere/kube-apiserver:v1.15.12
kubesphere/kube-scheduler:v1.15.12
kubesphere/kube-proxy:v1.15.12
kubesphere/kube-controller-manager:v1.15.12
kubesphere/pause:3.1
kubesphere/pause:3.2
kubesphere/etcd:v3.3.12
calico/kube-controllers:v3.15.1
calico/node:v3.15.1
calico/cni:v3.15.1
calico/pod2daemon-flexvol:v3.15.1
coredns/coredns:1.6.9
kubesphere/k8s-dns-node-cache:1.15.12
kubesphere/node-disk-manager:0.5.0
kubesphere/node-disk-operator:0.5.0
kubesphere/provisioner-localpv:1.10.0
kubesphere/linux-utils:1.10.0
kubesphere/nfs-client-provisioner:v3.1.0-k8s1.11
ks-core-images
kubesphere/ks-apiserver:v3.0.0
kubesphere/ks-console:v3.0.0
kubesphere/ks-controller-manager:v3.0.0
kubesphere/ks-installer:v3.0.0
kubesphere/etcd:v3.2.18
kubesphere/kubectl:v1.0.0
kubesphere/ks-upgrade:v3.0.0
kubesphere/ks-devops:flyway-v3.0.0
redis:5.0.5-alpine
alpine:3.10.4
haproxy:2.0.4
mysql:8.0.11
nginx:1.14-alpine
minio/minio:RELEASE.2019-08-07T01-59-21Z
minio/mc:RELEASE.2019-08-07T23-14-43Z
mirrorgooglecontainers/defaultbackend-amd64:1.4
kubesphere/nginx-ingress-controller:0.24.1
osixia/openldap:1.3.0
csiplugin/snapshot-controller:v2.0.1
kubesphere/kubefed:v0.3.0
kubesphere/tower:v0.1.0
kubesphere/prometheus-config-reloader:v0.38.3
kubesphere/prometheus-operator:v0.38.3
prom/alertmanager:v0.21.0
prom/prometheus:v2.20.1
kubesphere/node-exporter:ks-v0.18.1
jimmidyson/configmap-reload:v0.3.0
kubesphere/notification-manager-operator:v0.1.0
kubesphere/notification-manager:v0.1.0
kubesphere/metrics-server:v0.3.7
kubesphere/kube-rbac-proxy:v0.4.1
kubesphere/kube-state-metrics:v1.9.6
ks-logging-images
kubesphere/elasticsearch-oss:6.7.0-1
kubesphere/elasticsearch-curator:v5.7.6
kubesphere/fluentbit-operator:v0.2.0
kubesphere/fluentbit-operator:migrator
kubesphere/fluent-bit:v1.4.6
elastic/filebeat:6.7.0
kubesphere/kube-auditing-operator:v0.1.0
kubesphere/kube-auditing-webhook:v0.1.0
kubesphere/kube-events-exporter:v0.1.0
kubesphere/kube-events-operator:v0.1.0
kubesphere/kube-events-ruler:v0.1.0
kubesphere/log-sidecar-injector:1.1
docker:19.03
istio-images
istio/citadel:1.4.8
istio/galley:1.4.8
istio/kubectl:1.4.8
istio/mixer:1.4.8
istio/pilot:1.4.8
istio/proxyv2:1.4.8
istio/sidecar_injector:1.4.8
jaegertracing/jaeger-agent:1.17
jaegertracing/jaeger-collector:1.17
jaegertracing/jaeger-operator:1.17.1
jaegertracing/jaeger-query:1.17
jaegertracing/jaeger-es-index-cleaner:1.17.1
ks-devops-images
jenkins/jenkins:2.176.2
jenkins/jnlp-slave:3.27-1
kubesphere/jenkins-uc:v3.0.0
kubesphere/s2ioperator:v2.1.1
kubesphere/s2irun:v2.1.1
kubesphere/builder-base:v2.1.0
kubesphere/builder-nodejs:v2.1.0
kubesphere/builder-maven:v2.1.0
kubesphere/builder-go:v2.1.0
kubesphere/s2i-binary:v2.1.0
kubesphere/tomcat85-java11-centos7:v2.1.0
kubesphere/tomcat85-java11-runtime:v2.1.0
kubesphere/tomcat85-java8-centos7:v2.1.0
kubesphere/tomcat85-java8-runtime:v2.1.0
kubesphere/java-11-centos7:v2.1.0
kubesphere/java-8-centos7:v2.1.0
kubesphere/java-8-runtime:v2.1.0
kubesphere/java-11-runtime:v2.1.0
kubesphere/nodejs-8-centos7:v2.1.0
kubesphere/nodejs-6-centos7:v2.1.0
kubesphere/nodejs-4-centos7:v2.1.0
kubesphere/python-36-centos7:v2.1.0
kubesphere/python-35-centos7:v2.1.0
kubesphere/python-34-centos7:v2.1.0
kubesphere/python-27-centos7:v2.1.0
kubesphere/notification:flyway_v2.1.2
kubesphere/notification:v2.1.2
kubesphere/alert-adapter:v3.0.0
kubesphere/alerting-dbinit:v3.0.0
kubesphere/alerting:v2.1.2
openpitrix-images
openpitrix/generate-kubeconfig:v0.5.0
openpitrix/openpitrix:flyway-v0.5.0
openpitrix/openpitrix:v0.5.0
openpitrix/release-app:v0.5.0
example-images
kubesphere/examples-bookinfo-productpage-v1:1.13.0 kubesphere/examples-bookinfo-reviews-v1:1.13.0 kubesphere/examples-bookinfo-reviews-v2:1.13.0 kubesphere/examples-bookinfo-reviews-v3:1.13.0 kubesphere/examples-bookinfo-details-v1:1.13.0 kubesphere/examples-bookinfo-ratings-v1:1.13.0 busybox:1.31.1 joosthofman/wget:1.0 kubesphere/netshoot:v1.0 nginxdemos/hello:plain-text wordpress:4.8-apache mirrorgooglecontainers/hpa-example:latest java:openjdk-8-jre-alpine fluent/fluentd:v1.4.2-2.0 perl:latest
csi-images
csiplugin/csi-neonsan:v1.2.0 csiplugin/csi-neonsan-ubuntu:v1.2.0 csiplugin/csi-neonsan-centos:v1.2.0 csiplugin/csi-provisioner:v1.5.0 csiplugin/csi-attacher:v2.1.1 csiplugin/csi-resizer:v0.4.0 csiplugin/csi-snapshotter:v2.0.1 csiplugin/csi-node-driver-registrar:v1.2.0 csiplugin/csi-qingcloud:v1.2.0
```