本文以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 --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
更改helm chart仓库的地址为azure提供的镜像地址:
sudo helm repo add stable http://mirror.azure.cn/kubernetes/charts
sudo 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详细信息