开发云原生应用必须要有 Kubernetes 环境,但是又不需要一个很复杂的 Kubernetes 环境。
毕竟,开发环境只要能保证日常开发工作即可,并非生产环境需要那么严谨。
只需要有一个虚拟机,使用开源的 KubeSphere 就可以快速部署出一个 Kubernetes 并有较好体验的管理它。
需要学习 Kubernetes 的话,也可以使用这种方式来部署一个把玩。
在线部署
- 升级内核
内核版本要求:4.15 及更高版本。
- 设置使用国内站点
在线部署依赖对 GitHub 的访问,没有成功日志输出就是执行失败了。
KubeSphere 提供了国内站点访问方式,直接使用国内站点即可,一定使用国内站点,以免浪费时间!
使用国内站点的方式很简单,配置一个环境变量即可。
代码语言:javascript复制export KKZONE=cn
- 下载安装⼯具 KubeKey
# 下载安装工具 KubeKey
[root@desktop-22a1 ~]# curl -sfL https://get-kk.kubesphere.io | sh -
Downloading kubekey v3.0.13 from https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v3.0.13/kubekey-v3.0.13-linux-amd64.tar.gz ...
Kubekey v3.0.13 Download Complete!
# 下载内容展示
[root@desktop-54df ~]# ls
kk kubekey-v3.1.1-linux-amd64.tar.gz
逻辑是基于一个在线的 downloadKubekey.sh 脚本来下载需要的安装包。
这个脚本应该可以识别当前环境的操作系统和 CPU 架构等,然后选择一个合适的 KubeKey 版本进行下载。
也可以把这个脚本下载下来,手动执行 sh downloadKubekey.sh
进行下载安装包。
curl 执行结束了,没有任何信息输出,查询目录下也没有任何新内容产生。
因为依赖对 GitHub 的访问,执行结束目录下没有内容,说明没有执行成功。有日志输出,才说明执行成功了。
- 安装依赖工具
yum install socat conntrack
- 创建 Kubernetes 集群
# 创建 Kubernetes 集群
./kk create cluster --skip-pull-images --with-local-storage --with-kubernetes v1.25.4 --container-manager containerd -y
# 安装 Kubernetes 成功,显示日志。
10:20:30 CST Pipeline[CreateClusterPipeline] execute successfully
Installation is complete.
Please check the result using the command:
kubectl get pod -A
# 验证 Kubernetes 创建成功
# 这些 Not Running 状态,多等一会就会变成 Running 状态了。
# 大概需要 10 分钟左右,这些 Pod 状态才会都变成 Running 状态。
[root@desktop-54df ~]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-66844f87f5-24jg7 0/1 ContainerCreating 0 12m
kube-system calico-node-2hj62 0/1 Init:2/3 0 12m
kube-system coredns-65955f794f-nzvlr 0/1 ContainerCreating 0 12m
kube-system coredns-65955f794f-sc7c7 0/1 ContainerCreating 0 12m
kube-system kube-apiserver-desktop-54df 1/1 Running 0 12m
kube-system kube-controller-manager-desktop-54df 1/1 Running 0 12m
kube-system kube-proxy-lj9lh 1/1 Running 0 12m
kube-system kube-scheduler-desktop-54df 1/1 Running 0 12m
kube-system nodelocaldns-l4fww 1/1 Running 0 12m
kube-system openebs-localpv-provisioner-5677c78f85-ltrrw 0/1 ContainerCreating 0 12m
代码语言:javascript复制[root@desktop-54df ~]# ls
kk kubekey kubekey-v3.1.1-linux-amd64.tar.gz
创建 Kubernetes 集群需要的安装程序和安装包就这 3 个,把这些文件统一放在一个 KubeSphere-v3.1.1 文件夹中,下次将这个文件夹拷贝到其它环境,就可以直接离线安装了。
- 安装 KubeSphere
# 安装部署 KubeSphere
[root@desktop-22a1 ~]# helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-0.4.0.tgz
Release "ks-core" does not exist. Installing it now.
NAME: ks-core
LAST DEPLOYED: Tue Feb 6 13:49:02 2024
NAMESPACE: kubesphere-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Please wait for several seconds for KubeSphere deployment to complete.
1. Make sure KubeSphere components are running:
kubectl get pods -n kubesphere-system
2. Then you should be able to visit the console NodePort:
Console: http://178.107.97.13:30880
3. To login to your KubeSphere console:
Account: admin
Password: "P@88w0rd"
NOTE: Please change the default password after login.
For more details, please visit https://kubesphere.io.
离线部署
部署过一次之后,将部署文件保存下来,以后就可以基于这些部署文件进行离线部署了。
部署文件集合有 500 MB ,在线部署时下载比较费时。
代码语言:javascript复制# 上传部署包
[root@desktop-c211 kubekey-v3.1.1]# pwd
/root/kubekey-v3.1.1
[root@desktop-c211 kubekey-v3.1.1]# tree -L 1
.
├── kk
├── kubekey
└── kubekey-v3.1.1-linux-amd64.tar.gz
# 安装依赖工具
yum install socat conntrack
# 调整部署文件执行权限
chmod 777 kk
# 部署 Kubernetes 集群
./kk create cluster --skip-pull-images --with-local-storage --with-kubernetes v1.25.4 --container-manager containerd -y
# 验证部署完成
kubectl get pod -A
# 部署安装 KubeSphere
helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-0.4.0.tgz