通过kk部署k8sp
这里先说一下,以下都是我从 https://www.kubesphere.io/zh/ 的中文文档里抄的, 只是有些文档写法和步骤和我个人步骤不和谐,仅仅只是做了个整改. 如果想看原版,直接去KubeSphere 的中文文档即可.
环境准备
主机名 | IP | CPU | 内存 | 系统盘 | 数据盘 | 用途 |
---|---|---|---|---|---|---|
node101 | 192.168.10.101 | 4 | 8 | 40 | 40 | 离线环境 k8s-control-plane |
node102 | 192.168.10.102 | 4 | 8 | 40 | 40 | 离线环境 k8s-control-plane |
node103 | 192.168.10.103 | 4 | 8 | 40 | 40 | 离线环境 k8s-control-plane |
node104 | 192.168.10.104 | 4 | 8 | 40 | 40 | 镜像仓库节点+联网主机制作离线包 |
实战环境涉及软件版本信息
- 操作系统:CentOS7.9
- Kubernetes:v1.28.8
- KubeKey: v3.1.1
1. 制作离线部署资源
本文在node104进行离线资源部署和制作, 并再利用其制作离线仓库,在该节点下载 KubeKey 最新版(v3.1.1),用来制作离线部署资源包。
1.1 下载 KubeKey
- 下载最新版的 KubeKey
mkdir -p /data/kubekey
cd /data/kubekey
# 选择中文区下载(访问 GitHub 受限时使用)
export KKZONE=cn
# 执行下载命令,获取最新版的 kk(受限于网络,有时需要执行多次)
curl -L https://get-kk.kubesphere.io | sh -
# 也可以使用下面的命令指定具体版本
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.1.1 sh -
1.2 创建 manifests 模板文件
KubeKey v3.1.0 之前, manifests 文件需要根据模板手动编写, 现在可以通过 Kubekey 的 create manifest
命令自动生成 manifests 模板。
create manifest
支持的参数如下
$ ./kk create manifest --help
Create an offline installation package configuration file
Usage:
kk create manifest [flags]
Flags:
--arch stringArray Specify a supported arch (default [amd64])
--debug Print detailed information
-f, --filename string Specify a manifest file path
-h, --help help for manifest
--ignore-err Ignore the error message, remove the host which reported error and force to continue
--kubeconfig string Specify a kubeconfig file
--name string Specify a name of manifest object (default "sample")
--namespace string KubeKey namespace to use (default "kubekey-system")
--with-kubernetes string Specify a supported version of kubernetes
--with-registry Specify a supported registry components
-y, --yes Skip confirm check
官方示例(支持多集群、多架构)[示例]
# 示例:创建包含 kubernetes v1.24.17,v1.25.16,且 cpu 架构为 amd64、arm64 的 manifests 文件。
./kk create manifest --with-kubernetes v1.24.17,v1.25.16 --arch amd64 --arch arm64
- 创建一个 amd64 架构 kubernetes v1.28.8 的 manifests 文件 , 自动生成后自己改名为ksp-v3.4.1-v1.28.8-manifest.yaml
./kk create manifest --name opsxlab --with-kubernetes v1.28.8 --arch amd64 --with-registry "docker registry"
-
修改后的配置文件,最终的 manifest 文件 ksp-v3.4.1-v1.28.8-manifest.yaml。
apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Manifest metadata: name: sample spec: arches: - amd64 operatingSystems: - arch: amd64 type: linux id: centos version: "7" osImage: CentOS Linux 7 (Core) repository: iso: localPath: "/data/kubekey/centos7-rpms-amd64.iso" url: kubernetesDistributions: - type: kubernetes version: v1.28.8 components: helm: version: v3.14.3 cni: version: v1.2.0 etcd: version: v3.5.13 containerRuntimes: - type: docker version: 24.0.9 - type: containerd version: 1.7.13 calicoctl: version: v3.27.3 crictl: version: v1.29.0 docker-registry: version: "2" harbor: version: v2.5.3 docker-compose: version: v2.2.2 images: - registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.9 - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver:v1.28.8 - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager:v1.28.8 - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler:v1.28.8 - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy:v1.28.8 - registry.cn-beijing.aliyuncs.com/kubesphereio/coredns:1.9.3 - registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache:1.22.20 - registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers:v3.27.3 - registry.cn-beijing.aliyuncs.com/kubesphereio/cni:v3.27.3 - registry.cn-beijing.aliyuncs.com/kubesphereio/node:v3.27.3 - registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol:v3.27.3 - registry.cn-beijing.aliyuncs.com/kubesphereio/typha:v3.27.3 - registry.cn-beijing.aliyuncs.com/kubesphereio/flannel:v0.21.3 - registry.cn-beijing.aliyuncs.com/kubesphereio/flannel-cni-plugin:v1.1.2 - registry.cn-beijing.aliyuncs.com/kubesphereio/hybridnet:v0.8.6 - registry.cn-beijing.aliyuncs.com/kubesphereio/multus-cni:v3.8 - registry.cn-beijing.aliyuncs.com/kubesphereio/provisioner-localpv:3.3.0 - registry.cn-beijing.aliyuncs.com/kubesphereio/linux-utils:3.3.0 - registry.cn-beijing.aliyuncs.com/kubesphereio/haproxy:2.9.6-alpine - registry.cn-beijing.aliyuncs.com/kubesphereio/node-feature-discovery:v0.10.0 - registry.cn-beijing.aliyuncs.com/kubesphereio/ks-installer:v3.4.1 - registry.cn-beijing.aliyuncs.com/kubesphereio/ks-apiserver:v3.4.1 - registry.cn-beijing.aliyuncs.com/kubesphereio/ks-console:v3.4.1 - registry.cn-beijing.aliyuncs.com/kubesphereio/ks-controller-manager:v3.4.1 - registry.cn-beijing.aliyuncs.com/kubesphereio/kubectl:v1.20.0 - registry.cn-beijing.aliyuncs.com/kubesphereio/kubectl:v1.22.0 - registry.cn-beijing.aliyuncs.com/kubesphereio/kubefed:v0.8.1 - registry.cn-beijing.aliyuncs.com/kubesphereio/tower:v0.2.1 - registry.cn-beijing.aliyuncs.com/kubesphereio/minio:RELEASE.2019-08-07T01-59-21Z - registry.cn-beijing.aliyuncs.com/kubesphereio/mc:RELEASE.2019-08-07T23-14-43Z - registry.cn-beijing.aliyuncs.com/kubesphereio/snapshot-controller:v4.0.0 - registry.cn-beijing.aliyuncs.com/kubesphereio/nginx-ingress-controller:v1.3.1 - registry.cn-beijing.aliyuncs.com/kubesphereio/defaultbackend-amd64:1.4 - registry.cn-beijing.aliyuncs.com/kubesphereio/metrics-server:v0.4.2 - registry.cn-beijing.aliyuncs.com/kubesphereio/redis:5.0.14