Skip to content

基于 minikube 初始化 K8s 环境

Minikube 可以在本地机器上模拟一个完整的 Kubernetes 环境,从而进行开发、测试和学习,无需依赖云服务或远程集群。这使得 Kubernetes 的学习曲线变得更平缓,并且方便开发人员在本地调试和测试他们的应用程序

常见的问题

在使用 minikube 的时候我们经常会遇到各种问题,比如

  1. docker 不能使用 root 用户
  2. 下载镜像失败
text
Unable to find image 'gcr.io/k8s-minikube/kicbase:v0.0.44@sha256:eb04641328b06c5c4a14f4348470e1046bbcf9c2cbc551486e343d3a49db557e' locally
docker: Error response from daemon: Get "https://gcr.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

搭建流程

安装 minikube

各种平台安装参考官方文档(https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download)

以下命令是 linux x86-64 stable 二进制安装方式

bash
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

验证 minikube 是否安装成功

bash
minikube version

# 输出相关信息就表示安装成功
minikube version: v1.33.1
commit: 5883c09216182566a63dff4c326a6fc9ed2982ff

启动一个 K8s 单机集群

gcr.io/k8s-minikube/kicbase:v0.0.44 这个镜像要是下载不下来可以采用国内相关镜像 docker pull 下载下来进行替换

下载基础镜像

bash
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44

打 tag

bash
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44 gcr.io/k8s-minikube/kicbase:v0.0.44

启动集群

bash
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

kubectl 安装

参考官方文档(https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-kubectl-binary-with-curl-on-linux)

bash
 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

 sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

验证 kubectl 是否安装成功

bash
kubectl version
# 输出版本信息表示安装成功

Client Version: v1.30.3 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 Server Version: v1.30.0

部署一个 pod 验证集群

编写 pod yaml 文件

yml
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  labels:
    app: my-app
spec:
  containers:
    - name: my-container
      image: nginx
      ports:
        - containerPort: 80

apply 文件

bash
kubectl apply -f pod.yml

查看 pod 事件消息

bash
kubectl describe pod

输出如下

图片

Released under the MIT License.