一、系统准备
例:x86-64,8Core+ CPU,16G+ RAM,50G+ System SSD,Data Volume。
系统:Ubuntu20.04
1. 配置网络
尽可能确保系统能够顺利访问Github、docker.io、gcr.io、k8s.gcr.io、quay.io等。
推荐:Clash
clash-for-linux-master/.env文件内配置订阅链接 & 自定义UI访问密码(可选)
配置wget代理:
1 2 3 4 5
| https_proxy = http://ip:port http_proxy = http://ip:port ftp_proxy = http://ip:port use_proxy = on
|
配置代理的脚本,可以方便地一键代理当前Shell
1 2 3 4 5 6 7 8 9 10
| export proxy=http://127.0.0.1:7890 export no_proxy=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24 export http_proxy=$proxy export HTTP_PROXY=$proxy export https_proxy=$proxy export HTTPS_PROXY=$proxy export ftp_proxy=$proxy export FTP_PROXY=$proxy export NO_PROXY=$no_proxy
|
2. 更新系统
在开始安装之前,先更新系统软件包:
1 2
| sudo apt update sudo apt upgrade
|
3. 创建虚拟环境
为了避免潜在的python依赖冲突、保护系统,安装Miniconda 可灵活创建多个虚拟环境。
自定义conda安装路径
1
| mkdir -p /path/to/your/conda
|
下载conda安装脚本
1
| wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /path/to/your/conda/miniconda.sh
|
安装conda
1 2
| bash /path/to/your/conda/miniconda.sh rm -f /path/to/your/conda/miniconda.sh
|
初始化bash环境
1
| /path/to/your/conda/bin/conda init bash
|
确认环境存储目录与包存储目录都在设定的路径:
查看当前环境列表:
创建供Eclipse-Che部署的虚拟环境。
1 2
| conda create -n eclipse-che python=3.12 conda activate eclipse-che
|
4. 关闭交换分区
二、部署依赖
本文档使用Minikube本地部署Eclipse-Che。
https://eclipse.dev/che/docs/stable/administration-guide/installing-che-on-minikube/
1. 安装Minikube
Install virtualbox
1 2 3 4 5
| wget https://download.virtualbox.org/virtualbox/7.0.20/virtualbox-7.0_7.0.20-163906~Ubuntu~focal_amd64.deb sudo dpkg -i virtualbox-7.0_7.0.20-163906~Ubuntu~focal_amd64.deb
sudo apt install --fix-missing sudo apt install --fix-broken
|
Install Minikube
1 2
| curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb sudo dpkg -i minikube_latest_amd64.deb
|
启用minikube bash补全
1 2 3
| minikube completion bash | sudo tee /etc/bash_completion.d/minikube > /dev/null sudo chmod a+r /etc/bash_completion.d/minikube
|
2. 安装kubectl
本次部署使用的k8s版本为1.23.9,因此配置阿里云的软件源。
1 2 3 4 5 6 7 8 9 10 11 12 13
| curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add
echo "deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" >> /etc/apt/sources.list
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y apt-transport-https ca-certificates curl
sudo apt install kubeadm=1.23.9-00 sudo apt install kubectl=1.23.9-00 sudo apt install kubelet=1.23.9-00 sudo apt-mark hold kubelet kubeadm kubectl
|
启用kubectl bash补全
1 2
| kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null sudo chmod a+r /etc/bash_completion.d/kubectl
|
3. 安装chectl
1 2 3 4
| bash <(curl -sL https://che-incubator.github.io/chectl/install.sh)
chectl autocomplete printf "eval $(chectl autocomplete:script bash)" >> ~/.bashrc; source ~/.bashrc
|
三、部署Eclipse-Che
1. 部署Minikube集群
启动Minikube不可使用root账户。
配置Minikube的VM Proxy,只有设置到VM的网桥上,minikube集群的VM内部才可被成功代理
1 2 3 4 5 6 7 8 9 10
| export proxy=http://192.168.59.1:7890 export no_proxy=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24 export http_proxy=$proxy export HTTP_PROXY=$proxy export https_proxy=$proxy export HTTPS_PROXY=$proxy export ftp_proxy=$proxy export FTP_PROXY=$proxy export NO_PROXY=$no_proxy
|
启动Minikube,版本1.23.9,使用virtualbox作为驱动
1 2 3 4 5 6 7 8 9 10
|
minikube start --driver=virtualbox --vm=true \ --network-plugin=cni --cni=calico \ --docker-env HTTP_PROXY=http://192.168.59.1:7890 \ --docker-env HTTPS_PROXY=http://192.168.59.1:7890 \ --addons=ingress,dashboard,metrics-server \ --cache-images=true \ --memory=20480 --cpus=16 --disk-size=100GB \ --kubernetes-version=v1.23.9
|
由于部署Eclipse Che所需镜像极多,强烈建议开启镜像缓存、并在minikube集群启动后提前将镜像载入虚机。
预下载的镜像都放在/opt/packages/docker-images/下。
执行预编写的载入脚本即可。
启动minikube集群时配置的docker-env就是配置docker daemon拉取镜像的代理,否则基本无法拉取任何镜像。
进入虚拟机的终端,就可以看到minikube实际操作的就是虚拟机内自动部署的一套kubernetes。
可以看到如下代理配置就是启动集群时docker-env配置的docker daemon代理。
1 2 3 4 5
| [Service] Environment=HTTP_PROXY=http://127.0.0.1:7890 Environment=HTTPS_PROXY=http://127.0.0.1:7890 Environment=NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24
|
等待集群启动后,执行kubectl get pod -A可以检查全部pod是否正常运行。
开启k8s dashboard:
1
| nohup minikube dashboard --url &
|
可以在nohup.out中查找到本地监听地址,例:
http://127.0.0.1:42145/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
通过kubectl proxy将服务代理出去:
1 2
| nohup kubectl proxy --port=8001 --address='172.17.7.240' --accept-hosts='^.*' >/dev/null 2>&1 &
|
访问新地址即可。
http://172.17.7.240:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
2. 部署Eclipse Che
1
| chectl server:deploy --platform minikube
|
等待部署完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ✔ Retrieving Eclipse Che self-signed CA certificate...[OK: /tmp/cheCA.crt] ✔ Prepare post installation output...[OK] ✔ Show important messages ✔ Eclipse Che 7.89.0 has been successfully deployed. ✔ Documentation : https://www.eclipse.org/che/docs/ ✔ ------------------------------------------------------------------------------- ✔ Users Dashboard : https://192.168.59.101.nip.io/dashboard/ ✔ ------------------------------------------------------------------------------- ✔ Devfile Registry : https://registry.devfile.io/ ✔ ------------------------------------------------------------------------------- ✔ Dex user credentials : [email protected]:admin ✔ Dex user credentials : user1@che:password ✔ Dex user credentials : user2@che:password ✔ Dex user credentials : user3@che:password ✔ Dex user credentials : user4@che:password ✔ Dex user credentials : user5@che:password ✔ -------------------------------------------------------------------------------
|
本机浏览器首先导入/tmp/cheCA.crt自签名证书。
访问https://192.168.59.101.nip.io/dashboard/即可进入dashboard。