Python项目之容器化实践(四) - Kubernetes新手篇

本文介绍了在macOS上安装Kubernetes的三种方法,重点讲解了使用Docker Desktop for Mac的步骤。接着,概述了Kubernetes的架构,包括Master和Node节点的组件。文章详细阐述了Pod、Service、ReplicaSet和Deployment的概念,并通过实例展示了如何创建和管理这些对象。最后,讨论了滚动升级和回滚操作,强调了Deployment在生产环境部署中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Kubernetes (音 kubə'netis) 这个名字来自希腊语,意思是「舵手」或「领航员」,它是一个起源于 Google 的开源项目,允许自动化部署、管理和扩容容器化应用,它现在已成为容器编排的事实标准。

其实 Kubernetes 的简称 k8s 存在感更强,这个简称缘由是单词中间刚好是 8 个字母,这是一种数字缩写 (Numeronym) 方式。类似的如 internationalization (国际化) 叫做 i18n 、 accessibility 叫做 a11y 等。以下如无特别原因均使用它的简称 k8s。

接下来几篇文章将分享我学习和使用它的一些经验,今天是第一篇,先了解 k8s 的架构、核心概念和基本用法。

在 macOS 上安装 Kubernetes

首先需要安装 Kubernetes。有 3 个方法:

Docker Desktop for Mac

在 macOS 上最简单的方法就是安装「Docker Desktop for Mac」,并开启 Kubernetes 支持,可以通过延伸阅读链接 1 的地址下载它,开启 Kubernetes 支持的方法非常简单,需要 2 步:

  1. 使用代理。众所周知,安装过程会请求一些会超时的网站页面,需要设置代理。右键点 Docker 图标选: Preferences -> Proxies,选择手动指定,输入你的代理地址,然后点 Apply && Restart 重启 Docker
  2. 开启 Kubernetes 支持。重启后,右键点 Docker 图标选: Preferences -> Kubernetes Tab,给 Enable Kubernetes 等项打勾再点 Apply ,再点弹出窗口的「Install」项等待完成完成即可

P.S 安装过程中如果有任何问题可以使用延伸阅读链接 2 的检查日志方法去做故障排错,根据日志输出再搜索解决方案。

通过 k8s-docker-desktop-for-mac

可以用我厂平台同学搞的 k8s-docker-desktop-for-mac 项目完成安装~

命令行安装

如果你没有好用的代理,也不想尝试:point_up_2:这个项目,兜底方案是手动安装。第一步先安装 Kubernetes 的命令行客户端 kubectl,再安装一个可以在本地跑起来的 Kubernetes 环境 Minikube、以及给 Minikube 使用的虚拟化引擎 HyperKit:

❯ brew cask install minikube
❯ brew install docker-machine-driver-hyperkit
❯ sudo chown root:wheel /usr/local/bin/docker-machine-driver-hyperkit # 文件路径可以不同,注意终端输出
❯ sudo chmod u+s /usr/local/bin/docker-machine-driver-hyperkit
❯ minikube start --vm-driver hyperkit --image-mirror-country cn # 使用国内镜像

Minikube 默认的虚拟化引擎是 VirtualBox,Hyperkit 是一个更快更轻量的替代。Minikube 自带了 Docker 引擎,所以我们需要重新配置客户端,让 docker 命令行与 Minikube 中的 Docker 进程通讯:

❯ eval $(minikube docker-env)

现在 k8s 就安装完成啦。我们进入正题~

Kubernetes 架构

典型 Kubernetes 集群包含一个 Master 和多个 Node,简单架构如下图所示 (未来 3 张图来源于延伸阅读链接 3):

Master 节点

Master 是集群的控制节点,它负责整个集群的管理和控制 (调度)。这个节点上运行着多个组件,核心的如下:

  • API 服务器 (kube-apiserver)。API Server 对外暴露了 k8s API,提供 HTTP REST 服务。提供了认证、授权、访问控制、API 注册和发现等机制
  • etcd。是一个高可用的键值对存储系统,被用作 k8s 的后端存储,所有集群配置数据都存储在里面,用于服务发现和集群管理,可以说是存了整个集群的状态
  • 控制管理器 (kube-controller-manager)。Controller 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
  • 调度器 (kube-scheduler)。Scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上

看一下 Mater 节点的组件架构效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值