当前位置: 首页 > news >正文

使用kubekey快速搭建k8s集群

项目仓库地址

  • https://github.com/kubesphere/kubekey/

支持的Kubernetes Versions

  • https://github.com/kubesphere/kubekey/blob/master/docs/kubernetes-versions.md

安装

  • 选择自己想要下载的版本
    • https://github.com/kubesphere/kubekey/releases
  • 复制下载链接并下载
    示例:
    wget https://github.com/kubesphere/kubekey/releases/download/v3.1.5/kubekey-v3.1.5-linux-amd64.tar.gz
    
  • 解压到需要安装的位置
    示例:
    tar -xf kubekey-v*-linux-amd64.tar.gz -C /usr/local/bin
    echo "export PATH=$PATH:/usr/local/bin/kk" >> ~/.bashrc
    source ~/.bashrc
    
  • 命令自动补全
    (存疑:执行后没有效果)
    echo "source <(kk completion -t bash)" >> ~/.bashrc
    source ~/.bashrc
    

搭建k8s集群

示例:

  • 生成一个配置文件
    kk create config --name config-cluster-example
    # 会生成一个config-cluster-example.yaml的配置文件
    
  • 编辑配置文件
    vim config-cluster-example.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:- node1control-plane: - node1worker:- node1- node2controlPlaneEndpoint:## Internal loadbalancer for apiservers # internalLoadbalancer: haproxydomain: lb.kubesphere.local # apiServer监听的域名,默认即可address: "172.16.0.2" # apiServer监听的ip,需要自己指定port: 6443 # apiServer监听的端口号,默认即可kubernetes:version: v1.23.15 # 需要安装的集群版本,没有需求默认即可clusterName: cluster.localautoRenewCerts: truecontainerManager: dockeretcd:type: kubekeynetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18## multus support. https://github.com/k8snetworkplumbingwg/multus-cnimultusCNI:enabled: falseregistry:privateRegistry: ""namespaceOverride: ""registryMirrors: []insecureRegistries: []addons: []
    
  • 安装必要组件
    # 所有node都需要执行
    apt install -y socat ipset conntrack chrony ipvsadm ebtables
    
  • 创建集群
    kk create cluster -yf config-cluster-example.yaml
    
  • 安装kubectl(已安装则不用再进行安装)
    # 命令自动补全
    echo "source <(kubectl completion bash)" >> ~/.bashrc
    source ~/.bashrc
    

扩展操作

  • 删除集群
    kk delete cluster <clusterName>
    
  • 查看kubekey版本
    kk version
    
  • 更新集群版本
    kk upgrade -y --with-kubernetes <version> <clusterName> 或
    kk upgrade -y -f <config>.yaml # 推荐
    
  • 删除node
    kk delete node <nodeName>
    
  • 添加node
    kk add -y nodes <nodeName>或
    kk add -y nodes -f <config>.yaml # 推荐
    
  • 在worker上可以管理集群
    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

    kk create config --with-kubesphere --name <clusterName>
    
  • 创建一个部署了 KubeSphere 的 Kubernetes 集群

    例如 --with-kubesphere v3.1.0

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

    可选:docker, crio, containerd and isula

    kk create cluster --container-manager <container_runtime> -f <config>.yaml
    
  • 查看kubekey支持的kubernetes的版本
    kk version --show-supported-k8s
    
  • 查看kubesphere安装
    kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yamlkubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
    
  • 查看kubesphere删除
    kubectl delete --force -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yamlkubectl delete --force -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml
    

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • fastadmin 安装
  • 信息学奥赛一本通编程启蒙题解(3031~3035)
  • Python正则表达式提取车牌号
  • C#:从HttpResponseMessage获取想要的内容(字符串或类型)
  • 深入浅出:你需要了解的用户数据报协议(UDP)
  • java设计模式--结构型模式
  • STM32——PWM波形输出
  • C#实现数据采集系统-数据反写(1)MQTT订阅接收消息
  • 【回文数判断】输入一个5位数,判断它是不是回文数
  • springboot后端开发-自定义参数校验器
  • Win 10高效录屏指南:四大神器助力屏幕录制!
  • python学习之redis
  • openpyxl库详细介绍十分全面
  • QT-五子棋游戏
  • JavaScript 中的深拷贝新宠:structuredClone() 函数详解
  • 【comparator, comparable】小总结
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Laravel Mix运行时关于es2015报错解决方案
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue.js框架原理浅析
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 分享几个不错的工具
  • 浮现式设计
  • 和 || 运算
  • 《码出高效》学习笔记与书中错误记录
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 通过调用文摘列表API获取文摘
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #职场发展#其他
  • (03)光刻——半导体电路的绘制
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)关于多人操作数据的处理策略
  • ... 是什么 ?... 有什么用处?
  • .ai域名是什么后缀?
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET WPF 抖动动画
  • .NET 快速重构概要1
  • .NET 使用配置文件
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @JSONField或@JsonProperty注解使用
  • [14]内置对象
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——