首页 > 其他分享 >使用kubespray 一键部署

使用kubespray 一键部署

时间:2023-02-14 18:36:32浏览次数:68  
标签:mycluster 部署 一键 192.168 kubespray inventory && 节点

  1. 准备工作
    1. 三台节点都安装了containerd 详情见这里
    2. 节点三台
      节点数 >=3台
      CPU >=2
      Memory >=2G
      我这里本地有三台虚拟机ip分别为
      192.168.88.130
      192.168.88.131
      192.168.88.132
    3. 系统设置所有节点都使用root用户执行
      1.修改主机名
      **以下操作三个节点都需要执行**
      node-1 192.168.88.130
      node-2 192.168.88.131
      node-3 192.168.88.132
      # 查看主机名
      $ hostname
      # 修改主机名
      $ hostnamectl set-hostname <your_hostname>
      
      2.关闭防火墙
      # 关闭selinux
      $ setenforce 0
      $ sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
      # 关闭防火墙
      $ systemctl stop firewalld && systemctl disable firewalld
      
      # 设置iptables规则
      $ iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
      # 关闭swap
      $ swapoff -a && free –h
      
      # 关闭dnsmasq(否则可能导致容器无法解析域名)
      $ service dnsmasq stop && systemctl disable dnsmasq
      
      3.k8s参数设置
      # 制作配置文件
      $ cat > /etc/sysctl.d/kubernetes.conf <<EOF
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_nonlocal_bind = 1
      net.ipv4.ip_forward = 1
      vm.swappiness = 0
      vm.overcommit_memory = 1
      EOF
      # 生效文件
      $ sysctl -p /etc/sysctl.d/kubernetes.conf
      
      4.移除docker 软件包  (可选操作)
      $ yum remove -y docker*
      $ rm -f /etc/docker/daemon.json
    4. 使用kubespray部署集群
      • 首先配置密钥
        # 1. 生成keygen(执行ssh-keygen,一路回车下去)
        $ ssh-keygen
        # 2. 查看并复制生成的pubkey
        $ cat /root/.ssh/id_rsa.pub
        # 3. 分别登陆到每个节点上,将pubkey写入/root/.ssh/authorized_keys
        $ mkdir -p /root/.ssh
        $ echo "<上一步骤复制的pubkey>" >> /root/.ssh/authorized_keys
      • 依赖软件下载安装(这个操作只需要在操作节点上面执行)
        首先cd 到kubespray-2.15.0目录以下操作节点上的操作都在此目录上执行
        # 安装基础软件
        $ yum install -y epel-release python36 python36-pip git
        # 下载kubespray源码
        $ wget https://github.com/kubernetes-sigs/kubespray/archive/v2.15.0.tar.gz
        # 解压缩
        $ tar -xvf v2.15.0.tar.gz && cd kubespray-2.15.0
        # 安装requirements
        $ cat requirements.txt
        $ pip3.6 install -r requirements.txt
        
        ## 如果install遇到问题可以先尝试升级pip
        ## $ pip3.6 install --upgrade pip
      • 生成配置(此操作只需要在操作节点上执行)
        # copy一份demo配置,准备自定义
        $ cp -rpf inventory/sample inventory/mycluster
        
        # 使用真实的hostname(否则会自动把你的hostname改成node1/node2...这种哦)
        $ export USE_REAL_HOSTNAME=true
        # 指定配置文件位置
        $ export CONFIG_FILE=inventory/mycluster/hosts.yaml
        # 定义ip列表(你的服务器内网ip地址列表,3台及以上,前两台默认为master节点)
        $ declare -a IPS=(192.168.88.130 192.168.88.131 192.168.88.132)
        # 生成配置文件
        $ python3 contrib/inventory_builder/inventory.py ${IPS[@]}
      • 一些个性化配置
        # 定制化配置文件
        # 1. 节点组织配置(这里可以调整每个节点的角色)
        $ vi inventory/mycluster/hosts.yaml
        # 2. containerd配置(教程使用containerd作为容器引擎)
        $ vi inventory/mycluster/group_vars/all/containerd.yml
        # 3. 全局配置(可以在这配置http(s)代理实现外网访问)
        $ vi inventory/mycluster/group_vars/all/all.yml
           这里如果需要用到http代理的话可以通过proxy关键字来使用http代理(后面操作FQ比较方便很多资源都是在国外的)
        # 4. k8s集群配置(包括设置容器运行时、svc网段、pod网段等)
        $ vi inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml
           这里做了如下操作的修改
                  kube_service_addresses: 10.233.0.0/18  -> 10.200.0.0/16
                  kube_pods_subnet: 10.233.64.0/18  -> 100.233.0.0/16
                  container_manager: docker -> containerd
        # 5. 修改etcd部署类型为host(默认是docker)etcd_deployment_type: host
        $ vi ./inventory/mycluster/group_vars/etcd.yml
        # 6. 附加组件(ingress、dashboard等)  ingress_nginx_enabled: true
          dashboard_enabled: true
        $ vi ./inventory/mycluster/group_vars/k8s-cluster/addons.yml
  2. 开始一键部署
    1. 使用以下命令进行部署
      # -vvvv会打印最详细的日志信息,建议开启
      $ ansible-playbook -i inventory/mycluster/hosts.yaml  -b cluster.yml -vvvv
    2. 下载镜像(可选)三台都要执行

      为了减少“一键部署”的等待时间,可以在部署的同时,预先下载一些镜像。(首先要检查每个节点是否已经安装了crictl命令)

      $ curl https://gitee.com/pa/pub-doc/raw/master/kubespray-v2.15.0-images.sh|bash -x
  3. 遇到的一些问题以及解决方案
      • 最后一步一键安装过程中报如下超时

         

         解决方案

        #进入到这个目录kubespray-2.15.0
        cd kubespray-2.15.0
        vi ansible.cfg 
        在[default]节点下添加
        remote_user=root

         

