前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker Desktop开启内置的K8S并安装kuboard进行微服务管理

Docker Desktop开启内置的K8S并安装kuboard进行微服务管理

作者头像
Tinywan
发布2024-04-28 11:11:15
2480
发布2024-04-28 11:11:15
举报
文章被收录于专栏:开源技术小栈开源技术小栈

摘要

  1. 安装Docker Desktop
  2. 开启并启动Docker Desktop单节点K8S集群
  3. 使用Docker安装Kuboard
  4. 关联Kuboard和单节点K8S集群,使用Kuboard来管理单节点K8S集群
  5. 实战:部署一个nginx deployment应用程序

安装 Docker Desktop

Docker Desktop 是什么?

Docker Desktop 是 Docker 官方提供的桌面应用程序,它允许用户在个人计算机上安装并运行 Docker 引擎。Docker Desktop 支持 Windows 和 macOS 操作系统,通过它用户可以构建、共享和运行容器化应用程序。

Docker Desktop 提供了图形用户界面(GUI),使得管理容器、镜像、网络和卷等 Docker 对象变得更加直观和方便。它包括了 Docker Engine、Docker CLI 客户端、Docker Compose、Kubernetes(可选)、以及内置的 Dockerfile 编辑器等工具。

此外,Docker Desktop 还允许用户设置和使用不同的 Docker 镜像仓库,方便用户从远程仓库拉取或推送容器镜像。它还支持资源限制、网络配置、存储驱动选择等高级功能,以适应不同用户的需求。

安装

安装 Docker Desktop for Windows 的步骤如下:

1. 下载 Docker Desktop Installer:访问 Docker 官方网站下载页面:Get Started with Docker 或者直接访问 Docker Hub 并下载适用于 Windows 的 Docker Desktop Installer。

2. 运行安装程序:双击下载的 Docker Desktop Installer.exe 文件以运行安装程序。

3. 安装要求:在安装过程中,确保勾选了“Enable Hyper-V Windows Features”(启用 Hyper-V 功能)或者“Install required Windows components for WSL 2”(为 WSL 2 安装所需的 Windows 组件)的选项。

4. 完成安装:根据安装向导的提示完成安装,可能需要重启计算机。

5. 使用 WSL 2 作为后端(如果需要):如果你想使用 WSL 2 作为 Docker 的后端,可以在安装时或安装后在 Docker Desktop 的设置中选择“Use the WSL 2 based engine”(使用基于 WSL 2 的引擎)。

6. 配置镜像源(可选):为了加速下载 Docker 镜像,可以配置镜像源,如阿里云镜像加速地址。在 Docker Desktop 的设置中添加镜像源地址:

代码语言:javascript
复制
{ "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"] }

其中 xxxx.mirror.aliyuncs.com 需要替换为实际的加速器地址。

7. 验证安装:安装完成后,可以通过命令行运行 docker versiondocker-v 来验证 Docker 是否安装成功。

开启单节点K8S集群

Docker Desktop 自带了 Kubernetes 支持,可以通过 Docker Desktop 的应用程序界面开启 Kubernetes 集群。

开启K8S

在 Docker Desktop 应用程序中,找到并点击“设置”(Settings)选项,通常位于应用菜单栏或者 Docker 图标右键菜单中。切换到 Kubernetes 标签进行启动。

验证 Kubernetes 集群状态

启动完成后,通常会在 Kubernetes 页面上显示 Kubernetes 集群的状态,比如Running或者Active

使用 kubectl

Docker Desktop 启动 Kubernetes 后,会自动配置 kubectl 命令行工具,你可以在命令行中使用 kubectl 来管理你的 Kubernetes 集群。

通过以下命令验证集群是否正确启动

代码语言:javascript
复制
kubectl cluster-info

安装Kuboard

Kuboard是什么?

Kuboard 是一款免费的 Kubernetes 管理工具,旨在帮助用户快速在 Kubernetes 上落地微服务。它提供了丰富的功能,包括但不限于 Kubernetes 基本管理功能、节点管理、名称空间管理、存储类/存储卷管理、控制器管理、Service/Ingress 管理、ConfigMap/Secret 管理、CustomerResourceDefinition 管理、问题诊断、容器日志及终端、认证与授权、CI/CD集成等。

