編碼的世界 / 優質文選 / 感情

Centos下安裝minikube


2022年6月25日
-   

 
https://blog.csdn.net/fishinhouse/article/details/80589683
GitHub minikube
Kubernetes目前最高支持Docker版本17.03
 
Minikube是什麼?
Minikube是一種方便在本地運行Kubernetes的工具.  Minikube 是可以在VM中運行單節點的Kubernetes集群.  Minikube是為了開發或測試在本地啟動一個節點的kubernetes集群.
特點
不能啟動生產集群,沒有高可用性的單節點機器.  可以工作在Windows,Linux,MacOS下.
先決條件
需要安裝VirtualBox和Minikube
安裝Minikube
  • 安裝minikube


 

  • $curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
  • % Total % Received % Xferd Average Speed Time Time Time Current
  • Dload Upload Total Spent Left Speed
  • 100 82.3M 100 82.3M 0 0 4295k 0 0:00:19 0:00:19 :: 4896k

    • 安裝kubectl


     

  • $curl -Lo kubectl 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
  • % Total % Received % Xferd Average Speed Time Time Time Current
  • Dload Upload Total Spent Left Speed
  • 100 68.9M 100 68.9M 0 0 4756k 0 0:00:14 0:00:14 :: 5385k
  • $ sudo mv kubectl /usr/local/bin/

    • 配置信息


     

  • $ export MINIKUBE_WANTUPDATENOTIFICATION=false
  • $ export MINIKUBE_WANTREPORTERRORPROMPT=false
  • $ export MINIKUBE_HOME=$HOME
  • $ export CHANGE_MINIKUBE_NONE_USER=true
  • $ mkdir $HOME/.kube || true
  • $ touch $HOME/.kube/config
  • $ export KUBECONFIG=$HOME/.kube/config

  • 啟動Minikube

     

  • $ minikube start vm-driver=virtualbox
  • Starting local Kubernetes v1.7.0 cluster
  • Starting VM
  • Downloading Minikube ISO
  • 97.80 MB / 97.80 MB [==============================================] 100.00% 0s
  • Getting VM IP address
  • Moving files into cluster
  • Setting up certs
  • Starting cluster components
  • Connecting to cluster
  • Setting up kubeconfig
  • Kubectl is now configured to use the cluster.

  •  
  • $ kubectl get nodes
  • NAME STATUS AGE VERSION
  • minikube Ready 5s v1.7.0

  •  
  • $ kubectl get pods all-namespaces
  • NAMESPACE NAME READY STATUS RESTARTS AGE
  • kube-system kube-addon-manager-minikube 1/1 Running 0 2h
  • kube-system kube-dns-910330662-pkvj6 3/3 Running 0 2h
  • kube-system kubernetes-dashboard-mg5jt 1/1 Running 0 2h


  •  

    如果minikube啟動提示沒有找到VboxManage,可以參考Github上的方法:T
    此參數告訴Kubernetes組件運行在主機上,而非VM虛擬機上。T
    如果運行在VM上,Docker只需要VM的驅動程序,而非管理程序。使用主機模式,請確保Docker的網絡連接模擬為橋接(bridge network)。T
    $ minikube start vm-driver=none

    卸載Docker高版本1、查看已安裝的Docker版本
    $ yum list installed | grep docker

    2、卸載已安裝的Docker版本
    yum -y remove docker-ce.x86_64

    3、查看Docker版本
     yum list docker-ce.x86_64 showduplicates |sort -r


     

  • docker-ce.x86_64 18.05.0.ce-3.el7.centos docker-ce-edge
  • docker-ce.x86_64 18.04.0.ce-3.el7.centos docker-ce-edge
  • docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 18.02.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 18.01.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.11.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.10.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.07.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.05.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.04.0.ce-1.el7.centos docker-ce-edge
  • docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
  • docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable

  • 4、安裝Docker 17.03.0.ce
    yum install -y docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch

     
    VirtualBox
    參考資料
     
    https://www.jianshu.com/p/b30cec4f257d
    k8s之minikube搭建
    本文主要介紹在mac中安裝minikube,使用minikube啟動k8s
    安裝 Minikube
  • 首先保證你的電腦BIOS開啟了VT-x或者AMD-v虛擬化支持
  • 安裝Virtual Box

  • > brew cask install virtualbox

  • 安裝kubectl

  • > brew install kubectl
    > kubectl version
    Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1", GitCommit:"3a1c9449a956b6026f075fa3134ff92f7d55f812", GitTreeState:"clean", BuildDate:"2018-01-04T19:58:48Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
    Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"0b9efaeb34a2fc51ff8e4d34ad9bc6375459c4a4", GitTreeState:"clean", BuildDate:"2017-11-29T22:43:34Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}
    #啟用autocompletion,對於zsh或者使用了oh-my-zsh
    > source <(kubectl completion zsh)

  • 安裝minikube 下載minikube,在這裏使用的是最新發布版本0.24.1,下載好之後,加入到path下

  • > mv minikube-darwin-amd64 /usr/local/bin/minikube
    > chmod +x /usr/local/bin/minikube
    > minikube version
    minikube version: v0.24.1

    5.啟動 5.1minikube start 如果正常的話,到這裏已經安裝成功了,可惜。。 5.2 出現的第一個錯誤,是提示minikube-v0.23.6.iso和localkube-v1.8.0這個文件無法下載,猜測是被牆的原因,這裏的解決方式是
    > wget https://storage.googleapis.com/minikube/iso/minikube-v0.23.6.iso
    > mv ~/Downloads/minikube-v0.23.6.iso ~/.minikube/cache/iso
    > wget https://storage.googleapis.com/minikube/k8sReleases/v1.8.0/localkube-linux-amd64
    > mv ~/Downloads/localkube-linux-amd64 .minikube/cache/localkube/localkube-v1.8.0

    再重新執行啟動沒有報錯了,輸出如下
    > minikube start
    Starting local Kubernetes v1.8.0 cluster
    Starting VM
    Getting VM IP address
    Moving files into cluster
    Setting up certs
    Connecting to cluster
    Setting up kubeconfig
    Starting cluster components
    Kubectl is now configured to use the cluster.
    Loading cached images from config file.

    5.3 運行hello-minikube
    > kubectl run hello-minikube image=k8s.gcr.io/echoserver:1.4 port=8080
    deployment "hello-minikube" created
    > kubectl get pod
    NAME READY STATUS RESTARTS AGE
    hello-minikube-7844bdb9c6-zwcnr 0/1 ContainerCreating 0 0s

    貌似看起來一切正常,可惜等了10幾分鐘狀態依然是ContainerCreating,看了下日志
    > minikube logs

    這裏截圖沒有了。。,大概的意思就是無法從https://gcr.io/v2/下載image,肯定也是牆的問題,我目前的mac環境使用的shadowsocks翻的但是終端沒法直接使用它,需要配置一下,另外由於ss采用的socks5協議,所以還需要轉換下,所以先安裝了privoxy,並配置了下,我本機開的代理端口在1080,ip地址不要用127.0.0.1或者localhost,否則minikube起來後還是無法使用,具體配置如下
    > brew install privoxy
    #修改的配置
    forward-socks5t / 127.0.0.1:1080 .
    listen-address 192.168.94.1:8118
    #啟動
    > privoxy /usr/local/etc/privoxy/config

    啟動好之後先校驗下,使用curl加代理訪問之前的網址測試下
    > curl -x http://192.168.94.1:8118 "https://gcr.io/v2/" -v

    好了之後,更改啟動命令,配置minikube使用代理,NO_PROXY的作用是對於192.168.99.0/24該網段的地址不要走代理,原因是minikube內部啟動的容器使用該網段,都代理就不會通了
    minikube start docker-env HTTP_PROXY=http://192.168.94.1:8118 docker-env HTTPS_PROXY=http://192.168.94.1:8118 docker-env NO_PROXY=192.168.99.0/24

    好,一切就緒之後,再來看看pod的狀態
    > kubectl get pod
    NAME READY STATUS RESTARTS AGE
    hello-minikube-7844bdb9c6-zwcnr 1/1 Running 0 1h

    狀態已經正常 5.4 暴露端口 可以發現hello-minikube服務已經暴露
    > kubectl expose deployment hello-minikube type=NodePort
    > minikube service hello-minikube url
    http://192.168.99.100:31158

    5.5 測試
    > curl "http://192.168.99.100:31158" 
    CLIENT VALUES:
    client_address=172.17.0.1
    command=GET
    real path=/
    query=nil
    request_version=1.1
    request_uri=http://192.168.99.100:8080/
    SERVER VALUES:
    server_version=nginx: 1.10.0 - lua: 10001
    HEADERS RECEIVED:
    accept=*/*
    host=192.168.99.100:31158
    user-agent=curl/7.43.0
    BODY:
    -no body in request-%

    到此ok了
     
    參考
    https://blog.csdn.net/jettery/article/details/79098759
    https://yq.aliyun.com/articles/221687

    熱門文章