[运维]minikube使用笔记

file

在某些方面,我们确实具有得天独厚的优势,来锻炼自己的心态和搜索、整理信息的技巧
既要做到负重前行,也要做到弯道超车

安装与配置

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)即可访问仪表盘
file

常用命令

为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

填写部署配置信息
file
使用dockerproxy提供的容器镜像,可以避免负重前行
指定Service为External,将nginx的80端口映射到8080端口

查看Service的基本信息
file

由于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访问)

file

部署Redis

kubernetes部署单节点Redis服务

部署MySQL

基于 Kubernetes 部署 MySQL 数据库

发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注