【Kubernetes】K8s 实践之旅

本篇博客是博主学习 Kubernetes 的实践总结。

在这里插入图片描述

1.基础概念

Kubernetes 是一个可移植的、可扩展的、用于管理容器化工作负载和服务的开源平台,它简化(促进)了声明式配置和自动化。它有一个庞大的、快速增长的生态系统。Kubernetes 的服务、支持和工具随处可见。

Kubernetes 一词源于希腊语,意为舵手或飞行员。 2014 2014 2014 年,谷歌开放了 Kubernetes 项目的源代码。Kubernetes 基于谷歌在大规模运行生产工作负载方面的 15 15 15 年经验,以及来自社区的最佳想法和实践。

序号
博客
1Kubernetes 概述
2微内核的分布式操作系统 Kubernetes
3Pod、Container、Node、Cluster

2.Pod 详解

Pod 是 Kubernetes 中的一个 逻辑单位,它代表集群中正在运行的一个进程,是 Kubernetes 集群中的一个应用实例,由一个或者多个容器组成。在 Pod 中还可以包含数据的持久化存储、网络配置等资源。Pod 支持多种容器的执行环境,而 Docker 则是 Pod 最常见的 执行环境。Pod 也支持用其他容器引擎作为执行环境。

序号
博客
1Pod 的概念、使用方法、容器类型
2Pod 的生命周期(一):Pod 阶段与状况、容器的状态与重启策略
3Pod 的生命周期(二):Pod 的健康检查之容器探针
4Pod 状态速查表
5Pod 的调度策略
6Pod 资源调度之亲和性调度
7Pod 驱逐
8Pod 的配置管理(一):ConfigMap
9Pod 的配置管理(二):Secret

3.Deployment 控制器

Kubernetes 通过创建 控制器 来管理 Pod 的生命周期。为了满足不同需求的场景,Kubernete 提供了不同的控制器,如 DeploymentDaemonSetJobCronJobStatefuleSet 等。

序号
博客
1Deployment 控制器
2Deployment 的创建和使用(实战)
3Deployment 的状态
4Deployment 的清理策略及编写规则
5应用的部署(一):金丝雀部署
6应用的部署(二):蓝绿部署 & 滚动部署

4.Service 服务

在 Kubernetes 中部署的应用可能对应一个或者多个 Pod,而每个 Pod 又具有独立的 IP 地址。Service(服务)能够为一组功能相同的 Pod 提供统一不变的访问地址,使得集群具有稳定的 IP 地址(即 Cluster IP 地址),从而使在集群内部能够通过该 Cluster IP 地址将客户端请求路由到集群中的一个 Pod 上,从而实现客户端与 Pod 的通信。

序号
博客
1Service 概念与实战
2Service 类型:NodePort、ClusterlP、LoadBalancer、ExternalName
3虚拟 IP 与 Service 的代理模式
4集群外部的请求访问集群内应用的最佳方式:Ingress

5.持久化存储

由于容器是一种无状态的服务,所以容器中的文件在宿主机上表现出来的都是临时存放(当容器崩溃或者重启时,容器中的文件会丢失)。另外,Kubernetes 也需要在 Pod 之间实现数据共享。为了解决这些问题,Kubernetes 与 Docker 一样,也通过使用 数据卷 的方式来实现 数据持久化

序号
博客
1K8s 持久化存储方式
2持久卷 PV
3持久卷声明 PVC
4持久卷的动态供给 Dynamic Provisioning

6.安全认证

Kubernetes 作为一个分布式的虚拟化集群管理工具,保证其集群的安全性就显得非常重要。由于 API Server 是访问集群资源的唯一入口,因此 Kubernetes 的安全机制都是围绕保护 API Server 来设计的。

序号
博客
1K8s 的安全框架和用户认证
2K8s 的鉴权管理(一):基于角色的访问控制(RBAC 鉴权)
3K8s 的鉴权管理(二):基于属性 / 节点 / Webhook 的访问控制
4服务账号 Service Account

7.kubectl 命令

从用户的角度来看,kubectl 是你控制 Kubernetes 的驾驶舱。它允许您执行所有可能的 Kubernetes 操作。从技术角度来看,kubectl 是 Kubernetes API 的客户端。

Kubernetes API 是一个 HTTP REST API。这个 API 是真正的 Kubernetes 用户界面。 Kubernetes 完全通过该 API 进行控制。这意味着每个 Kubernetes 操作都作为 API 端点公开,并且可以通过对此端点的 HTTP 请求来执行。

因此,kubectl 的主要工作是向 Kubernetes API 执行 HTTP 请求。

序号
博客
1什么是 kubectl
2kubectl 常用命令
3如何使用 kubectl 操作 cluster、node、namespace、pod

8.实际应用

Helm 对于 Kubernetes 来说就相当于 Yum 对于 Centos 来说,如果没有 Yum 的话,我们在 Centos 下面要安装一些应用程序是极度麻烦的,同样的,对于越来越复杂的 Kubernetes 应用程序来说,如果单纯依靠我们去手动维护应用程序的 YAML 资源清单文件来说,成本也是巨大的。

序号
博客
1用 Helm 来简化 K8s 应用管理
2基于 KubeSphere 的 Kubernetes 生产实践之旅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G皮T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值