【DevOps】认识 kubernetes

本文详细介绍了Kubernetes,一个用于自动化容器化应用部署、扩展和管理的开源平台。Kubernetes提供了高可用性、可移植性和可扩展性,支持快速部署、扩展和更新应用。关键概念包括Pod、Node、Label与Annotation、Service Discovery等。文章还涵盖了Kubernetes的系统架构、安装组件及常用工具如kubectl、Deployment和Service。

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

容器就是一个视图隔离资源可限制独立文件系统的进程集合。

kubernetes介绍

可以做什么?

通过现代的 Web 服务,用户希望应用程序能够 24/7 全天候使用,开发人员希望每天可以多次发布部署新版本的应用程序。 容器化可以帮助软件包达成这些目标,使应用程序能够以简单快速的方式发布和更新,而无需停机。Kubernetes 帮助您确保这些容器化的应用程序在您想要的时间和地点运行,并帮助应用程序找到它们需要的资源和工具。Kubernetes 是一个可用于生产的开源平台,根据 Google 容器集群方面积累的经验,以及来自社区的最佳实践而设计。


Kubernetes是一个在集群主机间进行自动化部署、扩展和容器操作的提供以容器为中心基础设施的开源平台。

通过Kubernetes,你可以快速有效地响应用户需求:

快速而有预期地部署你的应用
极速地扩展你的应用
无缝铺展新的应用功能
节省资源,优化硬件资源的使用
我们的目标是孕育一个组件和工具的生态系统以资源在公有云和私有云中运行的应用的负担。

Kubernetes特点:
可移植: 支持公有云,私有云,混合云,复合云
可扩展: 模块化,热插拨,可组合
自愈: 自动替换,自动重启,自动复制,自动扩展

Kubernetes 的系统架构
Kubernetes 的系统架构
一个 K8s 集群是由分布式存储(etcd)、服务节点(Minion,etcd 现在称为 Node)和控制节点(Master)构成的。所有的集群状态都保存在 etcd 中,Master 节点上则运行集群的管理控制模块。Node 节点是真正运行应用容器的主机节点,在每个 Minion 节点上都会运行一个 Kubelet 代理,控制该节点上的容器、镜像和存储卷等。

Kubernetes 的架构实现理念
K8s 在实现上述架构时要基于以下架构理念:

只有 API Server 与存储通信,其他模块通过 API Server 访问集群状态。这样第一,是为了保证集群状态访问的安全。第二,是为了隔离集群状态访问的方式和后端存储实现的方式:API Server 是状态访问的方式,不会因为后端存储技术 etcd 的改变而改变。加入以后将 etcd 更换成其他的存储方式,并不会影响依赖依赖 API Server 的其他 K8s 系统模块。
一个工作节点被攻破不能导致整个 K8s 集群被攻破。这是所有分布式系统架构设计中都应该考虑的问题。
考虑网络随时可能断开的情况,没有新配置声明时各模块按照之前的配置声明继续工作。在 K8s 集群中,所有的配置管理操作都声明式而非命令式的,因为声明式操作对于网络故障等分布式系统常见的故障情况更加稳定。
各个模块在内存中缓存自己的相关状态以提高系统性能。
需要监控某个系统状态来做下一步动作的时候,优先考虑观察通知模式,其次再考虑轮询模式,这也是为了提高系统的响应速度

kubernetes核心概念

https://www.zhihu.com/question/37498459

Pod

由一个或多个容器组成的一个单元,一个Pod有一个IP。

Node

就是实体机器或虚拟机,用于部署Pod,Node 为 Kubernetes 提供可用的集群资源用于以保持数据、运行作业、维护工作负载、创建网络路由等。

Label(标签)与 Annotation(注解)

何 Kubernetes 资源都应打上标签以供后续查验;
Annotation 与 Label 非常相似,但通常用于以自由的字符串形式保存不同对象的元数据。

Service Discovery(服务发现)
ReplicaSet(副本集)
DaemonSet(守护进程集)
StatefulSet(有状态集)
Job(任务)
ConfigMap(配置映射)及 Secret(机密配置)
Deployment(部署)
Storage(存储)

kubernetes安装组件

kubernetes的组成

Kubernetes 主控组件(Master) 包含三个进程,都运行在集群中的某个节上,主控组件通常这个节点被称为 master 节点。这些进程包括:kube-apiserver、kube-controller-manager 和 kube-scheduler。

集群中的每个非 master 节点都运行两个进程:
kubelet,和 master 节点进行通信。
kube-proxy,一种网络代理,将 Kubernetes 的网络服务代理到每个节点上。

kubectl

kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署

Deployment

Kubernetes Deployment 检查 Pod 的健康状况,并在 Pod 中的容器终止的情况下重新启动新的容器。Deployment 是管理 Pod 创建和扩展的推荐方法。

kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node

kubectl get deployments

kubectl get pods

kubectl get events

kubectl config view
Service

默认情况下,Pod 只能通过 Kubernetes 集群中的内部 IP 地址访问。要使得 hello-node 容器可以从 Kubernetes 虚拟网络的外部访问,您必须将 Pod 暴露为 Kubernetes Service。

kubectl expose deployment hello-node --type=LoadBalancer --port=8080
kubectl get services
minikube service hello-node

学习资料

中文文档:http://docs.kubernetes.org.cn/

教程:https://kuboard.cn/learning/

官方教程:https://kubernetes.io/zh/docs/tutorials/

中文社区:https://www.kubernetes.org.cn/

入门实践教程:https://1byte.io/developer-guide-to-docker-and-kubernetes/

kubernetes在线交互式学习平台:https://www.katacoda.com/courses/kubernetes

架构设计:https://www.infoq.cn/article/kubernetes-and-cloud-native-applications-part01/?utm_source=tuicool&utm_medium=referral

10000台机器怎么玩儿系列:http://qinghua.github.io/kubernetes-in-mesos-1/

从零搭建kubernetes集群:https://www.jianshu.com/p/78a5afd0c597

https://kubernetes.io/zh/
https://www.zhihu.com/question/37498459

Kubernetes概念篇

Kubernetes

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

名称 Kubernetes 源于希腊语,意为 “舵手” 或 “飞行员”。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践。

部署的时代变迁:
传统时代:硬件->操作系统->APP
虚拟化部署时代:硬件->操作系统->虚拟机->APP
容器部署时代:硬件->操作系统->容器->APP

kubernetes的组成

Kubernetes 主控组件(Master) 包含三个进程,都运行在集群中的某个节上,主控组件通常这个节点被称为 master 节点。这些进程包括:kube-apiserver、kube-controller-manager 和 kube-scheduler。

集群中的每个非 master 节点都运行两个进程:
kubelet,和 master 节点进行通信。
kube-proxy,一种网络代理,将 Kubernetes 的网络服务代理到每个节点上。

kubernetes的对象

Pod、Service、Volumn、Namespace

Controller:Deployment、DaemonSet、StatefulSet、ReplicaSet、Job

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值