在现有 Docker Desktop 环境下安装与配置独立 Kubernetes环境

在现有 Docker Desktop 环境下安装与配置独立 Kubernetes 集群环境

目标

  1. 在已安装Docker Desktop自带Kubernetes的情况下,搭建一个独立 Kubernetes 集群环境。
  2. 配置独立的 kubectl 工具,使其默认管理独立的 Kubernetes 集群。
  3. 保留 Docker Desktop 的 Kubernetes 环境,确保与独立环境互不干扰。
  4. 实现多个 Kubernetes 环境之间的灵活切换。

一、前提条件

在开始之前,请确保满足以下条件:

  1. 已安装 Docker Desktop,并启用了 Docker Desktop 的 Kubernetes 功能(如果需要)。

  2. 操作系统为 macOS,并已安装 Homebrew(包管理工具)。

  3. 系统工具检查

    • 确保 curlbrew 可用:

      bash 复制代码
      curl --version
      brew --version
  4. 注意 Docker Desktop 的 kubectl 工具

    默认情况下,Docker Desktop 自带的 kubectl 工具位于 /usr/local/bin,并通过软链接指向 Docker Desktop 安装目录。如果希望安装独立的 kubectl 工具并避免冲突,可以通过重命名 Docker 的 kubectl 来解决。


二、重命名 Docker 的 kubectl

为了让独立安装的 kubectl 成为默认管理工具,同时保留 Docker Desktop 的 Kubernetes 功能,我们需要将 Docker 自带的 kubectl 软链接重命名为 kubectl-docker

步骤

  1. 重命名 Docker 的 kubectl

    bash 复制代码
    sudo mv /usr/local/bin/kubectl /usr/local/bin/kubectl-docker

    此操作不会删除 Docker Desktop 的 kubectl,而是将其重命名,以便后续使用。

  2. 验证重命名是否成功:

    bash 复制代码
    ls -l /usr/local/bin/kubectl-docker

    输出应类似如下:

    plaintext 复制代码
    lrwxr-xr-x  1 root  wheel  55B 12  9  2021 /usr/local/bin/kubectl-docker -> /Applications/Docker.app/Contents/Resources/bin/kubectl

至此,我们已经完成了重命名 Docker 的 kubectl,避免其与独立安装的 kubectl 工具产生冲突。


三、安装独立的 kubectl 工具

kubectl 是 Kubernetes 的核心命令行工具,用于管理 Kubernetes 集群。

安装命令
在 macOS 系统上安装和设置 kubectl


四、安装 Kubernetes 集群

根据需求选择以下几种常用的 Kubernetes 本地集群工具之一:

方案 1:使用 Minikube

Minikube 是一个轻量级工具,用于在本地快速启动单节点 Kubernetes 集群,适合开发和测试用途。
Minikube使用

安装步骤
  1. 安装 Minikube:

    bash 复制代码
    brew install minikube
  2. 启动 Minikube 集群:

    bash 复制代码
    minikube start

    默认情况下,Minikube 使用 Docker 作为容器运行时。如果需要其他运行时(如 containerdCRI-O),可以通过以下方式启动:

    bash 复制代码
    minikube start --container-runtime=containerd
  3. 验证 Minikube 集群是否成功启动:

    bash 复制代码
    kubectl config get-contexts

    输出应包含 minikube 的上下文:

    plaintext 复制代码
    CURRENT   NAME       CLUSTER    AUTHINFO    NAMESPACE
              minikube   minikube   minikube
  4. 设置 kubectl 使用 Minikube 的上下文:

    bash 复制代码
    kubectl config use-context minikube
  5. 验证 Kubernetes 节点状态:

    bash 复制代码
    kubectl get nodes

    应看到 Minikube 的节点状态为 Ready


方案 2:使用 Kind

Kind(Kubernetes IN Docker)是一种使用 Docker 容器构建 Kubernetes 集群的工具,非常适合多节点集群的模拟。
kind使用

