初识kubernetes

本文介绍了Kubernetes架构中的关键组件,如Master节点、Node、Kubelet和KubeProxy,以及Pod、pause容器、资源管理和网络通信机制。同时涵盖了集群部署工具如minikube和kubeadm,以及Service、ReplicaSet和Deployment的管理。

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

Kubernetes核心概念

Master

Master节点主要负责资源调度(Scheduler),控制副本(Replication Controller),和提供统一访问集群的入口(API Server)。---核心节点也是管理节点

Node

Node是Kubernetes集群架构中运行Pod的服务节点(亦叫agent或minion)。Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机,由Master管理,并汇报容器状态给Master,当Node节点宕机(NotReady状态)时,该节点上运行的Pod会被自动地转移到其他节点上。
​
Kubelet组件---Kubelet会从API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server。
​
KuberProxy组件--实现将客户端请求流量转发到内部的pod资源。
​
Docker Engine(docker)组件,Docker引擎,负责本机的容器创建和管理工作; 

Node IP

   Node节点的IP地址,是Kubernetes集群中每个节点的物理网卡的IP地址,是真是存在的物理网络,所有属于这个网络的服务器之间都能通过这个网络直接通信; 

Pod

Pod直译是豆荚,可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是豆荚(一个Pod)。处于同一个Pod中的容器共享同样的存储空间(Volume,卷或存储卷)、网络命名空间IP地址和Port端口。在k8s中我们不会直接操作容器,而是把容器包装成Pod再进行管理
​
运行于Node节点上,Pod是k8s进行创建、调度和管理的最小单位.一个Pod可以包含一个容器或者多个相关容器。
 
Pod 就是 k8s 世界里的"应用";而一个应用,可以由多个容器组成。

1584847102040

pause容器

每个Pod中都有一个pause容器,pause容器做为Pod的网络接入点,Pod中其他的容器会使用容器映射模式启动并接入到这个pause容器。

Pod IP

 Pod的IP地址,是Docker Engine根据docker0网桥的IP地址段进行分配的,通常是一个虚拟的二层网络,位于不同Node上的Pod能够彼此通信,需要通过Pod IP所在的虚拟二层网络进行通信,而真实的TCP流量则是通过Node IP所在的物理网卡流出的 

1584847199864

资源限制:

每个Pod可以设置限额的计算机资源有CPU和Memory; 

1584847373945

Pod Volume:

 Docker Volume对应Kubernetes中的Pod Volume;数间共享数据。

Event

是一个事件记录,记录了事件最早产生的时间、最后重复时间、重复次数、发起者、类型,以及导致此事件的原因等信息。Event通常关联到具体资源对象上,是排查故障的重要参考信息

Endpoint(pod IP+容器Port)

标识服务进程的访问点;

ReplicaSet

确保任何指定的Pod副本数量,并提供声明式更新等功能。 

Deployment

Deployment是一个更高层次的API对象,它管理ReplicaSets和Pod,并提供声明式更新等功能。
​
官方建议使用Deployment管理ReplicaSets,而不是直接使用ReplicaSets,这就意味着可能永远不需要直接操作ReplicaSet对象,因此Deployment将会是使用最频繁的资源对象。  

RC-Replication Controller

Replication  Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。集群中副本的数量大于指定数量,则会停止指定数量之外的多余pod数量,反之,则会启动少于指定数量个数的容器,保证数量不变。Replication  Controller是实现弹性伸缩、动态扩容和滚动升级的核心。

Service

Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。它有暴露内部服务的端口到外网的能力。Service提供了一个统一的服务访问入口以及服务代理和发现机制,用户不需要了解后台Pod是如何运行。
​
一个service定义了访问pod的方式,就像单个固定的IP地址和与其相对应的DNS名之间的关系。
service分为两种ip地址:
一种是对内的叫Cluster IP ,一种是对外的叫external ip:
实现对外ip方式分为:
1.NodePort:通过每个 Node 上的 IP 和内部服务暴露出来的静态端口实现暴露服务。
2.LoadBalancer:使用云提供商的负载均衡器.
3.ingress:使用负载均衡软件实现负载均衡,向外部暴露服务。

1584847713520

Cluster IP

Service的IP地址,特性:
专门给集群内部资源访问的。在k8s集群里面部署的容器,用内部的容器可以访问这个ip地址。但是集群外面的机器不能访问。
​
1.无法被Ping通;
2.Node IP、Pod IP、Cluster IP之间的通信,采用的是Kubernetes自己设计的一种编程方式的特殊的路由规则,与IP路由有很大的不同

Label---标签与Selectors---选择器

 Kubernetes中的任意API对象都是通过Label进行标识,Label的实质是一系列的K/V键值对。Label是Replication Controller和Service运行的基础,二者通过Label来进行关联Node上运行的Pod。
 比如,你可能创建了一个"tier"和“app”标签,通过Label(tier=frontend, app=myapp)来标记前端Pod容器,使用 Label(tier=backend, app=myapp)标记后台Pod。然后可以使用 Selectors 选择带有特定Label的Pod,并且将 Service 或者 Replication Controller 应用到上面。
​
 一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可识别的属性。

注:Node、Pod、Replication Controller和Service等都可以看作是一种"资源对象",几乎所有的资源对象都可以通过Kubernetes提供的kubectl工具执行增、删、改、查等操作并将其保存在etcd中持久化存储。

一. 常用镜像库

daocloud的docker镜像库:
daocloud.io/library
​
docker-hub的k8s镜像库:
mirrorgooglecontainers

aliyun的k8s镜像库:

registry.cn-hangzhou.aliyuncs.com/google-containers

docker镜像仓库

aliyun的docker镜像库web页面:
https://cr.console.aliyun.com/cn-hangzhou/images
​
google的镜像库web页面:
https://console.cloud.google.com/gcr/images/google-containers?project=google-containers

目录

Kubernetes核心概念

二. 常用镜像库

三.集群部署方式


二.集群部署方式

  • 方式1. minikube

Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。
​
官方地址:https://kubernetes.io/docs/setup/minikube/ 
  • 方式2. kubeadm

Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。
​
官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/ 
  • 方式3. 直接使用epel-release yum源,缺点就是版本较低 1.5

  • 方式4. 二进制包

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值