ubuntu 18.04下minikube的安装
第1步:更新系统
运行以下命令将所有系统软件包更新到最新版本:
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get upgrade
第2步: 下载kubectl
安装kubectl
安装minikube的前提:需要先安装kubectl,它是kubernetes的命令行工具,可以使用kubectl部署应用程序,检查和管理集群资源以及查看日志,通过kubectl对k8s进行操作
# 下载最新稳定版本的kubuctl二进制文件
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/linux/amd64/kubectl
# 为kubectl赋予可执行权限
$ chmod +x ./kubectl
# 安装到/usr/local/bin/目录,将可执行文件放到系统的PATH目录
$ sudo mv ./kubectl /usr/local/bin/kubectl
# 成功
kubectl version --client
# 检查版本:
kubectl version -o json
第3步:安装minikube
# 下载最新版本minikube二进制文件 并赋予执行权限
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
# 安装到/usr/local/bin/目录
$ sudo mkdir -p /usr/local/bin/
$ sudo install minikube /usr/local/bin/
# 确认安装成功
$ kubectl version --client
# 确认已安装版本:
minikube version
第4步:启动minikube
# 输入命令minikube start --vm-driver=none启动kubernetes,注意这里--vm-driver参数使用none,前提是要求本机有安装docker,不然会报错:
minikube start --vm-driver=none
或者:
minikube start --force --driver=docker
如果启动报如下错误
初次执行大多数情况会报错启动失败,原因是minikube启动k8s环境时需要从k8s.gcr.io拉取kube-apiserver、kube-controller-manager、kube-scheduler等docker镜像进行部署。而由于墙的问题从阿里云的云端机器上是无法访问k8s.gcr.io的。
解决方案1
minikube需要docker组启动,就用第二个命令启动
解决方案2:
因为我是用root账号登录操作的。所以提示不能用root账号启动,得用别的账号。所以要创建一个新的账号进行操作,创建一个test账号进行启动
adduser test
passwd test
解决方案3(我用的这种方案):
1.如果出现Sorry, Kubernetes v1.18.0 requires conntrack to be installed in root’s path,请执行:
sudo apt install conntrack
# 通过minikube的帮助文档能看到,可以直接用阿里云的镜像地址registry.cn-hangzhou.aliyuncs.com/google_containers代替k8s.gcr.io
$ minikube start --help
...
--image-repository='': Alternative image repository to pull docker images from. This can be used when you have
limited access to gcr.io. Set it to "auto" to let minikube decide one for you. For Chinese mainland users, you may use
local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers
...
接下来执行:
minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
* Ubuntu 18.04 上的 minikube v1.24.0
* 根据现有的配置文件使用 none 驱动程序
* Starting control plane node minikube in cluster minikube
* Running on localhost (CPUs=2, Memory=7953MB, Disk=50137MB) ...
* OS release is Ubuntu 18.04.6 LTS
! This bare metal machine is having trouble accessing https://registry.cn-hangzhou.aliyuncs.com/google_containers
* To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
* 正在 Docker 20.10.7 中准备 Kubernetes v1.22.3…
- Generating certificates and keys ...
- Booting up control plane ...
- Configuring RBAC rules ...
* 开始配置本地主机环境...
*
! The 'none' driver is designed for experts who need to integrate with an existing VM
* Most users should use the newer 'docker' driver instead, which does not require root!
* For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/
*
! kubectl 和 minikube 配置将存储在 /root 中
! 如需以您自己的用户身份使用 kubectl 或 minikube 命令,您可能需要重新定位该命令。例如,如需覆盖您的自定义设置,请运行:
*
- sudo mv /root/.kube /root/.minikube $HOME
- sudo chown -R $USER $HOME/.kube $HOME/.minikube
*
* 此操作还可通过设置环境变量 CHANGE_MINIKUBE_NONE_USER=true 自动完成
* Verifying Kubernetes components...
- Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
! /usr/local/bin/kubectl is version 1.17.0, which may have incompatibilites with Kubernetes 1.22.3.
- Want kubectl v1.22.3? Try 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
出现上面的日志表示minikube已经部署完毕,随后查看k8s的运行状态
# 可以看到minikube在docker中启动了很多k8s相关的container
$ docker container ls
# 查看minikube的运行状态
$ minikube status
测试minikubu
root@sunrj:~# minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
第5步:Minikube Basic操作
检查群集状态,请运行:
# kubectl cluster-info
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
请注意,Minikube配置文件位于:
~/.minikube/machines/minikube/config.json
要查看配置,请使用:
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority: /root/.minikube/ca.crt
extensions:
- extension:
last-update: Thu, 04 Nov 2021 09:49:57 UTC
provider: minikube.sigs.k8s.io
version: v1.23.2
name: cluster_info
server: https://192.168.49.2:8443
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
last-update: Thu, 04 Nov 2021 09:49:57 UTC
provider: minikube.sigs.k8s.io
version: v1.23.2
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /root/.minikube/profiles/minikube/client.crt
client-key: /root/.minikube/profiles/minikube/client.key
检查运行节点:
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
apig Ready control-plane,master 45h v1.22.3
使用ssh访问minikube VM:
# minikube ssh
# sudo su -
//要停止正在运行的本地kubernetes集群:
# minikube stop
要删除本地kubernetes集群,请使用:
# minikube delete
第6步:启用Kubernetes仪表板
Kubernete附带一个Web仪表板,允许你管理群集而无需与命令行交互,默认情况下,在minikube上安装并启用仪表板插件
# minikube addons list
|-----------------------------|----------|--------------|-----------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|-----------------------|
| ambassador | minikube | disabled | unknown (third-party) |
| auto-pause | minikube | disabled | google |
| csi-hostpath-driver | minikube | disabled | kubernetes |
| dashboard | minikube | disabled | kubernetes |
| default-storageclass | minikube | enabled ✅ | kubernetes |
| efk | minikube | disabled | unknown (third-party) |
| freshpod | minikube | disabled | google |
| gcp-auth | minikube | disabled | google |
| gvisor | minikube | disabled | google |
| helm-tiller | minikube | disabled | unknown (third-party) |
| ingress | minikube | disabled | unknown (third-party) |
| ingress-dns | minikube | disabled | unknown (third-party) |
| istio | minikube | disabled | unknown (third-party) |
| istio-provisioner | minikube | disabled | unknown (third-party) |
| kubevirt | minikube | disabled | unknown (third-party) |
| logviewer | minikube | disabled | google |
| metallb | minikube | disabled | unknown (third-party) |
| metrics-server | minikube | disabled | kubernetes |
| nvidia-driver-installer | minikube | disabled | google |
| nvidia-gpu-device-plugin | minikube | disabled | unknown (third-party) |
| olm | minikube | disabled | unknown (third-party) |
| pod-security-policy | minikube | disabled | unknown (third-party) |
| portainer | minikube | disabled | portainer.io |
| registry | minikube | disabled | google |
| registry-aliases | minikube | disabled | unknown (third-party) |
| registry-creds | minikube | disabled | unknown (third-party) |
| storage-provisioner | minikube | enabled ✅ | kubernetes |
| storage-provisioner-gluster | minikube | disabled | unknown (third-party) |
| volumesnapshots | minikube | disabled | kubernetes |
|-----------------------------|----------|--------------|-----------------------|
卸载:
完全卸载 Minikube/Uninstall Minikube[ Linux 和 Mac]
- Linux系统
# 停止运行
root$ minikube stop;
# 执行卸载命令
root$ minikube delete
docker stop (docker ps -aq)
rm -r ~/.kube ~/.minikube
sudo rm /usr/local/bin/localkube /usr/local/bin/minikube
systemctl stop '*kubelet*.mount'
sudo rm -rf /etc/kubernetes/
docker system prune -af --volumes