安装步骤
  1. 安装 Kind:

    bash 复制代码
    brew install kind
  2. 创建 Kind 集群:

    bash 复制代码
    kind create cluster

    如果需要多节点集群,可以使用以下配置文件创建集群:

    bash 复制代码
    cat <<EOF > kind-config.yaml
    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
    nodes:
      - role: control-plane
      - role: worker
      - role: worker
    EOF
    kind create cluster --config kind-config.yaml
  3. 验证 Kind 集群是否成功启动:

    bash 复制代码
    kubectl cluster-info --context kind-kind

    输出应显示集群的控制平面和服务地址。

  4. 切换到 Kind 集群的上下文:

    bash 复制代码
    kubectl config use-context kind-kind
  5. 验证节点状态:

    bash 复制代码
    kubectl get nodes

方案 3:使用 kubeadm 安装(适合更接近生产的环境)

kubeadm 是 Kubernetes 官方提供的工具,用于快速部署一个多节点的 Kubernetes 集群。

你可以选择在虚拟机或者裸金属机器上安装 Kubernetes,配置 kubeadm 初始化集群。

<--------- 待更新 --------->


五、在多个 Kubernetes 环境之间切换

Docker Desktop 和独立安装的 Kubernetes 可以共存,你可以灵活切换它们的上下文。

  1. 切换到 Docker Desktop 的上下文:

    bash 复制代码
    kubectl-docker config use-context docker-desktop
  2. 切换到 Minikube 的上下文:

    bash 复制代码
    kubectl config use-context minikube
  3. 切换到 Kind 的上下文:

    bash 复制代码
    kubectl config use-context kind-kind
  4. 查看当前使用的上下文:

    bash 复制代码
    kubectl config current-context

六、验证 Kubernetes 环境

为了确保 Kubernetes 工作正常,可以部署一个简单的示例应用。

  1. 部署示例 Deployment:

    bash 复制代码
    kubectl create deployment hello-world --image=nginx
  2. 查看 Pod 状态:

    bash 复制代码
    kubectl get pods
  3. 暴露服务端口:

    bash 复制代码
    kubectl expose deployment hello-world --type=NodePort --port=80
  4. 获取服务的 NodePort:

    bash 复制代码
    kubectl get svc
  5. 如果使用 Minikube,可以通过以下命令获取 Minikube 的 IP 地址:

    bash 复制代码
    minikube ip

    然后访问 http://<minikube-ip>:<NodePort>,应看到 NGINX 默认页面。


七、总结

本文内容:

  1. 安装独立的 Kubernetes 集群(如 Minikube 或 Kind)。
  2. 配置独立的 kubectl 工具,并避免与 Docker Desktop 冲突。
  3. 实现多个 Kubernetes 环境(如 Minikube、Kind 和 Docker Desktop)之间的自由切换。
  4. 验证 Kubernetes 环境运行正常,并部署了示例应用。
相关推荐
半夏一33 分钟前
docker与部署微服务实战
docker·微服务·eureka
Villiam_AY1 小时前
docker中常用的镜像和容器命令
linux·docker·容器
qq7590353661 小时前
2025 OpenCloudOS欧拉系统在线安装docker,在国产欧拉系统安装部署及docker
运维·docker·容器
追梦的小菜1 小时前
springboot指定外置配置文件(没有docker)
spring boot·后端·docker
张3蜂1 小时前
Docker的原理:如何理解容器技术的力量
docker·容器·eureka
m0_515790411 小时前
Docker使用 使用Dockerfile来创建镜像
docker·容器
颜淡慕潇3 小时前
【K8S系列】K8s 领域深度剖析:年度技术、工具与实战总结
云原生·容器·kubernetes
一叶青枫5 小时前
解决Docker中使用 Open WebUI识别不到本地ollama中的模型
ui·docker·语言模型·容器
石明亮(JT)5 小时前
CentOS 7.9下安装Docker
docker