Centos下安装minikube
  Tj2IEF7IlkTw 2023年11月13日 20 0


 


GitHub minikube

Kubernetes目前最高支持Docker版本17.03

 

Minikube是什么?

Minikube是一种方便在本地运行Kubernetes的工具. 
Minikube 是可以在VM中运行单节点的Kubernetes集群. 
Minikube是为了开发或测试在本地启动一个节点的kubernetes集群.

特点

不能启动生产集群,没有高可用性的单节点机器. 
可以工作在Windows,Linux,MacOS下.

先决条件

需要安装​​VirtualBox​​和​​Minikube​

安装Minikube

  • 安装minikube

 

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

 



1. ​​$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​​
2. ​​% Total % Received % Xferd Average Speed Time Time Time Current​​
3. ​​Dload Upload Total Spent Left Speed​​
4. ​​100 68.9M 100 68.9M 0 0 4756k 0 0:00:14 0:00:14 --:--:-- 5385k​​
5. ​​$ sudo mv kubectl /usr/local/bin/​​
  • 配置信息

 


1. ​​$ export MINIKUBE_WANTUPDATENOTIFICATION=false​​
2. ​​$ export MINIKUBE_WANTREPORTERRORPROMPT=false​​
3. ​​$ export MINIKUBE_HOME=$HOME​​
4. ​​$ export CHANGE_MINIKUBE_NONE_USER=true​​
5. ​​$ mkdir $HOME/.kube || true​​
6. ​​$ touch $HOME/.kube/config​​
7. ​​$ export KUBECONFIG=$HOME/.kube/config​​

启动Minikube


 


    1. ​​$ minikube start --vm-driver=virtualbox​​
    2. ​​Starting local Kubernetes v1.7.0 cluster...​​
    3. ​​Starting VM...​​
    4. ​​Downloading Minikube ISO​​
    5. ​​97.80 MB / 97.80 MB [==============================================] 100.00% 0s​​
    6. ​​Getting VM IP address...​​
    7. ​​Moving files into cluster...​​
    8. ​​Setting up certs...​​
    9. ​​Starting cluster components...​​
    10. ​​Connecting to cluster...​​
    11. ​​Setting up kubeconfig...​​
    12. ​​Kubectl is now configured to use the cluster.​​
    13.
    14. ​​$ kubectl get nodes​​
    15. ​​NAME STATUS AGE VERSION​​
    16. ​​minikube Ready 5s v1.7.0​​
    17.
    18. ​​$ kubectl get pods --all-namespaces​​
    19. ​​NAMESPACE NAME READY STATUS RESTARTS AGE​​
    20. ​​kube-system kube-addon-manager-minikube 1/1 Running 0 2h​​
    21. ​​kube-system kube-dns-910330662-pkvj6 3/3 Running 0 2h​​
    22. ​​kube-system kubernetes-dashboard-mg5jt 1/1 Running 0 2h​​


    如果minikube启动提示没有找到VboxManage,可以参考Github上的方法:

    此参数告诉Kubernetes组件运行在主机上,而非VM虚拟机上。

    如果运行在VM上,Docker只需要VM的驱动程序,而非管理程序。使用主机模式,请确保Docker的网络连接模拟为桥接(bridge network)。

    $ 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


     

    1. ​​docker-ce.x86_64 18.05.0.ce-3.el7.centos docker-ce-edge​​
    2. ​​docker-ce.x86_64 18.04.0.ce-3.el7.centos docker-ce-edge​​
    3. ​​docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable​​
    4. ​​docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-edge​​
    5. ​​docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable​​
    6. ​​docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-edge​​
    7. ​​docker-ce.x86_64 18.02.0.ce-1.el7.centos docker-ce-edge​​
    8. ​​docker-ce.x86_64 18.01.0.ce-1.el7.centos docker-ce-edge​​
    9. ​​docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable​​
    10. ​​docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-edge​​
    11. ​​docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable​​
    12. ​​docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-edge​​
    13. ​​docker-ce.x86_64 17.11.0.ce-1.el7.centos docker-ce-edge​​
    14. ​​docker-ce.x86_64 17.10.0.ce-1.el7.centos docker-ce-edge​​
    15. ​​docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable​​
    16. ​​docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-edge​​
    17. ​​docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable​​
    18. ​​docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-edge​​
    19. ​​docker-ce.x86_64 17.07.0.ce-1.el7.centos docker-ce-edge​​
    20. ​​docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable​​
    21. ​​docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-edge​​
    22. ​​docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable​​
    23. ​​docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-edge​​
    24. ​​docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable​​
    25. ​​docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-edge​​
    26. ​​docker-ce.x86_64 17.05.0.ce-1.el7.centos docker-ce-edge​​
    27. ​​docker-ce.x86_64 17.04.0.ce-1.el7.centos docker-ce-edge​​
    28. ​​docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable​​
    29. ​​docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable​​
    30. ​​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

    1. 首先保证你的电脑BIOS开启了VT-x或者AMD-v虚拟化支持
    2. 安装Virtual Box
    > brew cask install virtualbox
    1. 安装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)
    1. 安装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.1
    ​​​minikube 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了

     

    【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

    1. 分享:
    最后一次编辑于 2023年11月13日 0

    暂无评论

    推荐阅读
      4koL3J55wyKx   2023年11月13日   22   0   0 icogitCentOS
      9E2BTpjt8nym   2023年12月06日   19   0   0 WindowsgitCentOS
    Tj2IEF7IlkTw