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.