前言

  • 安装介绍

    在 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常用命令

  • 命令汇总

    
      # 启动k8s集群
      minikube start  
    
      # 启动控制台 
      minikube dashboard 
    
      # 查看版本号
      minikube version 
    
      # 暂停集群
      minikube pause 
    
      # 停止集群
      minikube stop 
    
      # 配置集群内存
      minikube config set memory 16384 
    
      # 查看已安装的附加服务
      minikube addons list 
    
      # 在老版本k8s上运行集群
      minikube start -p aged --kubernetes-version=v1.16.1  
    
      # 删除所有的minikube搭建的k8s集群
      minikube delete --all 
    
      # 查看kubectl版本号
      minikube kubectl version 
      
      # 如果想直接用kubctl 需要把kubectl考的系统path路径下如/usr/local/bin目录下
      find / -name kubectl
      cp /var/lib/docker/volumes/minikube/_data/lib/minikube/binaries/v1.20.0/kubectl /usr/local/bin/kubectl
    
      # 更多命令查看minikube --help ,查看子选项使用方式可以对子选项使用--help,如
      minikube addons --help
    
    
    

kubectl常用命令

  • 命令汇总

    
      # 查看k8s集群信息
      kubectl cluster-info 
    
      # 查看所有namespace
      kubectl get namespaces
    
      # 查看所有节点/pod/部署/服务 (资源单复数都可以: 如 node和nodes都是合法的)
      kubectl get nodes/pods/deployments/services 
    
      # 查看节点/pod/部署/服务详细信息 (资源单复数都可以: 如 node和nodes都是合法的)
      kubectl describe nodes/deployments/services 
    
      # 创建一个部署
      kubectl create deployment k8s-nginx --image=nginx:1.10 
    
      # 创建一个服务通过节点端口的形式暴露应用
      kubectl expose deployment/k8s-nginx --type=NodePort --port=8080 
    
      # 启动一个web应用
      minikube service hello-minikube 
    
      # 通过端口映射把实例暴露到本地端口可以通过http://localhost:7080/访问
      kubectl port-forward service/hello-minikube 7080:8080 
    
      # 创建一个部署
      kubectl create deployment balanced --image=nginx:1.10 
    
      # 创建一个服务通过负责均衡的形式暴露应用
      kubectl expose deployment/balanced --type=LoadBalancer --port=8080 
    
      # 创建负载均衡协调器
      minikube tunnel 
    
      # 创建代理
      /usr/local/bin/kubectl proxy  
      
      # 更多命令查看 kubectl --help 查看子选项使用方式可以对子选项使用--help,如kubectl create --help
      kubectl create deployment --help
    
    
    

参考链接

  • 十分钟教会你通过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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