IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> K8S学习之CentOS7环境安装minikube -> 正文阅读

[系统运维]K8S学习之CentOS7环境安装minikube

K8S学习之CentOS7环境安装minikube

前言

  • 安装介绍

    在 windows 上,建议的安装方式是:在虚拟机上跑一个 Linux(如 CentOS),然后在 Linux 上安装 minikube。

  • 安装步骤

    安装minikube的过程中,主要步骤包括3个,分别是:安装docker、安装kubectl、安装minikube

    docker是容器引擎

    kubernetes是容器管理工具,为了安装minikube学习kubernetes,安装docker是理所应当的。

    kubectl是一个kubernetes的命令管理工具

    也可以称之为一个kubernetes的一个命令行客户端。它和kubernetes的关系,类似于mysql命令和mysqld数据库服务器的管理,mysql是mysqld的一个命令管理工具,mysqld是数据库引擎。

    minikube是缩小版的kubernetes

  • 注意事项

    在vmware虚拟机的Centos7 下安装minikube的时候,会使用–vm-driver=none,添加这个参数之后,minikube就不会创建minikubevm了,而会直接在当前系统里安装单节点的k8s集群,因为minikube会将当前的虚拟机当成minikube vm

    直接在主机(这里指 CentOS)而非虚拟机上运行 k8s 组件的形式(即 --vm-driver=none 的参数启动 minikube),所以需要安装 Docker,并且CentOS

  • 关系图示

    kubectl、minikube和docker关系

安装kubectl

  • 常用命令

    
    
        # 使用谷歌镜像安装
        ## 下载最新版本
        curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
    
        ## 赋予权限
        chmod +x ./kubectl
    
        ## 重命名
        mv ./kubectl /usr/local/bin/kubectl
    
    
        # 使用国内阿里云源安装
        curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl
    
    
        # 验证安装结果
        kubectl version --client
    
    

安装minikube

  • 下载minikube

    首先记住阿里云发布的minikube地址:https://github.com/AliyunContainerService/minikube

    
        wget https://github.com/kubernetes/minikube/releases/download/v1.7.3/minikube-linux-amd64
        mv minikube-linux-amd64 minikube
        chmod +x minikube
        mv minikube /usr/bin/
    
    
        # 安装最新版minikube
        curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
        chmod +x minikube
        mkdir -p /usr/local/bin/
        install minikube /usr/local/bin/
    
        # 验证安装结果
        minikube version
    
    
  • 启动minikube

    minikube安装成功验证截图

    
      # 使用国内代理镜像
      minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
    
      # 验证启动效果
      minikube status
      host: Running
      kubelet: Running
      apiserver: Running
      kubeconfig: Configured
    
    
    

报错信息

  • 启动失败:Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.22.3 requires conntrack to be installed in root’s path

    
    
      # 解决方案
      yum install -y conntrack
    
      ## 或者
      sudo apt-get install -y conntrack
    
    
    
    
    
  • minikube启动报错

    报错信息

    
      stderr:
        [WARNING Service-Docker]: docker service is not enabled, please run 'systemctl enable docker.service'
        [WARNING Swap]: running with swap on is not supported. Please disable swap
        [WARNING FileExisting-socat]: socat not found in system path
        [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
      error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
        [ERROR SystemVerification]: unexpected kernel config: CONFIG_CGROUP_PIDS
        [ERROR SystemVerification]: missing required cgroups: pids
      [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
      To see the stack trace of this error execute with --v=5 or higher
    
    
    

    解决方案

    
      # 普遍配置
      systemctl enable docker.service
    
      systemctl enable kubelet.service
    
      echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables
    
      ## 关闭swap分区并将/etc/fstab中swap的哪一行注释掉,就是给哪一行最前面加个#
      swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
    
      ## 确认swap已经关闭
      free -m ## 若都显示 0 则表示关闭成功
    
      ## socat是一个网络工具, k8s 使用它来进行 pod 的数据交互
      sudo yum -y install socat ebtables  ## yum install -y socat
    
    
      # 升级linux内核(下图验证升级成功后生成pids文件)
      ## 查看当前内核版本  
      uname -a ## Linux nbsp 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    
      cat /boot/config-`uname -r`| grep CGROUP
    
      ## 添加以下内容
      CONFIG_CGROUP_PIDS=y
    
      ## 升级命令
      rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
      rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
      yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
      yum --enablerepo=elrepo-kernel install kernel-ml
      cp /etc/default/grub  /etc/default/grub_bak
      vi /etc/default/grub ## 设置   GRUB_DEFAULT=0   # 只需要修改这里即可
      grub2-mkconfig -o /boot/grub2/grub.cfg
      systemctl enable docker.service
      reboot
    
      ## 重启完成后,查看内核版本是否正确
      uname -r
    
    
    
      ## /etc/docker vi daemon.json (没有这个文件就新建一个)添加如下内容
      {
    
        "exec-opts": ["native.cgroupdriver=systemd"]
    
      }
    
    
    

    升级linux内核验证pids * CentOS7重启后docker启动失败

    
      //关闭默认自带防火墙
      systemctl stop firewalld && systemctl disable firewalld
    
    
    
  • VM is unable to access k8s.gcr.io, you may need to configure a proxy or set --image-repository

    提示信息

    
    
      This bare metal machine is having trouble accessing https://k8s.gcr.io
      
      To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
    
    

    解决方案

    
      
      # 删除本地集群
      minikube delete
      minikube start
    
      # 使用国内代理镜像
      minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
    
      minikube start --vm-driver=none --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
    
      minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com
    
      minikube start --driver=docker  --registry-mirror=https://dockerhub.azk8s.cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
    
    

参考链接

  • 十分钟教会你通过minikube部署Kubernetes

    https://blog.csdn.net/qq_40791253/article/details/104864586

  • centos7虚拟机安装minikube和kubectl

    https://www.cnblogs.com/zhangzl419/p/15162011.html

  • 安装Minikube | Kubernetes

    https://v1-18.docs.kubernetes.io/zh/docs/tasks/tools/install-minikube/

  • windows安装minikube的正确姿势

    https://zhuanlan.zhihu.com/p/106581787

  • 一遍过,Centos7下minikube安装k8s学习环境

    https://zhuanlan.zhihu.com/p/141831571

  • Minikube不能成功启动的报错分析及解决方案

    https://blog.csdn.net/m0_37806791/article/details/104900429

  • k8s安装部署遇到的各种坑

    https://www.modb.pro/db/188559

  • CentOS-7 升级内核

    https://zhuanlan.zhihu.com/p/368879345

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:16:28  更:2021-12-13 13:18:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:34:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码