标签:mycluster,部署,一键,192.168,kubespray,inventory,&&,节点
From: https://www.cnblogs.com/chongyao/p/17120526.html

相关文章

  • docker swarm 部署minio集群
    Minio本示例compose文件会拉起4个节点的minio集群,节点用swarmnode标签replica来标记。docker-compose文件准备docker-compose-minio-new.ymlversion:'3.7'#Settin......
  • maven一键构建概念与maven的安装
    我们的项目,往往都要经历编译、测试、运行、打包、安装,部署等一系列过程。什么是构建?项目从编译、测试、运行、打包、安装,部署整个过程都交给maven进行管理,这个过程称......
  • Centos7 MyCat2 安装部署
    部署MyCat2之前需要搭建好数据库的主从,详看文档:mysql主次数据库搭建官网:http://www.mycat.org.cn/官方文档:https://www.yuque.com/ccazhw/ml3nkf?源码地址:https......
  • kubeadm的部署+Dashboard+以及连接私有仓库 Harbor
    一、kubeadm部署K8S集群架构主机名IP地址安装组件master(2C/4G,cpu核心数要求大于2)192.168.10.10docker、kubeadm、kubelet、kubectl、flannenode01(2C/2G)1......
  • 【opencv c++】实现yolov5部署onnx模型完成目标检测
    总代码#include<fstream>#include<sstream>#include<iostream>#include<opencv2/dnn.hpp>#include<opencv2/imgproc.hpp>#include<opencv2/highgui.hpp>usin......
  • 使用 nginx 容器部署前端项目并实现负载
    运行nginx镜像1.拉取镜像dockerpullnginx2.运行dockerrun-it--namemynginx-p8080:80-dnginx-t:在新容器内指定一个伪终端或终端。-i:允许你对容器......
  • ELK ElasticFlow数据流分析图和部署
     一、ELKElasticFlow介绍和分析图1、ElasticFlow的目的ElasticFlow利用sFlow等技术来收集网络中有关流量的信息,集流量收集、分析、报告于一体,深入了解流量与带宽的占用情......
  • k8s集群部署(centos)
    k8s集群部署-centos一、docker配置1.安装docker略2.修改docker配置对Docker的配置做一点修改,在“/etc/docker/daemon.json”里把cgroup的驱动程序改成systemd,然......
  • 云原生时代顶流消息中间件Apache Pulsar部署实操-上
    @目录安装运行时Java版本推荐LocallyStandalone集群启动验证部署分布式集群部署说明初始化集群元数据部署BookKeeper部署BrokerAdmin客户端和验证TieredStorage(层级存储......
  • Win部署MySQL5.7
    Win部署MySQL5.7压缩包安装参考引用连接即可如果机器中部署多个MySQL,则应当合理配置系统服务和my.ini服务环境变量MYSQL57_HOMED:\ProgramFiles\mysql-5.7.39-......