容器与 Kubernetes 基本概念与架构

文章目录

    • 1. 典型环境层次结构
    • 2. Kubernetes 生态三大类
      • 2.1 核心组件
      • 2.2 集群管理工具
      • 2.3 生态辅助工具
      • 2.4 资源管理关系
    • 3. Docker 容器技术与实践
      • 3.1 镜像拉取加速
      • 3.2 认证与登录
      • 3.3 常用命令
      • 3.4 存储挂载方式对比
      • 3.5 docker-compose 启动
      • 3.6 容器化应用部署示例
    • 4. kind 快速启动
    • 5. 参考资料

1. 典型环境层次结构

  1. 物理机/宿主机:运行虚拟化或容器化环境的基础硬件。
  2. 虚拟机(可选):部分场景下,容器运行在虚拟机之上,增强隔离性和资源管理。
  3. Docker(或其他容器引擎):负责容器的创建、运行和管理。
  4. Kubernetes:在容器引擎之上,负责容器集群的编排与调度。

2. Kubernetes 生态三大类

Kubernetes 生态可分为三大类:

  • 核心组件:实现集群基本功能,构成 Kubernetes 的分布式系统本体。
  • 集群管理工具:用于集群的安装、模拟、管理和测试。
  • 生态辅助工具:提升开发、部署、运维效率,简化复杂操作。

2.1 核心组件

组件作用简介
kube-apiserver集群 API 服务入口,所有操作都通过它进行。
etcd分布式键值存储,保存集群所有数据。
kube-scheduler负责 Pod 的调度。
kube-controller-manager负责各种控制器(如副本、节点、命名空间等)。
kubelet每个节点上的代理,负责 Pod 的生命周期管理。
kube-proxy负责服务的网络代理和负载均衡。
container runtime容器运行时(如 Docker、containerd),负责容器的创建和管理。

注意:Kubernetes(K8s)不是一个单一可执行程序,而是由多个核心组件(如 kube-apiserver、kubelet、etcd 等)和生态工具协同组成的分布式系统,kubectl 只是常用的客户端入口。

2.2 集群管理工具

工具作用与简要描述
kubeadm官方主流的生产级集群安装和生命周期管理工具,适合自建高可用生产集群。
Kind基于 Docker 容器的本地多节点 Kubernetes 集群工具,便于本地模拟和测试。
Minikube在本地 VM 或容器中运行单节点 Kubernetes,适合个人开发和测试。

2.3 生态辅助工具

工具作用与简要描述
Docker主流的容器运行时,负责容器的打包、分发、运行和隔离。
kubectlKubernetes 官方命令行工具,管理和操作集群资源。
HelmKubernetes 的包管理器,将应用及其所有相关资源打包为 Chart,简化安装、升级和回滚。
Skaffold持续开发工具,自动化构建、部署并同步本地代码到集群,支持多种构建和部署后端。
  • Docker:一切容器化的基础,Kind/Minikube等本地K8s方案都依赖于 Docker 或兼容容器引擎。
  • Kind/Minikube:本地快速搭建 Kubernetes 集群,适合开发、测试和学习。
  • kubectl:与 Kubernetes 集群直接交互的 CLI,所有集群操作的标准入口。
  • Helm:K8s 应用的包管理与部署标准,提升运维效率。
  • Skaffold:本地开发到集群的自动化桥梁,适合持续集成与敏捷开发。

以上工具均为主流开源方案,广泛应用于开发、测试和生产环境。
Chart 就是 Helm 的"打包格式",负责描述、版本化、分享和管理一组 Kubernetes 资源,是 Helm 能够简化应用部署与运维的核心所在。
参考:Kubernetes官方文档

2.4 资源管理关系

  • Node:物理机或虚拟机
  • Pod:容器的运行单元
  • ReplicaSet:管理 Pod 的副本数量
  • Deployment:管理 ReplicaSet,实现应用升级、回滚
  • Service:为 Pod 提供统一入口,负责流量分发

3. Docker 容器技术与实践

3.1 镜像拉取加速

  • 镜像加速配置参考:Docker Hub 国内镜像源配置
  • 配置文件(macOS):~/docker/daemon.json
  • 示例:
    {"registry-mirrors": ["https://mi0m0nd3.mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn"]
    }
    
  • 如遇镜像拉取失败,可用 dig 命令测试 DNS 解析,例如:
    dig @114.114.114.114 registry-1.docker.io
    
  • 支持从私有仓库拉取镜像,例如:
    docker pull 10.132.17.6:28443/nginx
    

3.2 认证与登录

  • 推荐使用代理或科学上网
  • 阿里云镜像仓库登录示例:
    sudo docker login --username=xxx registry.cn-hangzhou.aliyuncs.com
    
  • docker login 会将认证凭据存储在配置文件(如 ~/.docker/config.json),拉取镜像时自动使用。
  • 认证和镜像加速配置均可在 config.json 查看。

安全提示:config.json 中的 auths 字段内容为 base64 编码的用户名和密码,注意保护,不要泄露。
参考:Docker CLI config reference