此外,Kuboard 还支持多种认证方式、多集群管理、微服务分层展示、工作负载的直观展示和编辑、存储类型支持、丰富的互操作性以及操作审计等功能。Kuboard 通过图形化界面简化了 Kubernetes 的使用,让用户无需编写 YAML 文件即可完成应用程序的部署和管理,降低了 Kubernetes 的学习门槛,提高了运维的便捷性。

安装 Kuboard v3(内建用户库)

安装文档:https://www.kuboard.cn/install/v3/install-built-in.html#%E9%83%A8%E7%BD%B2%E8%AE%A1%E5%88%92

安装 Kuboard v3.x 版本的指令如下:

代码语言:javascript
复制
docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 8089:80/tcp \
  -p 10081:10081/tcp \
  -e KUBOARD_ENDPOINT="http://192.168.3.29:8089" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v d:\k8s:/data \
  eipwork/kuboard:v3

注意事项:

  • 可以使用镜像swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3更快地完成镜像下载。
  • 请不要使用 127.0.0.1 或者 localhost 作为内网 IP
  • Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server

安装结果

本地磁盘安装目录文件

容器运行状态

访问 Kuboard v3.x

在浏览器输入 http://127.0.0.1:8089/ 即可访问 Kuboard v3.x 的界面

登录方式。用户名:admin 密 码:Kuboard123

添加 Kubernetes 集群到 Kuboard

使用Kuboard Agent方式添加

  • 名称:Tinywan-k8s
  • 描述:随便写
  • Agent部署名称:kuboard-agent-tinywan

等待准备导入状态

导入Kuboard

通过以下命令下载kuboard-agent.yaml文件

代码语言:javascript
复制
curl -k 'http://192.168.3.29:8089/kuboard-api/cluster/Tinywan-k8s/kind/KubernetesCluster/Tinywan-k8s/resource/installAgentToKubernetes?token=igQyIcMwCTBhSXmIhaZ1h2IQ3PSNjrpW' > kuboard-agent.yaml

下载结果

导入之前先要执行以下两个命令

获取当前 Kubernetes 集群中的所有 Pod

代码语言:javascript
复制
PS C:\Users\Tinywan> kubectl get pods
No resources found in default namespace.

显示当前 Kubernetes 配置中所有上下文

代码语言:javascript
复制
PS C:\Users\Tinywan> kubectl config get-contexts
CURRENT   NAME             CLUSTER          AUTHINFO         NAMESPACE
*         docker-desktop   docker-desktop   docker-desktop

切换 kubectl 操作的上下文到名为 docker-desktop 的上下文

代码语言:javascript
复制
PS C:\Users\Tinywan> kubectl config use-context docker-desktop
Switched to context "docker-desktop".

获取(列出)当前 Kubernetes 集群中的所有节点(Node)的信息

代码语言:javascript
复制
PS C:\Users\Tinywan> kubectl get nodes
NAME             STATUS   ROLES           AGE   VERSION
docker-desktop   Ready    control-plane   60m   v1.27.2

将本地文件 .\kuboard-agent.yaml 中定义的 Kubernetes 资源对象应用到 Kubernetes 集群中。

代码语言:javascript
复制
PS C:\Users\Tinywan> kubectl apply -f .\kuboard-agent.yaml
namespace/kuboard created
serviceaccount/kuboard-admin created
clusterrolebinding.rbac.authorization.k8s.io/kuboard-admin-crb created
serviceaccount/kuboard-viewer created
clusterrolebinding.rbac.authorization.k8s.io/kuboard-viewer-crb created
deployment.apps/kuboard-agent-tinywan created
deployment.apps/kuboard-agent-tinywan-2 created

安装完成,查看导入成功状态,已变成已就绪状态

请选择访问集群时所使用的身份 ServiceAccount kuboard admin
进入集群

部署 Nginx Deployment应用程序

官方教程:https://kuboard.cn/learning/k8s-basics/deploy-app.html#%E5%9C%A8-kubernetes-%E4%B8%8A%E9%83%A8%E7%BD%B2%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F

