1 简介
为学习和测试K8S,本文基于Ubuntu20搭建单机版K8S。
单机版K8S需要的物料有:kubectl、minikube,其中,kubectl是K8S的命令行客户端,通过命令行操作K8S,minikube即单机版的K8S服务端(自带客户端页面),监控部署在K8S中服务的运行状态、资源占用率等情况。
2 部署kubectl
官网文档:https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
2.1 下载
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
快捷下载方式
在某些网络条件下无法直接下载的开发者,移步这里免费下载,无需积分,版本:v1.30.2
https://download.csdn.net/download/Xin_101/89455193
(注:需要登录才能下载)
2.2 验证
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
验证结果
- 成功
kubectl: OK
- 失败
kubectl: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
2.3 安装
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
2.4 (可选)权限设置
chmod +x kubectl
mkdir -p ~/.local/bin/kubectl
mv ./kubectl ~/.local/bin/kubectl
2.5 查看版本
kubectl version --client
3 部署Minikube
官网文档:https://minikube.sigs.k8s.io/docs/start/
3.1 下载MiniKube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
3.2 安装
sudo install minikube-linux-amd64 /usr/local/bin/minikube
3.3 启动方式
3.3.1 方式1:无参启动
这种针对可以直接下载镜像的工程师而言。
minikube start
3.3.2 方式2:配置镜像源启动
这种针对必须使用国内镜像的工程师。
minikube start --registry-mirror=https://registry.docker-cn.com,https://shraym0v.mirror.aliyuncs.com --embed-certs=true --image-mirror-country=cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
3.3.3 方式3:使用基础镜像启动
该方式针对无法从国内镜像源无法直接通过启动的方式下载镜像,需要先手动下载基础镜像。
- 下载基础镜像
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44
- 添加TAG
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44 gcr.io/k8s-minikube/kicbase:v0.0.44
- 启动
minikube start --registry-mirror=https://registry.docker-cn.com,https://shraym0v.mirror.aliyuncs.com --embed-certs=true --image-mirror-country=cn --base-image=gcr.io/k8s-minikube/kicbase:v0.0.44 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
- 异常:
stderr:
Unable to find image ‘registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44@sha256:eb04641328b06c5c4a14f4348470e1046bbcf9c2cbc551486e343d3a49db557e’ locally
- 方案
手动下载镜像,使用基础镜像启动minikube。
# 手动下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44
# 打TAG
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44 gcr.io/k8s-minikube/kicbase:v0.0.44
# 启动minikube
minikube start --registry-mirror=https://registry.docker-cn.com,https://shraym0v.mirror.aliyuncs.com --embed-certs=true --image-mirror-country=cn --base-image=gcr.io/k8s-minikube/kicbase:v0.0.44 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
- 添加Docker群组用户
# 添加docker用户组
sudo groupadd docker
# 将登陆用户加入到docker用户组中
sudo gpasswd -a $USER docker
# 更新用户组
newgrp docker
3.4 集群交互
连接集群
kubectl get po -A
3.5 监控面板
3.5.1 启动
minikube dashboard
3.5.2 页面
这个链接是直接在minikube宿主机上访问,
当需要在其他机器上访问Dashboard时,需要配置代理,
kubectl proxy --port=9999 --address=192.168.10.11 --accept-hosts='^.*' &
其中,port为访问Dashboard的端口,address为访问Dashboard的IP。
3.6 集群管理
序号 | 命令 | 描述 |
---|---|---|
1 | minikube pause | 暂停已部署的应用 |
2 | minikube unpause | 启动已暂停的应用 |
3 | minikube stop | 关闭集群 |
4 | minikube config set memory 16384 | 增加内存(需要重启) |
5 | minikube addons list | 查询已安装的K8S服务 |
6 | minikube start -p aged --kubernetes-version=v1.16.1 | 创建副本集群 |
7 | minikube delete --all | 删除所有minikube集群 |
4 小结
- kubectl命令行客户端,操作K8S;
- minikube:K8S单机版服务端(自带客户端页面);
5 Q&A
- 异常:
stderr:
Unable to find image ‘registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44@sha256:eb04641328b06c5c4a14f4348470e1046bbcf9c2cbc551486e343d3a49db557e’ locally
- 方案
手动下载镜像,使用基础镜像启动minikube。
# 手动下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44
# 打TAG
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44 gcr.io/k8s-minikube/kicbase:v0.0.44
# 启动minikube
minikube start --registry-mirror=https://registry.docker-cn.com,https://shraym0v.mirror.aliyuncs.com --embed-certs=true --image-mirror-country=cn --base-image=gcr.io/k8s-minikube/kicbase:v0.0.44 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers