暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

0183.K ubuntu22.04上安装minikube(使用containerd和docker)

rundba 2022-08-09
6385

 

minikube可以在macOS、Linux和Windows上快速搭建本地Kubernetes集群。minikube专注于帮助应用程序开发人员和新的Kubernetes用户快速构建Kubernetes环境。

 

 

0. ENV



  • Ubuntu Desktop 22.04 LTS(5.15.0-43-generic);

  • docker 20.10.17/containerd 1.6.6/runc 1.1.2;

  • minikube v1.26.1;

  • kubernetes 1.24.3/kubernetes 1.23.8/kubernetes 1.23.9

将会使用minikube安装两套不同版本集群,并将其中一套V1.23.8升级为V1.23.9。

 

1. 基础环境准备


 

1.1 环境检查-系统版本查看

当前版本为Ubuntu 22.04 LTS

    tt@ubd-2204:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 22.04 LTS
    Release: 22.04
    Codename: jammy


    1.2 环境检查-内核版本查看

    当前内核版本为5.15.0-40-generic,后续将会升级到5.15.0-43-generic。

      tt@ubd-2204:~$ uname -a
      Linux ubd-2204 5.15.0-40-generic #43-Ubuntu SMP Wed Jun 15 12:54:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux


      1.3 关闭交换分区

      临时关闭:

        tt@ubd-2204:~$ sudo swapoff -a


        编辑fstab,注释掉相关行,开机不使用swap:

          tt@ubd-2204:~$ grep swap etc/fstab 
          #/dev/mapper/vgubuntu-swap_1 none swap sw 0 0


          查看交换分区已为0,当前未挂载

            tt@ubd-2204:~$ free -h
            total used free shared buff/cache available
            内存:15Gi 1.1Gi 13Gi 34Mi 1.2Gi 14Gi
            交换:0B 0B 0B


            1.4 安装浏览器(可选)

            如果要使用minikube运行dashboard,或者通过浏览器运行验证试验,在则需要在minikube主机上安装浏览器,firefox或chrome均可。


            安装火狐浏览器(浏览器二选一)                              

              sudo apt install firefox         #在线安装
              firefox #运行firefox浏览器


              安装google浏览器稳定版(浏览器二选一)

                wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb    #下载
                sudo dpkg -i google-chrome-stable_current_amd64.deb #安装
                google-chrome-stable #运行chrome浏览器

                 

                2. 容器选择


                 

                2.1 minikube支持的容器

                当前Linux上支持的容器如下:

                •     Docker - 基于容器(首选)

                •     KVM2 - 基于虚拟机(首选)

                •     VirtualBox - 虚拟机

                •     QEMU - 虚拟机(实验性)

                •     none - 裸机

                •     Podman - 容器(实验性)

                •     SSH - 远程 ssh


                macOS、Windows支持的容器请参考:

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


                2.2 选择容器

                Linux运行minikube时,如果是裸机,可不选择使用容器。

                参考官方建议,本次使用Docker中的containerd作为minikube首选的容器。


                下面使用阿里云ubuntu镜像,作为安装docker加速:

                # step 1: 安装必要的一些系统工具

                  sudo apt update
                  sudo apt -y install apt-transport-https ca-certificates curl software-properties-common


                  # step 2: 安装GPG证书

                    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -


                    # Step 3: 写入软件源信息

                      sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"


                      # Step 4: 更新并安装Docker-CE(社区版)

                        sudo apt-get -y update
                        sudo apt-get -y install docker-ce


                        如果要安装指定版本,

                          # 查看支持版本
                          apt-cache madison docker-ce
                          # 安装指定版本
                          apt-get install docker-ce=<VERSION_STRING>


                          # Step 5: 查看docker运行状态

                          当前状态(running运)行,且开机(enabled)启动,使用containerd运行

                            tt@ubd-2204:~$ systemctl status docker
                            ● docker.service - Docker Application Container Engine
                            Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
                            Active: active (running) since Fri 2022-08-05 15:06:42 CST; 35s ago
                            TriggeredBy: ● docker.socket
                            Docs: https://docs.docker.com
                            Main PID: 6377 (dockerd)
                            Tasks: 13
                            Memory: 31.4M
                            CPU: 532ms
                            CGroup: system.slice/docker.service
                            └─6377 usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
                            8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.430899566+08:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
                            8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.430922828+08:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>}" module=grpc
                            8月 05 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.430934332+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
                            805 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.499540102+08:00" level=info msg="Loading containers: start."
                            805 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.746561175+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
                            805 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.864997587+08:00" level=info msg="Loading containers: done."
                            805 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.935777742+08:00" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=overlay2 version=20.10.17
                            805 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.935953912+08:00" level=info msg="Daemon has completed initialization"
                            805 15:06:42 ubd-2204 systemd[1]: Started Docker Application Container Engine.
                            805 15:06:42 ubd-2204 dockerd[6377]: time="2022-08-05T15:06:42.983125487+08:00" level=info msg="API listen on run/docker.sock"


                            如果需要删除docker-ce,执行remove操作

                              sudo apt remove docker-ce


                              # Step 6: 升级系统内核及软件版本[可选]

                                tt@ubd-2204:~$ sudo apt -y upgrade

                                系统软件包将会更新,时间可能较长,视机器性能、网速、资源等,可能持续数分钟至数小时。

                                重启系统:

                                  sudo reboot


                                  重启后,查看内核为5.15.0-43-generic:

                                    tt@ubd-2204:~$ uname -a
                                    Linux ubd-2204 5.15.0-43-generic #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

                                     

                                    3. 安装并启动minikube


                                     

                                    3.1 下载minikube官方软件包

                                      tt@ubd-2204:~$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
                                      % Total % Received % Xferd Average Speed Time Time Time Current
                                      Dload Upload Total Spent Left Speed
                                      100 25.5M 100 25.5M 0 0 8682k 0 0:00:03 0:00:03 --:--:-- 8684k


                                      3.2 安装minikube

                                        tt@ubd-2204:~$ sudo dpkg -i minikube_latest_amd64.deb
                                        正在选中未选择的软件包 minikube。
                                        (正在读取数据库 ... 系统当前共安装有 183494 个文件和目录。)
                                        准备解压 minikube_latest_amd64.deb ...
                                        正在解压 minikube (1.26.1-0) ...
                                        正在设置 minikube (1.26.1-0) ...


                                        3.3 设置docker为默认驱动(可选)

                                          tt@ubd-2204:~$ minikube config set driver docker
                                          ! These changes will take effect upon a minikube delete and then a minikube start


                                          3.4 第一次启动minikube--报错

                                          使用docker作为驱动时,不允许root用户启动minikube,以普通用户tt启动minikube。

                                            tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd
                                            * Ubuntu 22.04 上的 minikube v1.26.1
                                            * 根据用户配置使用 docker 驱动程序


                                            X Exiting due to PROVIDER_DOCKER_NEWGRP: "docker version --format -" exit status 1: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix var/run/docker.sock: connect: permission denied
                                            * 建议:Add your user to the 'docker' group: 'sudo usermod -aG docker $USER && newgrp docker'
                                            * 文档:https://docs.docker.com/engine/install/linux-postinstall/

                                            启动报错,提示需要将当前用户加入docker组。


                                            3.5 将当前用户加入docker组

                                            将当前用户加入docker组,不需要指定用户名,$USER变量可获取当前用户名

                                              tt@ubd-2204:~$ sudo usermod -aG docker $USER && newgrp docker


                                              查看当前用户信息,当前用户已加入id为998的docker组

                                                tt@ubd-2204:~$ id
                                                用户id=1000(tt) 组id=998(docker) 组=998(docker),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),132(lxd),133(sambashare),1000(tt)


                                                3.6 第二次启动minikube--成功

                                                1) 默认使用官方资源启动minikube,启动成功(二选一)

                                                  tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd
                                                  * Ubuntu 22.04 上的 minikube v1.26.1
                                                  * 根据用户配置使用 docker 驱动程序
                                                  * Using Docker driver with root privileges* Starting control plane node minikube in cluster minikube* Pulling base image ...* Downloading Kubernetes v1.24.3 preload ... > preloaded-images-k8s-v18-v1...: 426.91 MiB 426.91 MiB 100.00% 6.13 Mi > index.docker.io/kicbase/sta...: 386.60 MiB 386.61 MiB 100.00% 4.76 Mi > index.docker.io/kicbase/sta...: 0 B [___________________] ?% ? p/s 1m13s! minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.33, but successfully downloaded docker.io/kicbase/stable:v0.0.33 as a fallback image* Creating docker container (CPUs=2, Memory=3900MB) ...! This container 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/* 正在 containerd 1.6.6 中准备 Kubernetes v1.24.3… - Generating certificates and keys ... - Booting up control plane ... - Configuring RBAC rules ...* Configuring CNI (Container Networking Interface) ...* Verifying Kubernetes components... - Using image gcr.io/k8s-minikube/storage-provisioner:v5* Enabled addons: storage-provisioner, default-storageclass* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default


                                                  2) 以国内镜像启动(二选一,建议)

                                                    tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
                                                    * Ubuntu 22.04 上的 minikube v1.26.1
                                                    * 根据用户配置使用 docker 驱动程序
                                                    * 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers
                                                    * Using Docker driver with root privileges
                                                    * Starting control plane node minikube in cluster minikube
                                                    * Pulling base image ...
                                                    > registry.cn-hangzhou.aliyun...: 386.60 MiB 386.61 MiB 100.00% 10.90 M
                                                    > registry.cn-hangzhou.aliyun...: 0 B [_____________________] ?% ? p/s 26s
                                                    * Creating docker container (CPUs=2, Memory=3900MB) ...
                                                    * 正在 containerd 1.6.6 中准备 Kubernetes v1.24.3
                                                    - Generating certificates and keys ...
                                                    - Booting up control plane ...
                                                    - Configuring RBAC rules ...
                                                    * Configuring CNI (Container Networking Interface) ...
                                                    * Verifying Kubernetes components...
                                                    - Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
                                                    * Enabled addons: storage-provisioner, default-storageclass
                                                    * kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
                                                    * Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default


                                                    3) 查看安装状态

                                                      tt@ubd-2204:~$ minikube status
                                                      minikube
                                                      type: Control Plane
                                                      host: Running
                                                      kubelet: Running
                                                      apiserver: Running
                                                      kubeconfig: Configured


                                                      4) 查看配置信息

                                                        tt@ubd-2204:~$ minikube profile list
                                                        |----------|-----------|------------|--------------|------|---------|---------|-------|--------|
                                                        | Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active |
                                                        |----------|-----------|------------|--------------|------|---------|---------|-------|--------|
                                                        | minikube | docker | containerd | 192.168.49.2 | 8443 | v1.24.3 | Running | 1 | * |
                                                        |----------|-----------|------------|--------------|------|---------|---------|-------|--------|


                                                        5) 可能存在的问题

                                                        如果环境多次操作,可能会提示minikube不存在:

                                                          tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd
                                                          -bash: usr/local/bin/minikube: 没有那个文件或目录


                                                          解决方法:

                                                          移除已安装的minikube

                                                            tt@ubd-2204:~$ sudo apt remove minikube


                                                            重新安装minikube

                                                              tt@ubd-2204:~$ sudo dpkg -i minikube_latest_amd64.deb


                                                              再次启动,无报错:

                                                                tt@ubd-2204:~$ minikube start --driver=docker --container-runtime=containerd


                                                                 

                                                                4. 和集群交互


                                                                 

                                                                如果已单独安装了kubelet,可查看当前已有pod:

                                                                  kubectl get po -A


                                                                  如果没有单独安装kubectl,则会提示未发现kubectl:

                                                                    tt@ubd-2204:~$ kubectl get po -A
                                                                    Command 'kubectl' not found, but can be installed with:


                                                                    可以单独安装kubectl工具,也可使用minikube安装合适的kubectl(本次选用该方法):

                                                                      tt@ubd-2204:~$ minikube kubectl -- get pods -A
                                                                      > kubectl.sha256: 64 B 64 B [----------------------] 100.00% ? p/s 100ms
                                                                      > kubectl: 43.59 MiB 43.59 MiB [-------------] 100.00% 6.93 MiB p/s 6.5s
                                                                      NAMESPACE NAME READY STATUS RESTARTS AGE
                                                                      kube-system coredns-6d4b75cb6d-w728k 1/1 Running 0 6m50s
                                                                      kube-system etcd-minikube 1/1 Running 0 7m2s
                                                                      kube-system kindnet-5gvtx 1/1 Running 0 6m50s
                                                                      kube-system kube-apiserver-minikube 1/1 Running 0 7m2s
                                                                      kube-system kube-controller-manager-minikube 1/1 Running 0 7m2s
                                                                      kube-system kube-proxy-nvqzt 1/1 Running 0 6m50s
                                                                      kube-system kube-scheduler-minikube 1/1 Running 0 7m2s
                                                                      kube-system storage-provisioner 1/1 Running 0 7m


                                                                      配置minikube kubectl别名,方便操作:

                                                                      当前会话临时设置别名:

                                                                        alias kubectl="minikube kubectl --"

                                                                        当前用户永久设置别名:

                                                                        添加别名配置:

                                                                          tee -a ~/.bashrc << EOF
                                                                          alias kubectl="minikube kubectl --"
                                                                          EOF


                                                                          使配置生效:

                                                                            source .bashrc


                                                                             

                                                                            5. dashboard启用


                                                                             

                                                                            minikube捆绑了Kubernetes Dashboard,可以轻松适应新环境。


                                                                            启用dashboard(当前窗口关闭,dashboard关闭):

                                                                              tt@ubd-2204:~$ minikube dashboard
                                                                              * 正在验证 dashboard 运行情况 ...
                                                                              * Launching proxy ...
                                                                              * 正在验证 proxy 运行状况 ...
                                                                              * Opening http://127.0.0.1:45251/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser..

                                                                              此时会弹出浏览器,打开dashboard页面:


                                                                              运行dashboard前需要安装浏览器,请参考上述章节“1.4安装浏览器”,安装firefox或chrome。

                                                                              未安装浏览器报错参考:

                                                                                tt@ubd-2204:~$ minikube dashboard
                                                                                * 正在开启 dashboard ...
                                                                                - Using image kubernetesui/dashboard:v2.6.0
                                                                                - Using image kubernetesui/metrics-scraper:v1.0.8
                                                                                * 正在验证 dashboard 运行情况 ...
                                                                                * Launching proxy ...
                                                                                * 正在验证 proxy 运行状况 ...
                                                                                * Opening http://127.0.0.1:41983/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
                                                                                /usr/bin/xdg-open: 882: www-browser: not found
                                                                                /usr/bin/xdg-open: 882: links2: not found
                                                                                /usr/bin/xdg-open: 882: elinks: not found
                                                                                /usr/bin/xdg-open: 882: links: not found
                                                                                /usr/bin/xdg-open: 882: lynx: not found
                                                                                /usr/bin/xdg-open: 882: w3m: not found
                                                                                xdg-open: no method available for opening 'http://127.0.0.1:41983/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/'


                                                                                X Exiting due to HOST_BROWSER: failed to open browser: exit status 3

                                                                                 


                                                                                6. 部署应用


                                                                                 

                                                                                6.1 创建1个示例deployment并在8080端口暴露

                                                                                # 创建名为hello-minikube的示例deployment

                                                                                  tt@ubd-2204:~$ kubectl create deployment hello-minikube --image=registry.aliyuncs.com/google_containers/echoserver:1.4
                                                                                  deployment.apps/hello-minikube created


                                                                                  # 将deployment的8080端口暴露

                                                                                    tt@ubd-2204:~$ kubectl expose deployment hello-minikube --type=NodePort --port=8080
                                                                                    service/hello-minikube exposed


                                                                                    # 当前pod已经运行

                                                                                      tt@ubd-2204:~$ kubectl get pod
                                                                                      NAME READY STATUS RESTARTS AGE
                                                                                      hello-minikube-7f7685bd6-lmtlz 1/1 Running 0 2m12s


                                                                                      # 服务已经创建

                                                                                        tt@ubd-2204:~$ kubectl get services hello-minikube
                                                                                        NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
                                                                                        hello-minikube NodePort 10.104.76.124 <none> 8080:30715/TCP 64s


                                                                                        6.2 使用minikube通过浏览器可以简单访问service

                                                                                        通过浏览器访问service:

                                                                                          tt@ubd-2204:~$ minikube service hello-minikube
                                                                                          |-----------|----------------|-------------|---------------------------|
                                                                                          | NAMESPACE |      NAME      | TARGET PORT |            URL            |
                                                                                          |-----------|----------------|-------------|---------------------------|
                                                                                          | default   | hello-minikube |        8080 | http://192.168.49.2:30715 |
                                                                                          |-----------|----------------|-------------|---------------------------|


                                                                                          * 正通过默认浏览器打开服务 default/hello-minikube...


                                                                                          此时minikube会通过默认浏览器会打开应用:

                                                                                          查看服务信息:

                                                                                            tt@ubd-2204:~$ minikube service hello-minikube --url
                                                                                            http://192.168.49.2:30715


                                                                                            6.3 转发到pod的外部端口进行访问

                                                                                            将内部端口映射到7080端口(当前窗口关闭,端口映射消失):

                                                                                              tt@ubd-2204:~$ kubectl port-forward service/hello-minikube 7080:8080
                                                                                              Forwarding from 127.0.0.1:7080 -> 8080
                                                                                              Forwarding from [::1]:7080 -> 8080


                                                                                              通过浏览器使用7080端口访问应用:

                                                                                                http://localhost:7080/

                                                                                                能够在应用程序输出中看到来自 nginx 的请求元数据,例如 CLIENT VALUES、SERVER VALUES、HEADERS RECEIVED 和 BODY。尝试更改请求的路径并观察 CLIENT VALUES 的变化。同样,可以对其执行 POST 请求并观察输出的 BODY 部分中显示的正文。


                                                                                                6.4 负载均衡deployments

                                                                                                使用“minikube tunnel”命令访问负载均衡deployment,下面是一个示例。


                                                                                                使用阿里云的echoserver V1.4镜像创建一个负载均衡deployment:

                                                                                                  tt@ubd-2204:~$ kubectl create deployment balanced --image=registry.aliyuncs.com/google_containers/echoserver:1.4
                                                                                                  deployment.apps/balanced created



                                                                                                  查看balanced-xxx-xxx的pod已经创建:

                                                                                                    tt@ubd-2204:~$ kubectl get pod
                                                                                                    NAME READY STATUS RESTARTS AGE
                                                                                                    balanced-76ff8f5ffc-b29cv 1/1 Running 0 8s
                                                                                                    hello-minikube-7f7685bd6-2ghxb 1/1 Running 0 10m


                                                                                                    暴露负载均衡到8080端口:

                                                                                                      tt@ubd-2204:~$ kubectl expose deployment balanced --type=LoadBalancer --port=8080
                                                                                                      service/balanced exposed


                                                                                                      在另一个窗口中,启动tunnel为“balanced” deployment创建可路由IP(当前窗口关闭,路由消失):

                                                                                                        tt@ubd-2204:~$ minikube tunnel
                                                                                                        Status:
                                                                                                        machine: minikube
                                                                                                        pid: 29502
                                                                                                        route: 10.96.0.0/12 -> 192.168.49.2
                                                                                                        minikube: Running
                                                                                                        services: [balanced]
                                                                                                        errors:
                                                                                                        minikube: no errors
                                                                                                        router: no errors
                                                                                                        loadbalancer emulator: no errors
                                                                                                        ...


                                                                                                        要查找路由IP,运行此命令并检查EXTERNAL-IP列:

                                                                                                          tt@ubd-2204:~$ kubectl get services balanced
                                                                                                          NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
                                                                                                          balanced LoadBalancer 10.97.183.118 10.97.183.118 8080:30828/TCP 2m6s





                                                                                                          deployment通过<EXTERNAL-IP>:8080可以访问,如:

                                                                                                            http://10.97.183.118:8080


                                                                                                             

                                                                                                            7. 管理集群


                                                                                                             

                                                                                                            7.1 暂停Kubernetes而不影响已部署的应用

                                                                                                              tt@ubd-2204:~$ minikube pause
                                                                                                              * Pausing node minikube ...
                                                                                                              * Paused 10 containers in: kube-system, kubernetes-dashboard, storage-gluster, istio-operator


                                                                                                              7.2 取消实例暂停

                                                                                                                tt@ubd-2204:~$ minikube unpause
                                                                                                                * Unpausing node minikube ...
                                                                                                                * Unpaused 10 containers in: kube-system, kubernetes-dashboard, storage-gluster, istio-operator


                                                                                                                7.3 暂停集群

                                                                                                                  tt@ubd-2204:~$ minikube stop
                                                                                                                  * Stopping node "minikube" ...
                                                                                                                  * 正在通过 SSH 关闭“minikube”…
                                                                                                                  * 1 node stopped.


                                                                                                                  7.4 增加默认的内存限制到16G(需要重启)

                                                                                                                    tt@ubd-2204:~$ minikube config set memory 16384
                                                                                                                    ! These changes will take effect upon a minikube delete and then a minikube start


                                                                                                                    7.5 浏览并安装Kubernetes服务目录

                                                                                                                    1) 浏览易于安装的Kubernetes服务目录

                                                                                                                      tt@ubd-2204:~$ minikube addons list
                                                                                                                      |-----------------------------|----------|--------------|--------------------------------|
                                                                                                                      | ADDON NAME | PROFILE | STATUS | MAINTAINER |
                                                                                                                      |-----------------------------|----------|--------------|--------------------------------|
                                                                                                                      | ambassador | minikube | disabled | 3rd party (Ambassador) |
                                                                                                                      | auto-pause | minikube | disabled | Google |
                                                                                                                      | csi-hostpath-driver | minikube | disabled | Kubernetes |
                                                                                                                      | dashboard | minikube | enabled √ | Kubernetes |
                                                                                                                      | default-storageclass | minikube | enabled √ | Kubernetes |
                                                                                                                      | efk | minikube | disabled | 3rd party (Elastic) |
                                                                                                                      | freshpod | minikube | disabled | Google |
                                                                                                                      | gcp-auth | minikube | disabled | Google |
                                                                                                                      | gvisor | minikube | disabled | Google |
                                                                                                                      | headlamp | minikube | disabled | 3rd party (kinvolk.io) |
                                                                                                                      | helm-tiller | minikube | disabled | 3rd party (Helm) |
                                                                                                                      | inaccel | minikube | disabled | 3rd party (InAccel |
                                                                                                                      | | | | [info@inaccel.com]) |
                                                                                                                      | ingress | minikube | disabled | Kubernetes |
                                                                                                                      | ingress-dns | minikube | disabled | Google |
                                                                                                                      | istio | minikube | disabled | 3rd party (Istio) |
                                                                                                                      | istio-provisioner | minikube | disabled | 3rd party (Istio) |
                                                                                                                      | kong | minikube | disabled | 3rd party (Kong HQ) |
                                                                                                                      | kubevirt | minikube | disabled | 3rd party (KubeVirt) |
                                                                                                                      | logviewer | minikube | disabled | 3rd party (unknown) |
                                                                                                                      | metallb | minikube | disabled | 3rd party (MetalLB) |
                                                                                                                      | metrics-server | minikube | disabled | Kubernetes |
                                                                                                                      | nvidia-driver-installer | minikube | disabled | Google |
                                                                                                                      | nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) |
                                                                                                                      | olm | minikube | disabled | 3rd party (Operator Framework) |
                                                                                                                      | pod-security-policy | minikube | disabled | 3rd party (unknown) |
                                                                                                                      | portainer | minikube | disabled | 3rd party (Portainer.io) |
                                                                                                                      | registry | minikube | disabled | Google |
                                                                                                                      | registry-aliases | minikube | disabled | 3rd party (unknown) |
                                                                                                                      | registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) |
                                                                                                                      | storage-provisioner | minikube | enabled √ | Google |
                                                                                                                      | storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) |
                                                                                                                      | volumesnapshots | minikube | disabled | Kubernetes |
                                                                                                                      |-----------------------------|----------|--------------|--------------------------------|


                                                                                                                      2) 开启Addon组件,如开启ingress

                                                                                                                        tt@ubd-2204:~$ minikube addons enable ingress
                                                                                                                        * ingress is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub.
                                                                                                                        You can view the list of minikube maintainers at: https://github.com/kubernetes/minikube/blob/master/OWNERS
                                                                                                                        - Using image registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.1
                                                                                                                        - Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
                                                                                                                        - Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
                                                                                                                        * Verifying ingress addon...


                                                                                                                        * 启动 'ingress' 插件

                                                                                                                        因minikube start时使用了阿里云镜像,此处安装imgress默认会优先使用阿里云镜像。


                                                                                                                        7.6 创建指定版本的多套集群

                                                                                                                        1) 使用Kubernetes老版本版本创建并运行第二个集群

                                                                                                                          tt@ubd-2204:~$ minikube start -p rundba --kubernetes-version=v1.23.8 --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
                                                                                                                          * Ubuntu 22.04 上的 [rundba] minikube v1.26.1


                                                                                                                          * 根据用户配置使用 docker 驱动程序
                                                                                                                          * 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers
                                                                                                                          * Using Docker driver with root privileges
                                                                                                                          * Starting control plane node rundba in cluster rundba
                                                                                                                          * Pulling base image ...
                                                                                                                          * Creating docker container (CPUs=2, Memory=3900MB) ...
                                                                                                                          * 正在 Docker 20.10.17 中准备 Kubernetes v1.23.8
                                                                                                                          - Generating certificates and keys ...
                                                                                                                          - Booting up control plane ...
                                                                                                                          - Configuring RBAC rules ...
                                                                                                                          * Verifying Kubernetes components...
                                                                                                                          - Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
                                                                                                                          * Enabled addons: storage-provisioner, default-storageclass
                                                                                                                          * kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
                                                                                                                          * Done! kubectl is now configured to use "rundba" cluster and "default" namespace by default

                                                                                                                          安装多套集群时,可指定版本进行相应测试,本次指定版本为v1.23.8,集群名称rundba,本次同样使用本地(国内)镜像。


                                                                                                                          2) 查看当前所有集群

                                                                                                                            tt@ubd-2204:~$ minikube profile list
                                                                                                                            |----------|-----------|------------|--------------|------|---------|---------|-------|--------|
                                                                                                                            | Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active |
                                                                                                                            |----------|-----------|------------|--------------|------|---------|---------|-------|--------|
                                                                                                                            | minikube | docker | containerd | 192.168.49.2 | 8443 | v1.24.3 | Running | 1 | * |
                                                                                                                            | rundba | docker | docker | 192.168.67.2 | 8443 | v1.23.8 | Running | 1 | |
                                                                                                                            |----------|-----------|------------|--------------|------|---------|---------|-------|--------|

                                                                                                                            当前共两套集群,minikube和rundba,minikube使用containerd,而rundba使用docker...

                                                                                                                            3) 删除集群

                                                                                                                            删除指定(rundba)集群:

                                                                                                                              minikube delete -p rundba 

                                                                                                                              注:

                                                                                                                              如果有多套minikube集群,期望对指定名称集群操作时,需要使用-p参数。

                                                                                                                              如对rundba集群启动:

                                                                                                                              minikube start -p rundba,多集群等其它命令均可参考尝试。


                                                                                                                               删除所有minikube集群:

                                                                                                                                minikube delete --all


                                                                                                                                7.7 升级集群kubernetes版本

                                                                                                                                1) 升级rundba集群从v1.23.8到v1.23.9

                                                                                                                                  tt@ubd-2204:~$ minikube start -p rundba --kubernetes-version=v1.23.9
                                                                                                                                  * Ubuntu 22.04 上的 [rundba] minikube v1.26.1
                                                                                                                                  * Kubernetes 1.24.3 is now available. If you would like to upgrade, specify: --kubernetes-version=v1.24.3
                                                                                                                                  * 根据现有的配置文件使用 docker 驱动程序
                                                                                                                                  * Starting control plane node rundba in cluster rundba
                                                                                                                                  * Pulling base image ...
                                                                                                                                  * Updating the running docker "rundba" container ...
                                                                                                                                  > kubectl.sha256: 64 B 64 B [-------------------------] 100.00% ? p/s 0s \
                                                                                                                                  > kubelet: 118.43 MiB / 118.43 MiB [-----------] 100.00% 10.02 MiB p/s 12s
                                                                                                                                  * Verifying Kubernetes components...
                                                                                                                                  - Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
                                                                                                                                  * Enabled addons: storage-provisioner, default-storageclass
                                                                                                                                  * kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
                                                                                                                                  * Done! kubectl is now configured to use "rundba" cluster and "default" namespace by default


                                                                                                                                  2) 查看升级后的版本,rundba已经变为v1.23.9

                                                                                                                                    tt@ubd-2204:~$ minikube profile list
                                                                                                                                    |----------|-----------|------------|--------------|------|---------|---------|-------|--------|
                                                                                                                                    | Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active |
                                                                                                                                    |----------|-----------|------------|--------------|------|---------|---------|-------|--------|
                                                                                                                                    | minikube | docker | containerd | 192.168.49.2 | 8443 | v1.24.3 | Running | 1 | * |
                                                                                                                                    | rundba | docker | docker | 192.168.67.2 | 8443 | v1.23.9 | Running | 1 | |
                                                                                                                                    |----------|-----------|------------|--------------|------|---------|---------|-------|--------|


                                                                                                                                    7.8 登录minikube VM

                                                                                                                                      tt@ubd-2204:~$ minikube ssh
                                                                                                                                      Last login: Sat Aug 6 03:04:18 2022 from 192.168.49.1


                                                                                                                                      7.9 查看更多帮助

                                                                                                                                        minikube -h | help
                                                                                                                                        minikube help start
                                                                                                                                        minikube config -h


                                                                                                                                         

                                                                                                                                        8. 参考


                                                                                                                                         

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

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

                                                                                                                                        https://kubernetes.io/docs/tutorials/hello-minikube/

                                                                                                                                        https://github.com/AliyunContainerService/minikube/wiki


                                                                                                                                        -- 完 --


                                                                                                                                        更多精彩,敬请期待



                                                                                                                                        不足之处,还望抛转。

                                                                                                                                        作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。

                                                                                                                                        如需公众号转发,请联系wx:landnow。


                                                                                                                                           




                                                                                                                                                                     长按二维码                                   


                                                                                                                                        欢迎加入>>西安K8S组(XAKG)


                                                                                                                                               

                                                                                                                                           请注明:来自rundba,加入XAK8S组                

                                                                                                                                                     




                                                                                                                                        往期推荐

                                                                                                                                        Ubuntu22.04上安装K8s1.24.2--3节点环境安装(一主两从)

                                                                                                                                        0181.K 升级Kubernetes集群的Docker和Containerd版本

                                                                                                                                        0180.K kubelet.go 2466 Error getting node not found

                                                                                                                                        0176.K 设置master调度_去除master污点

                                                                                                                                        0175.K delete pv状态状态一直为Terminating解决方法

                                                                                                                                        0174.K kuboard监控套件安装

                                                                                                                                        0173.K pod日志提示persistentvolumeclaim not found解决方法

                                                                                                                                        0172.K pod日志提示pod has unbound immediate PersistentVolumeClaims解决

                                                                                                                                        0171.K pod日志提示open prometheus queries.active permission denied解决

                                                                                                                                        0170.K K8S增加node节点

                                                                                                                                        0169.K K8S集群删除与添加节点

                                                                                                                                        0168.K k8s增加node资源后,显示资源没有更新解决方法

                                                                                                                                        0165.K docker login报错x509: certificate relies on legacy...处理记录

                                                                                                                                        0164.K starting Harbor non-overlapping IPv4 address pool among..

                                                                                                                                        0163.K 在CentOS上使用Harbor搭建K8S/docker私有镜像仓库

                                                                                                                                        0162.C CDP集群中新增kafka主机并删除旧的kafka主机-自动同步数据

                                                                                                                                        0158.K 升级kubernetes集群_多主多从

                                                                                                                                        0157.K 升级 kubeadm 集群_一主两从

                                                                                                                                        0156.K  kubeadm安装高可用K8S集群(2/2)

                                                                                                                                        0155.K kubeadm安装高可用K8S集群(1/2)

                                                                                                                                        0154.K master初始化后_kube-proxy状态一直为CrashLoopBackOff处理记录

                                                                                                                                        云原生DevOps,研发一体化的践行利器

                                                                                                                                        0152.K 在K8S中安装/升级/卸载 Kuboard v3

                                                                                                                                        0151.K 升级kuboard(内建用户库方式)

                                                                                                                                        0150.K 安装kuboard(内建用户库方式)

                                                                                                                                        0147.k kubernetes 3节点实验环境安装




                                                                                                                                        文章转载自rundba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                                                                                        评论