选择默认命名空间

选择 使用ServiceAccount kuboard-admin 点击 default名称空间,将切换到default `名称空间首页,如下所示:

创建工作负载

点击左侧菜单的 创建工作负载 ,将打开工作负载编辑器,添加【基本信息】如下图所示:

添加【容器信息】如下图所示:

  • 容器名称:tinywan2024nginx
  • 容器镜像:nginx:1.26.0-alpine
  • 容器端口:80

点击保存

查看应用运行时

此时可查看到该应用的部署结果,如下图所示:

点击上图中的代理按钮,可以直接测试部署结果。通过代理访问已部署的 nginx 服务时,默认显示结果如下所示:

使用 curl 访问

执行如下 curl 指令,可以访问 Pod : default/tinywan20240428-748cc6b49b-qtlcn

代码语言:javascript
复制
curl -X GET -i \
    --cookie "KuboardToken=eyJhbGciOiJSUzI1NiIsImtpZCI6IjExY2ExZTI3Mjg3NGVkZmM5OTllYzVkYjNlMzEyYTZkODY3MDkyN2EifQ.eyJpc3MiOiJodHRwOi8vMTkyLjE2OC4zLjI5OjgwODkvc3NvIiwic3ViIjoiQ2dWaFpHMXBiaElIWkdWbVlYVnNkQSIsImF1ZCI6Imt1Ym9hcmQtc3NvIiwiZXhwIjoxNzE0NzkwODMyLCJpYXQiOjE3MTQxODYwMzIsImF0X2hhc2giOiIwQ2h0NWZkUE1MWTdoYVdqb2E1TWZnIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImdyb3VwcyI6WyJhZG1pbmlzdHJhdG9ycyJdLCJuYW1lIjoiU3lzdGVtIEFkbWluaXN0cmF0b3IiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiJ9.TPKgWKb6IHbYNwpIrUz8bMA_rTfWr-VM6iMfoKCDBevGnNuVqSEC22DPCmmTQNOB9pmbIjdfCvYwjaAQZ3nytmi6yD-tl7aV8UDxOF3G8adyhT-1WTwt9CqZJlz5yKByscco6DcUj1QMEi9gcieGkGf9oWlUBdNcbxyZ2rOeAZP37UiCX6jK62T790KISpNRvoXY1hTFJCf_WaQs66ip1e6vKJPCEkhqIVhAAd0eqJ4l8Hl89h2Tts7k3BiFThRfB4ogAVMgndy1aXLq6sNziSci0Pn_pAGvs4tD5sEJYG92-HDUsD1F_-TIBownh3zJVR9Icad6mW7ZipA7ts-jzg; KuboardProxy=Li4yMDI0LTA0LTI3XzIyOjMyOjI0Lk1UQXVNUzR3TGpFeC5mYWxzZS4zYmVkMjU1NGZkZjRiOGQ2YjMxMDM0YTVmYzkwMTdiOA==" \
    http://127.0.0.1:8089/k8s-proxy/Tinywan-k8s/api/v1/namespaces/default/pods/http:tinywan20240428-748cc6b49b-qtlcn:80/proxy/
尝试修改一下 index.html

再次访问

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-27,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 安装 Docker Desktop
    • Docker Desktop 是什么?
      • 安装
      • 开启单节点K8S集群
        • 开启K8S
          • 验证 Kubernetes 集群状态
            • 使用 kubectl
            • 安装Kuboard
              • Kuboard是什么?
                • 安装 Kuboard v3(内建用户库)
                  • 访问 Kuboard v3.x
                    • 添加 Kubernetes 集群到 Kuboard
                      • 导入Kuboard
                        • 请选择访问集群时所使用的身份 ServiceAccount kuboard admin
                          • 进入集群
                          • 部署 Nginx Deployment应用程序
                            • 选择默认命名空间
                              • 创建工作负载
                                • 查看应用运行时
                                  • 使用 curl 访问
                                    • 尝试修改一下 index.html
                                    相关产品与服务
                                    容器服务
                                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                                    http://www.vxiaotou.com