1. 安装与启动
# 安装最新版 minikube (Linux 示例)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 启动集群(国内用户推荐使用阿里云镜像)
minikube start --force \
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
--registry-mirror=https://docker.1panel.live \
--insecure-registry=192.168.31.101:5000 \
--driver=docker
启动成功后,如下图所示:
2. Kubernetes的使用
创建集群
通过Minikube我们可以创建一个单节点的K8S集群,集群管理Master和负责运行应用的Node都部署在此节点上。
●查看Minikube的版本号:
minikube version
●查看kubectl的版本号,第一次使用会直接安装kubectl:
minikube kubectl version
●如果遇到无法下载的情况,可以自行下载kubectl后存放到.minikube的指定路径下,或者拷贝minikube容器下的kubectl到.minikube的指定路径下;
kubectl下载地址
https://dl.k8s.io/release/v1.30.0/bin/linux/amd64/kubectl
kubctl本地安装路径
/root/.minikube/cache/linux/amd64/v1.30.0/kubectl
kubectl容器路径
/var/lib/docker/volumes/minikube/_data/lib/minikube/binaries/v1.30.0/kubectl
●如果你想直接使用kubectl命令的话,可以将其复制到/bin目录下去:
# 查找kubectl命令的位置
find / -name kubectl
# 找到之后复制到/bin目录下
cp /var/lib/docker/volumes/minikube/_data/lib/minikube/binaries/v1.30.0/kubectl /bin/
# 直接使用kubectl命令
kubectl version
●查看集群详细信息:
kubectl cluster-info
3. 部署应用
-
指定好应用镜像并创建一个Deployment,这里创建一个Nginx应用:
-
kubectl create deployment kubernetes-nginx --image=nginx:1.10
- 创建一个Deployment时K8S会产生如下操作:
- 选择一个合适的Node来部署这个应用;
- 将该应用部署到Node上;
- 当应用异常关闭或删除时重新部署应用。
-
查看所有Deployment: kubectl get deployments
4. 查看应用
- 查看K8s中所有Pod的状态: kubectl get pods
- 查看Pod的详细状态,包括IP地址、占用端口、使用镜像等信息:kubectl describe pods
5. 公开暴露应用
默认Pod无法被集群外部访问,需要创建Service并暴露端口才能被外部访问。
- 创建一个Service来暴露kubernetes-nginx这个Deployment:
- kubectl expose deployment/kubernetes-nginx --type="NodePort" --port 80
- 查看K8S中所有Service的状态: kubectl get services
- 查看Service的详情,通过
NodePort
属性可以得到暴露到外部的端口; - kubectl describe services/kubernetes-nginx
6. 可视化管理
Dashboard是基于网页的K8S用户界面。你可以使用Dashboard将容器应用部署到K8S集群中,也可以对容器应用排错,还能管理集群资源。
- 查看Minikube内置插件,默认情况下Dashboard插件未启用: minikube addons list
- 启用Dashboard插件:minikube addons enable dashboard
- 开启Dashboard,通过
--url
参数不会打开管理页面,并可以在控制台获得访问路径:minikube dashboard --url
- 要想从外部访问Dashboard,需要从使用kubectl设置代理才行,
--address
设置为你的服务器地址; -
kubectl proxy --port=34451 --address='192.168.31.101' --accept-hosts='^.*' &
- 通过如下地址即可访问Dashboard:
- http://192.168.31.101:34451/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/