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下.

先决条件

需要安装VirtualBoxMinikube

安装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.

  1.  
  2. $ kubectl get nodes

  3. NAME STATUS AGE VERSION

  4. minikube Ready 5s v1.7.0

  1.  
  2. $ kubectl get pods --all-namespaces

  3. NAMESPACE NAME READY STATUS RESTARTS AGE

  4. kube-system kube-addon-manager-minikube 1/1 Running 0 2h

  5. kube-system kube-dns-910330662-pkvj6 3/3 Running 0 2h

  6. 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了

 

参考

https://blog.csdn.net/jettery/article/details/79098759

https://yq.aliyun.com/articles/221687

Logo

开源、云原生的融合云平台

更多推荐