本文以Ubuntu为例介绍,国内安装minikube以及简单实用,以及一些坑。

首先确保系统上安装了docker,其他容器占时没有尝试。

docker安装看这里

1. 安装minikube

由于minikube中需要的好多镜像国内无法访问,要想通过官网上的那个安装要配置代理,阿里云有使用国内镜像的minikube版本可以安装使用:

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

  1. curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64 && \
  2. chmod +x minikube && \
  3. sudo mv minikube /usr/local/bin/

由于在本人电脑中使用docker作为driver一直不成功,因此使用none模式进行安装,安装使用的过程中进入root权限。

通过minikube start --driver=none进行启动minikube,期间需要下载一些东西还要拉一些镜像。

k8s (一) : 国内minikube安装 - 图1

通过minikube dashboard打开k8s的管理界面。

k8s (一) : 国内minikube安装 - 图2

打开的dashboard界面如下:

k8s (一) : 国内minikube安装 - 图3

2. 状态观察

2.1 minikube状态

通过minikube status查看状态:

k8s (一) : 国内minikube安装 - 图4

2.2 查看节点

  • 通过kubectl get nodes查看节点信息
  • 没有安装kubectl的话也可以使用minikube中带的kubectl,不过命令要通过--隔开,如:sudo minikube kubectl -- get nodes

k8s (一) : 国内minikube安装 - 图5

2.3 查看命名空间

  • 可以通过sudo kubectl get ns查看命名空间

k8s (一) : 国内minikube安装 - 图6

2.4 查看服务

  • 通过kubectl get svc来查看服务

k8s (一) : 国内minikube安装 - 图7

  • 通过kubectl get svc --all-namespaces查看所有命名空间中的服务

k8s (一) : 国内minikube安装 - 图8

2.5 查找pods

  • 通过sudo kubectl get po -A查看所有运行中的所有pods

k8s (一) : 国内minikube安装 - 图9

  • 通过-n 指定namespace进行查找

k8s (一) : 国内minikube安装 - 图10

3. Helm安装

Helm是Kubernetes的软件包管理工具。它不是Kubernetes自带的工具,因此必须额外安装它。Helm有两个组件:一个是服务器端组件称为tiller,另一个是命令行工具称为helm。

安装:

  1. curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
  2. sudo apt-get install apt-transport-https --yes
  3. echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
  4. sudo apt-get update
  5. sudo apt-get install helm

更改helm chart仓库的地址为azure提供的镜像地址:

  1. sudo helm repo add stable http://mirror.azure.cn/kubernetes/charts
  2. sudo helm repo update

3.1 查找

  • 通过hub查找 :helm search hub

k8s (一) : 国内minikube安装 - 图11

  • 通过repo查找:helm search repo

k8s (一) : 国内minikube安装 - 图12

3.2 安装charts

通过install进行安装, 例如安装redis:

  1. sudo helm install stable/redis --generate-name

3.3 查看信息

  • 通过 helm ls查看所有被释放的charts, helm list查看所有charts

k8s (一) : 国内minikube安装 - 图13

  • 通过helm show chart xx查看chart信息,通过helm show all xx查看chart的所有信息:

k8s (一) : 国内minikube安装 - 图14

3.4 卸载

通过helm uninstall进行卸载安装

k8s (一) : 国内minikube安装 - 图15

4. 问题处理

4.1 安装过程中报错

可以在安装过程中显示更详细的报错内容:

minikube start --logtostderr --v=2

4.2 启动dashboard时出现tcp 10.96.0.1:443: i/o timeout 错误

  • 首先先看一下是不是core没有ready, 如果是0/1很有可能是网络有问题。

k8s (一) : 国内minikube安装 - 图16

  • 我是通过如下方法解决:
systemctl stop kubelet
systemctl stop docker
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables --flush
iptables -tnat --flush
systemctl start kubelet
systemctl start docker
  • 可以通过minikube logs获取全部日志信息
  • 通过kubectl logs -n namespaces xx获取单个pod的log信息

k8s (一) : 国内minikube安装 - 图17

  • 可以通过kubectl describe -n namespaces pod pod-name 获取pod详细信息

k8s (一) : 国内minikube安装 - 图18