一、环境准备

已安装Docker Desktop。

二、启用 Docker Desktop Kubernetes

打开 Docker Desktop → 右上角 Settings(⚙️) → 左侧 Kubernetes

勾选 Enable Kubernetes。

勾选 Enable Kubernetes 后,Cluster settings 有两个选项:集群创建方式 + 是否显示系统容器。

(一)Choose cluster provisioning method(集群创建方式)

Docker Desktop 提供两种,新手优先选 kubeadm,想玩多节点选 kind。

选项

特点

适用场景

推荐度

kubeadm

单节点、版本固定、启动快、兼容性好

本地开发、部署 Nginx 等简单服务、不想折腾

⭐⭐⭐⭐⭐

kind

多节点、可自选 K8s 版本、启动稍慢

学习多节点、测试集群调度、模拟生产

⭐⭐⭐

本地部署 Nginx 选 kubeadm 即可,稳定、省心、够用。

(二)Show system containers (advanced)(显示系统容器)

不勾选(默认):docker ps 看不到 K8s 内部容器(如 apiserver、etcd),界面干净。

勾选:docker ps 会列出 K8s 系统容器,方便调试,但列表会变多。

新手无需看系统容器,不勾选即可。

点击 Apply →点击Install →等待自动下载镜像、启动集群(底部状态栏 K8s 图标变绿即就绪)。

下载的镜像列表如下:

registry.k8s.io/kube-apiserver:v1.34.1:K8s 接口入口

registry.k8s.io/kube-controller-manager:v1.34.1:控制器,管理各种资源

registry.k8s.io/kube-scheduler:v1.34.1:调度器,决定 Pod 跑在哪

registry.k8s.io/kube-proxy:v1.34.1:节点网络代理

registry.k8s.io/coredns/coredns:v1.12.1:集群内部 DNS

registry.k8s.io/pause:3.10.1:Pod 基础沙箱容器

registry.k8s.io/etcd:3.6.4-0:K8s 数据库

desktop-kubernetes : 跑 K8s 的 “虚拟机 / 容器”

desktop-storage-provisioner : 给 K8s 提供本地硬盘

desktop-vpnkit-controller : 给 K8s 开 “对外网络端口”

(三)验证集群

打开 PowerShell/CMD,执行以下命令:

kubectl get nodes

三、关闭 Docker Desktop Kubernetes

打开 Docker Desktop → 右上角 Settings(⚙️) → 左侧 Kubernetes

把 Enable Kubernetes 前面的 √ 去掉,点击下方 Apply,Docker 会自动重启,K8s 就关掉了。

下次想用的时候,重新把 Enable Kubernetes 勾上 → Apply,等它变成绿色 running 就能继续用。

四、通过YAML方式部署Nginx

创建文件夹:D:\Docker\k8s\nginx。

(一)编写nginx-deploy.yaml

在文件夹中创建nginx-deploy.yaml文件,并增加如下内容:

# API 版本(固定写法,不用改)

apiVersion: apps/v1

# 资源类型

kind: Deployment

# 部署的名字

metadata:

  name: k8s-nginx-deploy

# 部署的规格

spec:

  # 跑几个副本(1个就够了)

  replicas: 1

  # 用来找到下面的Pod

  selector:

    matchLabels:

      app: nginx

  # Pod 模板(容器长啥样)

  template:

    metadata:

      labels:

        app: nginx # 标签必须和上面 selector 对应

    # 容器配置

    spec:

      containers:

      - name: k8s-nginx # 容器名字

        image: nginx:latest # 用 nginx 镜像

        ports:

        - containerPort: 80 # 容器内部用 80 端口

作用:创建Nginx容器:

(二)编写nginx-svc.yaml

在文件夹中创建nginx-svc.yaml文件,并增加如下内容:

# API 版本(固定)

apiVersion: v1

# 资源类型:Service

kind: Service

# 服务名字

metadata:

  name: k8s-nginx-svc

# 服务规格

spec:

  # 类型:NodePort 让外部可以访问

  type: NodePort

  # 通过标签找到要暴露的 Pod(必须和 deploy 里的标签一样)

  selector:

    app: nginx

  # 端口配置

  ports:

  - port: 8082 # 集群内部访问端口

       nodePort: 32000 # 👈 你自己定义的外部端口

作用:让 Nginx 可以被浏览器访问

(三)应用配置

1.部署 Deployment

打开PowerShell或CMD,切换到创建的文件夹内,执行命令:

kubectl apply -f nginx-deploy.yaml

验证Deployment是否部署成功:

kubectl get pods

Running 就是正常,后面 Service 才有东西可以转发流量。

2.部署 Service

打开PowerShell或CMD,切换到创建的文件夹内,执行命令:

kubectl apply -f nginx-svc.yaml

验证Service是否部署成功:

kubectl get svc

看到记录就表示成功,PORT(S) 80:32000/TCP,32000 就是你浏览器访问的端口

(四)验证与访问

# 看 Pod 状态

kubectl get pods 

# 看 NodePort 端口

kubectl get svc  

通过浏览器访问:http://localhost:<NodePort端口>

五、常用命令

# 查看集群节点列表

kubectl get nodes

# 查看部署的应用列表(Deployment)

kubectl get deploy

# 查看容器实例(Pod)

kubectl get pods -o wide

# 查看服务列表(Service)

kubectl get svc

# 删除 Deployment(连带删除 Pod)

kubectl delete -f nginx-deploy.yaml

# 删除 Service

kubectl delete -f nginx-svc.yaml
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