在现有 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 环境运行正常,并部署了示例应用。
相关推荐
Sirius Wu18 分钟前
Docker 镜像的构建、打包、变更、再次打包全流程
运维·docker·容器
Zhu7581 小时前
【软件部署】docker环境部署domino
运维·docker·容器
.柒宇.4 小时前
信创实战:银河麒麟 V10 服务器安装、网络配置与 Docker 环境搭建
linux·运维·docker·国产信创·麒麟操作系统
IT从业者张某某4 小时前
基于Docker的hadoop容器安装hive并测试
hive·hadoop·docker
杨浦老苏4 小时前
Docker容器管理面板Dockhand
运维·docker·群晖
努力的搬砖人.4 小时前
配置 Docker 镜像加速器
运维·docker·容器
江湖有缘5 小时前
实时监控所有端口,Docker 部署 WatchYourPorts 保姆级教程
运维·docker·容器
IT从业者张某某5 小时前
基于Docker的hadoop容器安装zookeeper
hadoop·docker·zookeeper
guojb8245 小时前
告别部署踩坑:用 Docker Compose 优雅搞定多前端站点、HTTPS 与 SSE 推送
nginx·docker·https
pupudawang5 小时前
docker desktop安装redis
redis·docker·容器