k8s中的基础概念

k8s可以从硬件和软件两方面来理解:

硬件:

1、节点(Node):类似于手机、平板、电脑

2、集群(Cluster):多个节点组合到一起

3、持久卷(Persistent Volumes):类似于插入到集群中的外部硬盘

软件:

1、容器(Container)

2、Pod:k8s的基本计算单元。Kubernetes不直接运行容器,它将一个或多个容器封装到一个称为Pod的高级结构中。相同Pod中的任何容器都将共享相同的名称空间和本地网络

3、部署(Deployment):管理pod的抽象层。部署的主要目的是声明一个Pod应该同时运行多少个副本。当将部署添加到集群中时,它将自动地旋转加速所需的Pod数量,然后监视它们。如果一个Pod消失,部署将自动重新创建它。

使用部署,你不必手动处理Pod。你只需声明系统的期望状态,它将自动为你管理。

4、网关(Gateway):网关路由,外部由此来访问部署的应用程序

一、k8s的pod

1、获取所有的namespace

bash 复制代码
kubectl get namespaces
kubectl get pods --all-namespaces
kubectl get pods -A

2、部署nginx到项目(demo)中

bash 复制代码
kubectl run nginx --image=nginx --namespace=demo

3、通过label查询pods

官方标签label链接

bash 复制代码
kubectl get pods --namespace=demo -l "app=admin-service"

4、查看pod的日志

bash 复制代码
kubectl logs --namespace=demo -l "app=admin-service"

5、查看pods更多的详细信息

bash 复制代码
kubectl get pods --namespace=demo -l "app=admin-service" -o wide

6、pods相关的命令 官方pod命令链接

二、k8s的控制器

Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为

1、Deployment:适合无状态的服务部署,例如:admin-service

2、StatefullSet:适合有状态的服务部署,例如:MySQL

3、DaemonSet:一次部署,所有的node节点都会部署,例如一些典型的应用场景:

运行集群存储 daemon,例如:在每个Node上运行 glusterd、ceph

在每个Node上运行日志收集daemon,例如:fluentd、logstash

在每个Node上运行监控daemon,例如:"Prometheus Node Exporter

4、Job:一次性的执行任务,例如:数据库初始化

5、Cronjob:周期性的执行任务,例如:定时任务

1、deployment

a、副本 replicas 去设置启动多个少实例

b、spec:设置容器相关的信息:镜像,cpu设置多少,端囗映射、挂载

c、更新策略:

1)、我升级版本了。如果我停掉之前的版本,然后上线新的版本,有一段时间服务不可用

2)、滚动更新就可以不用停止服务

2、如何获取某个pod的deployment

bash 复制代码
kubectl get deployments --namespace=demo -l "app=admin-service" -o yaml > ./admin-service.yaml

3、deployment官方文档

三、k8s的service

service:负责多个 pod之间的负载均衡

1.编辑yaml

kubectl apply 应用yaml配置

2.列出service

bash 复制代码
kubectl get services --namespace=demo -l "app=admin-service-nodeport"

四、k8s的gateway

资源模型

网关 API 有三种稳定的 API:

  • **网关类:**定义一组具有通用配置并由控制器管理的网关 实现类。

  • **网关:**定义流量处理基础架构(例如云负载均衡器)的实例。

  • HTTPRoute: 定义特定于 HTTP 的规则,用于将流量从网关侦听器映射到 后端网络终结点的表示形式。这些节点通常表示为服务.

网关 API 被组织成不同的 API 类型,这些 API 类型具有相互依赖的关系来支持 组织以角色为导向的性质。一个 Gateway 对象只与一个 GatewayClass 相关联;GatewayClass 描述负责管理此类网关的网关控制器。 然后,将一个或多个路由类型(如 HTTPRoute)关联到网关。网关可以过滤可能附加到其监听的路由,从而形成一个带有路由的双向信任模型。

下图说明了三种稳定网关 API 类型的关系:

五、k8s的卷

常用的卷类型:

1、local

2、hostpath

3、cephfs

六、k8s集群架构组件

当你部署完 Kubernetes,便拥有了一个完整的集群。

一组工作机器,称为节点, 会运行容器化应用程序。每个集群至少有一个工作节点。

工作节点会托管 Pod,而 Pod 就是作为应用负载的组件。 控制平面管理集群中的工作节点和 Pod。 在生产环境中,控制平面通常跨多台计算机运行, 一个集群通常运行多个节点,提供容错性和高可用性。

下图是正常运行的 Kubernetes 集群所需的各种组件

相关推荐
年薪丰厚39 分钟前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
zhangj112540 分钟前
K8S Ingress 服务配置步骤说明
云原生·容器·kubernetes
岁月变迁呀42 分钟前
kubeadm搭建k8s集群
云原生·容器·kubernetes
墨水\\42 分钟前
二进制部署k8s
云原生·容器·kubernetes
Source、44 分钟前
k8s-metrics-server
云原生·容器·kubernetes
上海运维Q先生1 小时前
面试题整理15----K8s常见的网络插件有哪些
运维·网络·kubernetes
颜淡慕潇1 小时前
【K8S问题系列 |19 】如何解决 Pod 无法挂载 PVC问题
后端·云原生·容器·kubernetes
ProtonBase1 小时前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
大熊程序猿3 小时前
K8s证书过期
云原生·容器·kubernetes
摸鱼也很难6 小时前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器