使用kubekey快速搭建k8s集群

项目仓库地址

支持的Kubernetes Versions

安装

选择自己想要下载的版本
复制下载链接并下载

示例:

shell 复制代码
wget https://github.com/kubesphere/kubekey/releases/download/v3.1.5/kubekey-v3.1.5-linux-amd64.tar.gz
解压到需要安装的位置

示例:

shell 复制代码
tar -xf kubekey-v*-linux-amd64.tar.gz -C /usr/local/bin
echo "export PATH=$PATH:/usr/local/bin/kk" >> ~/.bashrc
source ~/.bashrc
命令自动补全

(存疑:执行后没有效果)

shell 复制代码
echo "source <(kk completion -t bash)" >> ~/.bashrc
source ~/.bashrc

搭建k8s集群

示例:

生成一个配置文件
shell 复制代码
kk create config --name config-cluster-example
# 会生成一个config-cluster-example.yaml的配置文件
编辑配置文件
shell 复制代码
vim config-cluster-example.yaml
配置文件概述
yaml 复制代码
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: config-cluster-example
spec:
  hosts: #配置集群的所有node信息,name是node的主机名,会自动把节点主机名改为name的值,address是节点ip,internalAddress是节点内网ip,user和password是登陆节点的用户名和密码,如果配置了ssh密钥登陆,可以删除user和password字段。
  - {name: node1, address: 172.16.0.2, internalAddress: 172.16.0.2, user: ubuntu, password: "Qcloud@123"}
  - {name: node2, address: 172.16.0.3, internalAddress: 172.16.0.3}
  roleGroups: # 指定节点的身份
    etcd:
    - node1
    control-plane: 
    - node1
    worker:
    - node1
    - node2
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers 
    # internalLoadbalancer: haproxy

    domain: lb.kubesphere.local # apiServer监听的域名,默认即可
    address: "172.16.0.2" # apiServer监听的ip,需要自己指定
    port: 6443 # apiServer监听的端口号,默认即可
  kubernetes:
    version: v1.23.15 # 需要安装的集群版本,没有需求默认即可
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: docker
  etcd:
    type: kubekey
  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:
    privateRegistry: ""
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []
安装必要组件
shell 复制代码
# 所有node都需要执行
apt install -y socat ipset conntrack chrony ipvsadm ebtables
创建集群
shell 复制代码
kk create cluster -yf config-cluster-example.yaml
安装kubectl(已安装则不用再进行安装)
shell 复制代码
# 命令自动补全
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

扩展操作

删除集群
shell 复制代码
kk delete cluster <clusterName>
查看kubekey版本
shell 复制代码
kk version
更新集群版本
shell 复制代码
kk upgrade -y --with-kubernetes <version> <clusterName> 或
kk upgrade -y -f <config>.yaml # 推荐
删除node
shell 复制代码
kk delete node <nodeName>
添加node
shell 复制代码
kk add -y nodes <nodeName>或
kk add -y nodes -f <config>.yaml # 推荐
在worker上可以管理集群
shell 复制代码
mkdir -p .kube/config
scp root@<master>:/etc/kubernetes/admin.conf ~/.kube/config # 从master上拷贝 集群管理员的权限
echo "export KUBECONFIG=.kube/config/admin.conf" >> .bashrc
source .bashrc

# KubeKey 默认不会启用 kubectl 自动补全功能。
# 将 completion 脚本添加到你的 ~/.bashrc 文件
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc
# 将 completion 脚本添加到 /etc/bash_completion.d 目录
kubectl completion bash >/etc/bash_completion.d/kubect
创建一个部署了 KubeSphere 的 Kubernetes 集群 的 配置文件

例如 --with-kubesphere v3.1.0

shell 复制代码
kk create config --with-kubesphere --name <clusterName>
创建一个部署了 KubeSphere 的 Kubernetes 集群

例如 --with-kubesphere v3.1.0

shell 复制代码
kk create cluster --with-kubesphere v3.1.0
从已有的集群创建配置文件
shell 复制代码
kk create config --from-cluster cluster1 -f cluster2.yaml
创建容器是指定 container runtime

可选:docker, crio, containerd and isula

shell 复制代码
kk create cluster --container-manager <container_runtime> -f <config>.yaml
查看kubekey支持的kubernetes的版本
shell 复制代码
kk version --show-supported-k8s
查看kubesphere安装
shell 复制代码
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yaml

kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
查看kubesphere删除
shell 复制代码
kubectl delete --force -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yaml

kubectl delete --force -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
相关推荐
做个文艺程序员8 小时前
第1篇:K8s 核心概念精讲:Pod、Deployment、Service 与 Namespace——Java 开发者快速上手指南
java·云原生·容器·kubernetes·容器编排
一勺菠萝丶8 小时前
Docker Desktop 启动后容器自动启动怎么办?如何关闭容器自启动
运维·docker·容器
做个文艺程序员12 小时前
第08篇:K8s 部署 AI 大模型推理服务:GPU 调度 × vLLM × Java 客户端集成——从 0 到生产的完整方案
人工智能·kubernetes·vllm
Plastic garden12 小时前
K8s(2)安装,集群
云原生·容器·kubernetes
刘马想放假13 小时前
Docker 容器导出与镜像导出深度技术解析:docker export vs docker save
docker·容器
JP-Destiny14 小时前
docker-安装nacos
运维·docker·容器
你是个什么橙14 小时前
Docker下载安装及服务
运维·docker·容器
IT策士15 小时前
第 39 篇 k8s之Helm 入门:包管理工具与 Chart
云原生·容器·kubernetes
做个文艺程序员16 小时前
第07篇:K8s 安全加固指南:RBAC、NetworkPolicy、OPA——Java SaaS 多租户安全隔离深度实践
java·安全·kubernetes
衫水19 小时前
项目后端服务 Docker 部署SOP (2026-06-04)
运维·docker·容器