3.3 常用命令

  • 查看所有容器:docker ps -a
  • 启动容器:docker start <容器名>
  • 停止容器:docker stop <容器名>
  • 重启容器:docker restart <容器名>
  • 查看日志:docker logs <容器名>
  • 进入容器:docker exec -it <容器名> /bin/bash
  • 删除容器:docker rm <容器名>
  • 查看挂载:docker inspect <容器ID> | grep -A 5 "Mounts"
  • 批量删除某类容器:
    docker ps --filter "name=llm" --format '{{.ID}}' | xargs docker rm -f
    
  • 其他常用命令:
    • 查看卷:docker volume ls
    • 查看详细信息:docker inspect <容器名或ID>
    • 保存镜像为文件:docker save <镜像ID> -o <文件名>
    • 构建镜像:docker build -t <镜像名> .

3.4 存储挂载方式对比

特性命名卷(-v volume_name:/container/path)宿主机目录挂载(-v /host/path:/container/path)
可移植性更好,不依赖宿主机路径较差,依赖宿主机目录结构
备份管理由 Docker 集中管理需手动管理宿主机目录
访问便捷性不易直接访问内容可直接在宿主机上查看和修改
性能取决于 Docker 存储驱动直接访问宿主机文件系统
用途应用数据、数据库存储代码开发、配置文件、日志输出

3.5 docker-compose 启动

docker-compose --compatibility up -d

如使用代理,需确保 Docker Desktop 已开启代理。

3.6 容器化应用部署示例

PostgreSQL 15 容器部署:

docker run --name postgres15 \-p 5432:5432 \-e POSTGRES_PASSWORD=your_password \-v postgres_data:/var/lib/postgresql/data \-d postgres:15-alpine

4. kind 快速启动

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.27.0/kind-linux-amd64
chmod +x kind && sudo mv kind /usr/local/bin/
kind create cluster

验证 API Server 是否正常响应:

kubectl --context kind-kind get --raw /

5. 参考资料

  • Kubernetes官方文档
  • Docker Hub国内镜像源配置
  • minikube常见问题解答
  • Docker万字教程:从入门到掌握
  • Docker CLI config reference

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/87826.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/87826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ajax和Axios的初步学习

Ajax 一、什么是 Ajax&#xff1f; Ajax (Asynchronous JavaScript and XML) 是一种无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。通过在后台与服务器进行少量数据交换&#xff0c;Ajax 可以使网页实现异步更新。 主要特性&#xff1a; 异步性 (Asynch…

C#指针:解锁内存操作的底层密码

C#指针&#xff1a;解锁内存操作的底层密码 在 C# 的世界里&#xff0c;我们习惯了托管代码带来的安全与便捷 —— 垃圾回收器自动管理内存&#xff0c;类型系统严格检查数据操作&#xff0c;就像在精心维护的花园中漫步&#xff0c;无需担心杂草与荆棘。但当性能成为关键瓶颈…

永洪科技荣获商业智能品牌影响力奖,全力打造”AI+决策”引擎

近日&#xff0c;在备受业界瞩目的年度商业智能领域权威评选中&#xff0c;永洪科技凭借卓越的技术实力、深度的客户价值创造能力与前瞻的行业洞察&#xff0c;成功斩获“2025商业智能品牌影响力奖”。这一奖项不仅是对永洪科技市场地位与品牌声量的高度认可&#xff0c;更是对…

在SSM+vue项目中上传表单数据和文件

从前端向后端发送multipart/form-data 类型数据&#xff08;主要用于文件上传或表单提交&#xff09;如发送如下信息&#xff1a;前端代码vue文件&#xff1a;&#xff08;配置了服务器代理&#xff09;<template><div class"content"><el-form :mode…

Python 机器学习核心入门与实战进阶 Day 1 - 分类 vs 回归

✅ 今日目标 理解分类&#xff08;Classification&#xff09;与回归&#xff08;Regression&#xff09;的本质区别掌握两种任务的典型使用场景学会根据任务类型选择合适的模型了解每类模型对应的评估指标 &#x1f4d8; 一、监督学习的两大任务类型 任务类型输出结果典型问…

RPC--自定义注解注册发布服务

自定义的三个注解1、RpcReference这个注解用于修饰类的某个字段&#xff0c;表示这个字段是远程调用的引用下面详细解释下这个字段的定义Document表示这个注解应该被javadoc文档工具记录&#xff0c;生成API文档时使用了该注解的地方会被显示出来Retention表示这个注解的声明周…

Web 3D可视化引擎HOOPS Communicator,高效赋能工业级应用开发!

在数字化转型加速的今天&#xff0c;企业面临着前所未有的挑战——如何高效管理跨平台的设计数据、提升团队协作效率&#xff0c;并加快产品上市速度。HOOPS Communicator作为一款高性能的3D可视化与共享平台&#xff0c;凭借其强大的兼容性、先进的3D渲染引擎和无缝的协作功能…

OceanBase数据库迁移工具介绍和部署

