本文以Ubuntu为例介绍,国内安装minikube以及简单实用,以及一些坑。
首先确保系统上安装了docker,其他容器占时没有尝试。
1. 安装minikube
由于minikube中需要的好多镜像国内无法访问,要想通过官网上的那个安装要配置代理,阿里云有使用国内镜像的minikube版本可以安装使用:
https://github.com/AliyunContainerService/minikube/wiki
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64 && \chmod +x minikube && \sudo mv minikube /usr/local/bin/
由于在本人电脑中使用docker作为driver一直不成功,因此使用none模式进行安装,安装使用的过程中进入root权限。
通过minikube start --driver=none进行启动minikube,期间需要下载一些东西还要拉一些镜像。

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

打开的dashboard界面如下:

2. 状态观察
2.1 minikube状态
通过minikube status查看状态:

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

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

2.4 查看服务
- 通过
kubectl get svc来查看服务

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

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

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

3. Helm安装
Helm是Kubernetes的软件包管理工具。它不是Kubernetes自带的工具,因此必须额外安装它。Helm有两个组件:一个是服务器端组件称为tiller,另一个是命令行工具称为helm。
安装:
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -sudo apt-get install apt-transport-https --yesecho "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.listsudo apt-get updatesudo apt-get install helm
更改helm chart仓库的地址为azure提供的镜像地址:
sudo helm repo add stable http://mirror.azure.cn/kubernetes/chartssudo helm repo update
3.1 查找
- 通过hub查找 :
helm search hub

- 通过repo查找:
helm search repo

3.2 安装charts
通过install进行安装, 例如安装redis:
sudo helm install stable/redis --generate-name
3.3 查看信息
- 通过
helm ls查看所有被释放的charts,helm list查看所有charts

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

3.4 卸载
通过helm uninstall进行卸载安装

4. 问题处理
4.1 安装过程中报错
可以在安装过程中显示更详细的报错内容:
minikube start --logtostderr --v=2
4.2 启动dashboard时出现tcp 10.96.0.1:443: i/o timeout 错误
- 首先先看一下是不是core没有ready, 如果是
0/1很有可能是网络有问题。

- 我是通过如下方法解决:
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信息

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

