![](https://img-blog.csdnimg.cn/20210522092756306.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Kubernetes
文章平均质量分 80
K8S
途径日暮不赏丶
开源是一种精神、
展开
-
K8S 安全认证机制(认证、授权(Role/ClusterRole/ClusterRole/ClusterRoleBinding)、准入控制)
文章目录一、访问控制概述二、认证管理三、授权管理Role、ClusterRoleRoleBinding、ClusterRoleBindingRoleBinding引用ClusterRole进行授权实例四、准入控制一、访问控制概述Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。 所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。客户端在Kubernetes集群中,客户端通常有两类:User Account: 一般是独立于kubern原创 2021-06-10 11:35:28 · 2981 阅读 · 0 评论 -
K8S 数据卷volumes之Secret
文章目录一、Secret介绍二、Secret的创建(一)通过命令行创建secret1. 通过文件创建secret2. 通过文件夹创建secret3. 命令行声明键值对创建secret(二)通过资源清单文件创建secret三、Secret的使用1. 将Secret中的数据设置为容器的环境变量2. 使用Volume将Secret作为文件或目录挂载一、Secret介绍应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥。将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解原创 2021-06-09 21:48:32 · 2172 阅读 · 0 评论 -
K8S 数据卷volumes之ConfigMap
ConfigMap介绍ConfigMap是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。ConfigMap是一种API对象,用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap可以将环境变量配置信息和容器镜像解耦,便于应用配置的修改。如果需要存储加密信息时可以使用Secret对象。ConfigMap创建通过命令行创建configmap可以使用 kubectl create configmap 从文件、目录或者 key-value 字符串原创 2021-06-09 12:56:12 · 2508 阅读 · 0 评论 -
K8S数据存储(高级存储之 PV、PVC、PV和PVC生命周期)
文章目录一、高级存储(一)PV(二)PVC二、PV和PVC生命周期一、高级存储使用NFS提供存储,此时就要求用户会搭建NFS系统,并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用户使用,kubernetes引入PV和PVC两种资源对象。PV (Persistent Volume)是持久化卷的意思,是对底层的共享存储的一种抽象。一般情况下PV由kubernetes管理员进行创建和配置,它与底层具体的共享存储技术原创 2021-06-08 18:20:56 · 2037 阅读 · 1 评论 -
K8S数据存储(基本存储之 EmptyDir、HostPath、NFS )
容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,kubernetes通过Volume实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。Volume的生命容器不与Pod中单个容器的生命周期相关,·。kube原创 2021-06-08 12:40:34 · 1365 阅读 · 0 评论 -
K8S之Ingress资源
Service对集群之外暴露服务的主要方式有两种: NotePort和LoadBalancer, 但是这两种方式,都有一定的缺点:NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显LB方式的缺点是每个service需要一个外部LB设备,浪费、麻烦。并且需要kubernetes之外设备的支持基于这种现状,kubernetes提供 了Ingress资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴露多个Service的需求。工原创 2021-06-07 21:28:01 · 913 阅读 · 0 评论 -
K8S之Service (ClusterIP/HeadLiness/NodePort/LoadBalancer/ExternalName)
在kurbernetes中,pod是应用程序的载体,可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Sevice的入口地址就能访问到后面的pod服务Service在很多情况下只是一个概念,真正起作用的其实是 kube-proxy 服务进程,每个Node节点上都运行着一个 kube转载 2021-06-07 12:45:11 · 1138 阅读 · 0 评论 -
K8S之Pod控制器CronJob(CJ)
CronJob控制器以Job控制器资源为其管控对象,并借助它管理pod资源对象,Job控制器定义的作业任务在其控制器资源创建之后便会立即执行,但CronJob可以以类似于Linux操作系统的周期性任务作业计划的方式控制其运行时间点及重复运行的方式。也就是说,CronJob可以在特定的时间点(反复的)去运行job任务。CronJob资源清单文件apiVersion: batch/v1beta1 # 版本号kind: CronJob # 类型 metadata: # 元数据 na原创 2021-06-06 21:39:31 · 426 阅读 · 0 评论 -
K8S之Pod控制器 Job
Job,主要用于负责批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)任务。Job特点如下:当Job创建的pod执行成功结束时,Job将记录成功结束的pod数量当成功结束的pod达到指定的数量时,Job将完成执行Job资源清单文件apiVersion: batch/v1 # 版本号kind: Job # 类型 metadata: # 元数据 name: # rs名称 namespace: # 所属命名空间 lab原创 2021-06-05 19:01:53 · 470 阅读 · 0 评论 -
K8S之Pod控制器DaemonSet(DS)
DaemonSet类型的控制器可以保证在集群中的每一台(或指定)节点上都运行一个副本。一般适用于日志收集、节点监控等场景。也就是说,如果一个Pod提供的功能是节点级别的(每个节点都需要且只需要一个),那么这类Pod就适合使用DaemonSet类型的控制器创建。DaemonSet控制器的特点:每当向集群中添加一个节点时,指定的 Pod 副本也将添加到该节点上当节点从集群中移除时,Pod 也就被垃圾回收了DaemonSet的资源清单文件apiVersion: apps/v1 # 版本号ki原创 2021-06-04 22:15:34 · 1011 阅读 · 0 评论 -
K8S之Pod控制器HPA
可以通过手工执行kubectl scale命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标–自动化、智能化。Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler(HPA)这种控制器。HPA可以获取每个Pod利用率,然后和HPA中定义的指标进行对比,同时计算出需要伸缩的具体值,最后实现Pod的数量的调整。其实HPA与之前的Deployment一样,也属于一种Kubernetes资源对原创 2021-06-04 15:26:07 · 1948 阅读 · 1 评论 -
K8S之Pod控制器Deployment(Deploy)
文章目录基本介绍Deployment的资源清单文件创建deployment扩缩容镜像更新基本介绍为了更好的解决服务编排的问题,kubernetes在V1.2版本开始,引入了Deployment控制器。值得一提的是,Deployment控制器并不直接管理pod,而是通过管理ReplicaSet来间接管理Pod,即:Deployment管理ReplicaSet,ReplicaSet管理Pod。所以Deployment比ReplicaSet功能更加强大。Deployment主要功能有下面几个:支持R原创 2021-06-03 11:23:31 · 3193 阅读 · 0 评论 -
K8S之Pod控制器ReplicaSet(RS)
RC (ReplicationController )主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数 。即如果有容器异常退出,会自动创建新的Pod来替代;而如果异常多出来的容器也会自动回收Kubernetes 官方建议使用 RS(ReplicaSet ) 替代 RC (ReplicationController ) 进行部署,RS 跟 RC 没有本质的不同,只是名字不一样,并且 RS 支持集合式的 selector (选择标签)[root@k8s-master ~]# vim rs.y原创 2021-06-02 19:47:33 · 1087 阅读 · 0 评论 -
K8S之Pod控制器概述
什么是控制器Kubernetes 中内建了很多 controller(控制器),这些相当于一个状态机,用来控制 Pod 的具体状态和行为控制器类型ReplicationController 和 ReplicaSetDeploymentDaemonSetStateFulSetJob/CronJobHorizontal Pod AutoscalingReplicationController 和 ReplicaSetReplicationController(RC)用来确保容器应用的副本原创 2021-06-02 17:25:08 · 244 阅读 · 0 评论 -
Pod调度(定向调度NodeName/NodeSelector亲和性调度NodeAffinity/PodAffinity/PodAntiAffinity污点Taints和容忍调度Toleration)
文章目录pod调度概述定向调度nodeNamenodeSelector亲和性调度pod调度概述在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做呢?这就要求了解kubernetes对Pod的调度规则。kubernetes提供了四大类调度方式:自动调度:运行在哪个节点上完全由Scheduler经过一系列的算法计算得出定向原创 2021-06-02 11:41:20 · 1046 阅读 · 0 评论 -
k8s生命周期---pod重启策略
一旦容器存活探测出现了问题,kubernetes就会对容器所在的pod进行重启,其实这是由pod的重启策略决定的,pod的重启策略有3种,分别如下:Always:容器失效时,自动重启该容器,这也是默认值。OnFailure :容器终止运行且退出码不为0(异常终止)时重启Never :不论状态为何,都不重启该容器重启策略适用于pod对象中的所有容器,首次需要重启的容器,将在其需要时立即进行重启,随后再次需要重启的操作将由kubelet延迟一段时间后进行,且反复的重启操作的延迟时长以此为10s、20原创 2021-06-01 15:38:14 · 956 阅读 · 0 评论 -
k8s生命周期---容器探测
健康检查Kubernetes 作为一个面向应用的集群管理工具,需要确保容器在部署后确实处在正常的 运行状态。Kubernetes 提供了两种探针(Probe,支持 exec、tcpSocket 和 http 方式) 来探测容器的状态:Pod 通过两类探针检查容器的健康状态:LivenessProbe 探针用于判断容器是否健康,告诉 Kubelet 一个容器什么时候 处于不健康的状态。如果 LivenessProbe 探针探测到容器不健康,则 Kubelet 将删 除该容器,并根据容器的重启策略做原创 2021-05-31 22:23:02 · 433 阅读 · 0 评论 -
K8S生命周期---钩子函数(postStart/preStop)
s原创 2021-05-31 16:45:02 · 5817 阅读 · 0 评论 -
K8S生命周期---初始化容器(Init Container)
Init 容器Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。你可以在 Pod 的规约中与用来描述应用容器的 containers 数组平行的位置指定 Init 容器。理解 Init 容器每个 Pod 中可以包含多个容器, 应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 Init 容器。Init 容器与普通的容器非常像,除了如下两点:它们总是运行到完成。每个都必须在下一个启动之前成原创 2021-05-30 21:19:52 · 1719 阅读 · 0 评论 -
Pod生命周期概述
文章目录一、概述创建和终止一、概述一般将pod对象从创建至结束的这段时间范围成为pod的生命周期,它主要包含下面的过程:pod创建过程运行初始化容器(init container)过程(可多可少,可有可无)运行主容器(main container)过程容器启动后执行的钩子函数(post start),容器终止前执行的钩子函数( pre stop)容器的存活性探测(liveness probe)、就绪性探测(readiness probe)pod终止过程在整个生命周期中,pod会原创 2021-05-28 12:15:15 · 1946 阅读 · 0 评论 -
pod结构和定义
https://blog.csdn.net/qq_41622739/category_10812126.htmlPod结构每个pod都可以包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少pause容器,这是每个pod都会有的一个根容器,它的作用是两个:可以根据它作为依据,评估整个pod的健康状态可以在根容器上设置ip地址,其他容器共享此ip(Pod Ip)以实现 pod内部的网络通信 (这里是pod内部的通信,pod的之间的通讯采用虚拟二层网络技术来实现,我们当原创 2021-05-26 22:24:04 · 1044 阅读 · 0 评论 -
K8S常用资源认识
Namespacenamespace是kubernetes系统中的一种非常重要的资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes 集群中的所有Pod都是可以相互访问的。但是在实际中,可能不希望让2个Pod之间进行相互访问,此时即可将两个Pod划分到不同的namespace下。Kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的“组”,以方便不同的组的资源进行隔离使用和管理。可以通过kubernetes的授权机制,原创 2021-05-26 12:02:55 · 2999 阅读 · 0 评论 -
K8S之资源管理
文章目录一、K8S中的资源二、YAML语言三、资源管理方式一、K8S中的资源在kuberbnetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kuberneteskubernetes的本质就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。Kubernetes的最小管理单元是Pod而不是容器,所以只能将容器放在 Pod 中,而Kubernetes一般也不会直接管理Pod,而是通过 Pod控制器原创 2021-05-24 22:23:53 · 487 阅读 · 1 评论 -
K8S集群环境搭建
集群类型kubernetes 集群大体上分为两类: 一主多从 和 多主多从 。一主多从:一台 Master 节点和多台 Node 节点,搭建简单,但是有单机故障风险,适合用于测试环境多主多从:多台Master 节点和多台 Node 节点,搭建麻烦,安全性高,适合用于生产环境安装方式kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包minikube:一个用于快速搭建单节点kubernetes的工具kubeadm:一个用于快速搭建kubernet原创 2021-05-22 22:23:38 · 649 阅读 · 0 评论 -
kubernetes 介绍
应用部署方式演变在部署应用程序方式上,主要经历了三个时代:传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其他技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境优点:程序环境不会互相产生影响,提供了一定程度的安全性缺点:增加了操作系统,浪费了部分资源容器化部署:与虚拟化类似,但是共享了操作系统优点:可以保证每个容器拥有自己的文件系统,CP转载 2021-05-22 09:48:27 · 145 阅读 · 0 评论