OceanBase数据库迁移工具介绍和部署核心组件迁移支持部署要求单节点部署查看日志OceanBase 迁移服务&#xff08;OceanBase Migration Service, OMS&#xff09;是OceanBase数据库提供的一种支持同构或异构数据源与OceanBase数据库之间进行数据交互的服务&#xff0c;具备在线迁…

栈与队列:算法基础的核心差异

理解栈和队列的异同对打好算法基础太重要了&#xff01;它们都是编程和算法中无处不在的线性数据结构&#xff0c;核心区别在于操作数据的顺序。下面我来帮大家清晰梳理它们的异同点&#xff1a;一、相同点都是线性数据结构&#xff1a;数据元素之间逻辑上呈现“一个接一个”的…

HCIA-生成数协议(STP)

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 ​ 本篇笔记是根据B站上的视频教程整理而成&#xff0c;感谢UP主的精彩讲解&#xff01;如果需要了解更多细节&#xff0c;可以参考以下视频&#xf…

基于内网穿透技术的Stable+Diffusion+3.5本地化部署与远程图像生成架构

文章目录 前言1. 本地部署ComfyUI2. 下载 Stable Diffusion3.5 模型3. 演示文生图4. 公网使用Stable Diffusion 3.5 大模型4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 在数字内容创作行业中&#xff0c;利用本地化服务器进行人工智能部署的策略正逐步成为优化制作…

私有云平台实战-OpenStack入门体验

目录 #1.1云计算概述 1.1.1什么是云计算 1.1.2云计算的服务模型 1.1.3OpenStack概述 #2.1OpenStack一键部署 2.1.1在线安装 2.1.2使用本地仓库离线安装 2.1.3创建云主机 1.1云计算概述 云计算是一种基于互联网的计算方式&#xff0c;通过网络将共享的软硬件资源和信息按需提供…

专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载

原文链接&#xff1a;https://tecdat.cn/?p42808 即时零售的崛起正在重塑消费市场的时间与空间边界。从清晨的第一杯咖啡到深夜的应急零食&#xff0c;消费者的需求不再受限于传统营业时间。与此同时&#xff0c;不同人群的消费习惯呈现出鲜明差异&#xff0c;Z世代沉迷线上娱…

【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)

以下是五大核心算法的重点解析和LeetCode经典题解&#xff0c;包含最优解法和模板代码&#xff1a;一、数组操作&#xff08;双指针/滑动窗口&#xff09;核心思想&#xff1a;通过索引指针高效遍历与操作数组1. 移动零&#xff08;No.283&#xff09;def moveZeroes(nums):slo…

CSS之基础语法一文全解析

CSS之基础语法一文全解析 一、CSS语法核心结构&#xff1a;选择器声明块1.1 基础语法模板1.2 关键组成部分 二、选择器全解析&#xff1a;精准定位目标元素2.1 基础选择器&#xff08;必掌握&#xff09;2.1.1 标签选择器&#xff08;类型选择器&#xff09;2.1.2 类选择器&…

vue 前端动态导入文件 import.meta.glob 导入图片

背景&#xff1a; 在开发过程中&#xff0c;前端会引入资源文件&#xff0c;这里主要是引入图片。在开发环境&#xff0c;导入的图片显示正常&#xff0c;但是打包部署后&#xff0c;导入的图片就不能正常显示。 原因分析&#xff0c;可能有如下几点&#xff1a; 1.图片不能显示…

RocketMQ-Dashboard页面报Failed to fetch ops home page data错误

今天安装RocketMQ-Dashboard&#xff0c;访问主页&#xff0c;页面弹框提示Failed to fetch ops home page data&#xff0c;F12发现控制台输出网络请求跨域。解决&#xff1a;不要用127.0.0.1访问&#xff0c;用localhost就不报错了

0704-0706上海,又聚上了

上次&#xff0c;还是0413&#xff0c;当时写了一篇&#xff0c;下次相见是何时&#xff1f;也鼓励自己下次相见是找到工作&#xff08;实习也算&#xff09;&#xff0c;没想到真找到了&#xff0c;DW App 说到实习&#xff0c;其实没认真投递很多&#xff0c;互联网公司除了阿…

【win电脑-程序CMD自启动问题-开机就自启动-查找原因-解决方式】

【win电脑-程序CMD自启动问题-开机就自启动-查找原因-解决方式】 1&#xff0c;情况说明&#xff1a;2&#xff0c;问题描述1-这是什么窗口 2-原因分析&#xff1a;3-我的努力-尝试解决&#xff1a;1&#xff0c;任务管理器中查看状态2&#xff0c;查看启动文件夹3&#xff0c;…

Go语言实现双Token登录的思路与实现

Go语言实现双Token登录的思路与实现 引言 在现代Web应用中&#xff0c;身份认证是保障系统安全的重要环节。传统的单Token认证方式存在一些安全隐患&#xff0c;如Token泄露可能导致长期风险。双Token机制&#xff08;Access Token Refresh Token&#xff09;提供了更好的安全…