文章

k8s - minikube

k8s - minikube

k8s 一个本地就可以用的环境minikube

minikube在macOS、Linux和Windows上实现了本地Kubernetes集群。

minikube的主要目标是成为本地Kubernetes应用程序开发的最佳工具,并支持所有适合的Kubernetes功能。

参考:

code: https://gitee.com/mirrors/minikube/tree/master

minikube :https://minikube.sigs.k8s.io/docs/

提前准备

  • 主机信息

    1
    
  • docker docker - 安装使用及问题

    配置国内镜像源

    1
    2
    3
    4
    5
    6
    7
    8
    
    wangfuyu]# vim /etc/docker/daemon.json
      
    {   
        "data-root":"/data/docker",
        "registry-mirrors": [
                    "https://71t1c6hh.mirror.aliyuncs.com"
                            ] 
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    # 启动项重新加载
    systemctl daemon-reload
      
    # 重启服务,配置生效
    service docker restart
    # Redirecting to /bin/systemctl restart docker.service
      
    # 查看状态
    systemctl status docker
      
    # 开机启动
    systemctl start docker
      
    # 查看跟进问题
    journalctl -xe
      
    
  • kicbase

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    #建议直接:
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44
      
    #因为直接默认Using default tag: lates时,是下载不下来的。到目前为止是这样的。
    # [root@wfy wangfuyu]# docker pull anjone/kicbase
    # ...
    # error pulling image configuration: download failed after attempts=6: dial tcp 31.13.84.34:443: i/o timeout
      
    #本地镜像名太长,重命名一下: kicbase:v0.0.44
    docker tag   registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44 kicbase:v0.0.44
      
    

工具下载安装

1
2
3
4
5
6
7
# linux 
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

# 当前命令简写,这样本地就不用下载kubectl和minikube关联了
alias kubectl="minikube kubectl --"

使用

常用命令

Pause Kubernetes without impacting deployed applications:

1
minikube pause

Unpause a paused instance:

1
minikube unpause

Halt the cluster:

1
minikube stop

Change the default memory limit (requires a restart):

1
minikube config set memory 9001

Browse the catalog of easily installed Kubernetes services:

1
minikube addons list

Create a second cluster running an older Kubernetes release:

1
minikube start -p aged --kubernetes-version=v1.16.1

Delete all of the minikube clusters:

1
minikube delete --all

确认kubectl配置正确,查看集群信息:

创建例子

参考网络案例:https://blog.51cto.com/wangguishe/9095298

若对方博文地址不更换仍可以继续参考。

1
2
3
4
5
# 启动一个
minikube start -p c1 --kubernetes-version=1.22.1 --listen-address="0.0.0.0"  apiserver-ips=127.0.0.1 --image-mirror-country='cn'  --registry-mirror=https://71t1c6hh.mirror.aliyuncs.com --base-image=kicbase:v0.0.44 --driver=docker --container-runtime=docker --cpus=2 --memory=2200m --disk-size=20000mb  --force



无法访问dashboard问题

[root@wfy wangfuyu]# minikube dashboard -p c1

  • Verifying dashboard health …
  • Launching proxy …
  • Verifying proxy health …

X Exiting due to SVC_URL_TIMEOUT: http://127.0.0.1:44448/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ is not accessible: Temporary Error: unexpected response code: 503

跟踪:

执行命令 : kubectl get pod -A 见到 dashboard相关时ImagePullBackOff 状态。

用 查看某个资源的详细信息:kubectl describe pod pod_name -n nameapace 看下该pod用的image,然后单独去下载下来。

解决方法1:

[root@wfy minikube]# minikube -p c1 ssh //进入k8s进行docker 拉取国内镜像,并进行tag修改为需要的。

解决方法2:让k8s使用宿主机的容器镜像

[root@wfy minikube]# eval $(minikube -p c1 docker-env) [root@wfy minikube]# docker image ls [root@wfy minikube]# docker pull 对应的镜像 [root@wfy minikube]# docker tag 镜像名:标签 新镜像名:标签

尝试:

启动面板服务

1
2
3
4
5
6
7
[root@wfy wangfuyu]# minikube  dashboard -p c1 --url
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:40140/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
^C
[root@wfy wangfuyu]# 

用代理允许局域网其他机器进行访问,例如把上面的连接host改为当前机器的IP,暴露端口8888:

1
2
3
4
[root@wfy wangfuyu]# kubectl proxy --port=8888 --address=0.0.0.0 --accept-hosts=^.*
Starting to serve on [::]:8888
^C
[root@wfy wangfuyu]# 

其他机器浏览器访问:

1
http://192.168.10.10:8888/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
本文由作者按照 CC BY 4.0 进行授权