在某些方面,我们确实具有得天独厚的优势,来锻炼自己的心态和搜索、整理信息的技巧
既要做到负重前行,也要做到弯道超车
安装与配置
docker安装
更新apt索引
sudo apt-get update
安装几个依赖包,让apt支持https
sudo apt install apt-transport-https ca-certificates curl software-properties-common
添加docker官方的gpg公钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加docker库到apt
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
更新apt软件包列表
sudo apt update
安装docker社区版
sudo apt install docker-ce
添加当前用户到docker用户组
sudo groupadd docker
sudo usermod -aG docker ${USER}
添加到用户组后需要重启系统或重新登录用户
初次使用minikube
获取阿里云docker hub镜像加速地址
阿里云-容器服务镜像控制台
提前从阿里镜像源拉取基础镜像(避免负重前行)
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.39
为基础镜像设置tag
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.39 natuki/kicbase
初次启动minikube
minikube start --kubernetes-version=v1.25.2 --registry-mirror=https://[YOUR_ID].mirror.aliyuncs.com --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --base-image="natuki/kicbase" --driver=docker
启动仪表盘(Web端管理工具)
minikube dashboard
如果启动仪表盘时,长时间卡在Verifying proxy health,则需要自行查看节点运行状态
如果dashboard节点状态长时间处于ContainerCreating甚至ImagePullBackOff,可以猜测是在拉取镜像时存在网络问题,通过如下方式解决
首先,通过ssh进入docker容器
minikube ssh
然后,通过国内镜像源拉取dashboard启动所需镜像并打tag
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0 docker.io/kubernetesui/dashboard:v2.7.0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8 docker.io/kubernetesui/metrics-scraper:v1.0.8
其中dashboard的版本号可以在执行启动仪表盘时看到,拉取相应版本的镜像并添加tag即可;metrics-scraper同理
最后,重新执行minikube dashboard
即可启动仪表盘
若要让仪表盘支持外网访问
kubectl proxy --address='0.0.0.0' --disable-filter=true
执行命令后,通过宿主机ip+提供的端口号(图中为8001)即可访问仪表盘
常用命令
为minikube kubectl注册别名
alias kubectl="minikube kubectl --"
查看Pod运行状态
包含系统模块Pod
minikube kubectl -- get pods -A
不包含系统模块Pod
minikube kubectl -- get pods
查看指定Pod信息
kubectl get Pods [Pod-name] -o wide
# or
kubectl get Pods [Pod-name] -o yaml
-o wide
参数可以多输出几列信息
-o yaml
参数则更近一步,能够输出完整关于Pod的清单
也可以使用kubectl describe Pods
命令查看Pod的总览信息
kubectl describe Pods [Pod-name]
在Pod中执行命令
例如,需要查看指定Pod中的进程信息,可以使用如下的命令
kubectl exec [Pod-name] -- ps aux
如果需要进行交互式会话,则需要加上-it参数
,例如
kubectl exec -it [Pod-name] -- /bin/bash
查看Pod运行日志
kubectl logs [Pod-name]
通过ssh进入docker容器
minikube ssh
清理环境
遇到安装出错或者需要重新安装的情况
minikube delete
如果普通的minikube delete
不能解决,可以尝试添加sudo
或执行如下的命令
docker system prune
minikube delete --purge --all
实战操作
利用dashboard部署nginx
填写部署配置信息
使用dockerproxy提供的容器镜像,可以避免负重前行
指定Service为External,将nginx的80端口映射到8080端口
查看Service的基本信息
由于Service是位于docker容器内的,还无法访问,需要进行端口转发
kubectl port-forward service/nginx-form 7080:8000 --address 0.0.0.0
这条命令将nginx-form的Service的8000端口映射到主机的7080端口,并且监听0.0.0.0地址,以便于外部能够访问nginx服务(否则默认只能通过127.0.0.1或localhost访问)