查看支持的k8s版本
./kk version --show-supported-k8s安装 KubeKey
下载完成后当前目录下将生成 KubeKey 二进制文件 kk
curl -sSL https://get-kk.kubesphere.io | sh -
# 国内
wget https://packages.emal.cc/package/KubeKey/kubekey-v3.1.10-linux-amd64.tar.gz
wget https://packages.emal.cc/package/KubeKey/kk创建 manifest 文件
| 注意 |
|---|
| 若只需要使用 kk 打包 KubeSphere 镜像至离线环境中,可直接使用邮件中收到的 manifest 文件构建离线包。无需另外创建或编辑 manifest 文件。 |
若需要使用 kk 部署 Kubernetes 以及镜像仓库,可参考以下步骤
- 如果您访问 DockerHub 受限,执行以下命令将 Kubernetes 镜像地址替换为阿里云仓库
export KKZONE=cn创建 manifest 文件。
# 如需使用 kk 离线部署镜像仓库,添加 --with-registry 打包镜像仓库的安装文件
./kk create manifest --with-kubernetes v1.26.12 --with-registry --filename manifest-sample-v1.26.12.yaml
# 该命令将创建一个 manifest-sample.yaml 文件编辑 manifest 文件
若需要使用 kk 部署 Kubernetes 以及镜像仓库,将从邮件获取到的 KubeSphere 镜像列表添加到新创建的 manifest 文件中即可
- 打开 manifest 文件
vi manifest-sample.yaml复制kk-manifest.yaml或kk-manifest-mirror.yaml(若访问 DockerHub 受限) 中的镜像列表,添加到新创建的manifest-sample.yaml文件中
| 注意 |
|---|
| 以下 manifest 文件中的镜像列表仅为示例,建议通过 https://get-images.kubesphere.io/ 获取最新的镜像列表。 |
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Manifest
metadata:
name: sample
spec:
arches:
- amd64
operatingSystems: []
kubernetesDistributions:
- type: kubernetes
version: v1.26.12
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.4
crictl:
version: v1.29.0
docker-registry:
version: "2"
harbor:
version: v2.10.1
docker-compose:
version: v2.26.1
images:
- registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.9
- registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver:v1.26.12
- registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager:v1.26.12
- registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler:v1.26.12
- registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy:v1.26.12
- 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.4
- registry.cn-beijing.aliyuncs.com/kubesphereio/cni:v3.27.4
- registry.cn-beijing.aliyuncs.com/kubesphereio/node:v3.27.4
- registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol:v3.27.4
- registry.cn-beijing.aliyuncs.com/kubesphereio/typha:v3.27.4
- 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/cilium:v1.15.3
- registry.cn-beijing.aliyuncs.com/kubesphereio/operator-generic:v1.15.3
- registry.cn-beijing.aliyuncs.com/kubesphereio/hybridnet:v0.8.6
- registry.cn-beijing.aliyuncs.com/kubesphereio/kube-ovn:v1.10.10
- 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/kube-vip:v0.7.2
- registry.cn-beijing.aliyuncs.com/kubesphereio/kata-deploy:stable
- registry.cn-beijing.aliyuncs.com/kubesphereio/node-feature-discovery:v0.10.0
registry:
auths: {}制作命令
执行以下命令构建包含 ks-core 及各扩展组件镜像的离线安装包
./kk artifact export -m manifest-sample.yaml -o kubesphere.tar.gz执行成功后,将显示如下信息:
Pipeline[ArtifactExportPipeline] execute successfully下载 KubeSphere Core Helm Chart
- 安装 helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash- 下载 KubeSphere Core Helm Chart
此处为示例版本,请访问 https://get-images.kubesphere.io 或 KubeSphere GitHub 仓库查看最新 chart 版本。
VERSION=1.1.3 # Chart 版本
helm fetch https://charts.kubesphere.io/main/ks-core-${VERSION}.tgz离线部署
1、准备工作
将联网主机 node1 上的三个文件同步至离线环境的 master 节点
kkkubesphere.tar.gzks-core-1.1.3.tgz
2、创建配置文件
- 创建离线集群配置文件
./kk create config --with-kubernetes v1.26.12修改配置文件
vi config-sample.yaml说明
- 按照离线环境的实际配置修改节点信息。
- 指定
registry仓库的部署节点,用于 KubeKey 部署自建 Harbor 仓库。 registry里可以指定type类型为harbor,否则默认安装 docker registry。- 对于 Kubernetes v1.24+,建议将
containerManager设置为containerd。
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: master, address: 192.168.0.3, internalAddress: 192.168.0.3, user: root, password: "<REPLACE_WITH_YOUR_ACTUAL_PASSWORD>"}
- {name: node2, address: 192.168.0.4, internalAddress: 192.168.0.4, user: root, password: "<REPLACE_WITH_YOUR_ACTUAL_PASSWORD>"}
roleGroups:
etcd:
- master
control-plane:
- master
worker:
- node2
# 如需使用 kk 自动部署镜像仓库,请设置该主机组 (建议仓库与集群分离部署,减少相互影响)
# 如果需要部署 harbor 并且 containerManager 为 containerd 时,由于部署 harbor 依赖 docker,建议单独节点部署 harbor
registry:
- node2
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
# internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes:
version: v1.26.12
containerManager: containerd
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
multusCNI:
enabled: false
registry:
# 如需使用 kk 部署 harbor, 可将该参数设置为 harbor,不设置该参数且需使用 kk 创建容器镜像仓库,将默认使用 docker registry。
# type: harbor
# 如使用 kk 部署的 harbor 或其他需要登录的仓库,需设置对应仓库的 auths,如使用 kk 创建默认的 docker registry 仓库,则无需配置 auths 参数。
auths:
"dockerhub.kubekey.local":
# 部署 harbor 时需指定 harbor 帐号密码
# username: admin
# password: Harbor12345
skipTLSVerify: true
# 设置集群部署时使用的私有仓库地址。如果您已有可用的镜像仓库,请替换为您的实际镜像仓库地址。
# 如果离线包中为原始 dockerhub 镜像(即 manifest 文件中的镜像地址为 docker.io/***),可以将该参数设置为 dockerhub.kubekey.local/kubesphereio, 表示将镜像全部推送至名为 kubesphereio 的 harbor 项目中。
privateRegistry: "dockerhub.kubekey.local"
# 如果构建离线包时 Kubernetes 镜像使用的是阿里云仓库镜像,需配置该参数。如果使用 dockerhub 镜像,则无需配置此参数。
namespaceOverride: "kubesphereio"
registryMirrors: []
insecureRegistries: []
addons: []安装harbor
./kk init registry -f config-sample.yaml -a kubesphere.tar.gz创建harbor项目
tee create_project_harbor.sh <<-'EOF'
#!/usr/bin/env bash
# Copyright 2018 The KubeSphere Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
url="http://dockerhub.kubekey.local" # 或修改为实际镜像仓库地址
user="admin"
passwd="Harbor12345"
harbor_projects=(
ks
kubesphere
kubesphereio
coredns
calico
flannel
cilium
hybridnetdev
kubeovn
openebs
library
plndr
jenkins
argoproj
dexidp
openpolicyagent
curlimages
grafana
kubeedge
nginxinc
prom
kiwigrid
minio
opensearchproject
istio
jaegertracing
timberio
prometheus-operator
jimmidyson
elastic
thanosio
brancz
prometheus
)
for project in "${harbor_projects[@]}"; do
echo "creating $project"
curl -u "${user}:${passwd}" -X POST -H "Content-Type: application/json" "${url}/api/v2.0/projects" -d "{ \"project_name\": \"${project}\", \"public\": true}" -k # 注意在 curl 命令末尾加上 -k
done
EOFchmod +x create_project_harbor.sh
./create_project_harbor.sh安装kubernetes集群
安装必要软件包
yum -y install socat ipvsadm conntrack chrony./kk create cluster -f config-sample.yaml -a kubesphere.tar.gz --with-local-storage- 指定 --with-local-storage 参数会默认部署 openebs localpv,如需对接其他存储,可在 Kubernetes 集群部署完成后自行安装。
- 如果显示如下信息,则表明 Kubernetes 集群创建成功。
Pipeline[CreateclusterPipeline] execute successfully
Installation is complete.删除集群
./kk delete cluster -f config-sample.yaml官方文档地址:kubekey
评论 (0)