
K8S
SunAlwaysOnline
开始工作的第3年!
展开
-
Kubernetes Informer 详解
文章转自于https://www.kubernetes.org.cn/2693.htmlInformer 基础功能Informer 是 Client-go 中的一个核心工具包。在 Kubernetes 源码中,如果 Kubernetes 的某个组件,需要 List/Get Kubernetes 中的 Object,在绝大多 数情况下,会直接使用 Informer 实例中的 Lister()方法(该方法包含 了 Get 和 List 方法),而很少直接请求 Kubernetes API。Informe转载 2020-12-08 15:19:11 · 1646 阅读 · 1 评论 -
【K8S】Service再了解
关于Service的概念及其实例,可以参考这篇文章【K8S】Service概念及其实例一句话概括Service的作用,Service负责将客户端的请求转发到具有特定标签的Pod上。但是Service和Pod并不是直接相连的,Pod的ip及端口会被保存在Service的EndPoints列表中,查看一个Service的EndPoints的命令是kubectl get endpoin...原创 2020-03-20 18:26:44 · 793 阅读 · 0 评论 -
【K8S】常用命令记录
1、查看所有的namespacekubectl get namespaces结果会显示出每个namespace的状态,包含两种Active和Terminating。在namespace删除过程中,namespace状态被设置成Terminating。2、查看当前集群下的节点信息kubectl get nodes同样,会显示出各个节点的状态,角色(Master、Nod...原创 2020-03-10 16:23:15 · 1161 阅读 · 0 评论 -
【K8S】初识ConfigMap
为了能够准确和深刻理解Kubernetes ConfigMap的功能和价值,我们需要从Docker说起。我们知道,Docker通过将程序、依赖库、数据及配置文件“打包固化”到一个不变的镜像文件中的做法,解决了应用部署的难题,但这同时带来棘手的问题,即配置文件中的参数在运行期间如何修改的问题。我们不可能在启动Docker容器后再修改容器里的配置文件,然后用新的配置文件重启容器里的用户主进程。...原创 2020-01-10 11:21:49 · 973 阅读 · 0 评论 -
【K8S】Service概念及其示例
k8s里的每个Service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解Pod,RC等资源对象其实都是为讲Kubernetes Service做铺垫。下图显示了Pod、RC与Service的逻辑关系。k8s的Service定义了一个服务的访问入口地址,前端的应用通过这个入口地址访问其背后的一组由Pod副本组成的集群实...转载 2020-01-09 14:38:16 · 1185 阅读 · 0 评论 -
【K8S】环境变量
为容器设置一个环境变量创建 Pod 时,可以为其下的容器设置环境变量。通过配置文件的env或者envFrom字段来设置环境变量。本示例中,将创建一个只包含单个容器的 Pod。Pod 的配置文件中设置环境变量的名称为DEMO_GREETING, 其值为"Hello from the environment"。下面是 Pod 的配置文件内容:apiVersion: v1ki...转载 2020-01-06 17:02:18 · 18357 阅读 · 3 评论 -
【K8S】优雅停止Pod
首先我们先简单的分析一下”优雅的停止Pod”优雅停止(Graceful shutdown)这个说法来自于操作系统,比如我们windows关机系统首先会退出软件然后一步步到达关机,而相对的就是硬终止(Hard shutdown),简单的理解就是直接拔电源到了微服务中,网关会把流量分配给每个Pod节点上,比如我们上线更新Pod的时候如果我们直接将Pod杀死,那这部分流量就无法得到正确处理...转载 2020-01-06 14:32:13 · 29103 阅读 · 3 评论 -
【K8S】Pod的状态描述
Pod有以下几个状态:Pending 等待中 Running 运行中 Succeeded 正常终止 Failed 异常停止 Unkonwn 未知状态PendingPod已经被创建,但还没有完成调度,或者说有一个或多个镜像正处于从远程仓库下载的过程。处在这个阶段的Pod可能正在写数据到...原创 2020-01-06 10:11:02 · 17821 阅读 · 2 评论 -
【K8S】健康检查初探
健康检查的意义为了保证集群的稳定性,需要及时的对故障服务进行处理。无论是通过下线的方式,不再将请求转发到该服务,还是通过重启的方式,使服务得以自动恢复,都是有效的处理方式。健康检查的策略而如何检测出服务是否有故障,k8s提供了以下的健康检查策略。livenessProbe 存活性探针 readinessProbe 就绪性探针livenessPr...原创 2020-01-03 16:41:33 · 1394 阅读 · 0 评论 -
【K8S】理解亲和性调度
这次给大家介绍下k8s的亲和性调度:nodeSelector、nodeAffinity、podAffinity、Taints以及Tolerations用法。一般情况下我们部署的 POD 是通过集群自动调度选择某个节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 POD 的调度,比如我们内部的一些服务 gitlab 之类的也是跑在Kubern...转载 2020-01-02 15:43:40 · 3406 阅读 · 0 评论 -
【K8S】DaemonSet和StatefulSet
DaemonSet 的使用通过该控制器的名称我们可以看出它的用法:Daemon,就是用来部署守护进程的,DaemonSet用于在每个Kubernetes节点中将守护进程的副本作为后台进程运行,说白了就是在每个节点部署一个Pod副本,当节点加入到Kubernetes集群中,Pod会被调度到该节点上运行,当节点从集群只能够被移除后,该节点上的这个Pod也会被移除,当然,如果我们删除DaemonSe...转载 2020-01-02 14:02:34 · 1181 阅读 · 0 评论 -
【K8S】何为PV与PVC,如何创建,PVC如何绑定到特定的PV上?
PV与PVC的简介k8s提供了emptyDir,hostPath,rbd,cephfs等存储方式供容器使用,(关于常用的emptyDir与hostPath的简介与区别,可以参考这篇文章【K8S】Volume类型-EmptyDir与HostPath的区别)。不过这些存储方式都有一个缺点:开发人员必须得知指定存储的相关配置信息,才能使用存储。例如要使用cephfs,Pod的配置信息就必须指明c...原创 2019-12-31 15:37:49 · 14907 阅读 · 2 评论 -
【K8S】Volume类型-EmptyDir与HostPath的区别
我们知道,一个运行中的容器,默认情况下,对文件系统的写入,都是发生在其分层文件系统的可写层的,一旦容器运行结束,所有写入都会被丢弃。因此需要支持容器数据的持久化。k8s中通过Volume来提供对容器存储的支持。Volume类型volume是kubernetes Pod中多个容器访问的共享目录。volume被定义在pod上,被这个pod的多个容器挂载到相同或不同的路径下。volum...原创 2019-12-13 16:24:39 · 4854 阅读 · 0 评论 -
浅谈CICD持续集成、持续部署的流程
Jenkins是一个比较流行的持续集成工具GitLab是存储镜像的镜像仓库由客户端将代码push推送到git仓库,gitlab上配置了一个webHook的东西可以触发Jenkins的构建。进入到Jenkins虚线范围内,它所做的事情非常多,从mvn构建代码,对代码进行静态分析,做单元测试,测试通过之后就可以build镜像,镜像构建成功后就把镜像push推送到Harbor镜像仓库中,镜像push...转载 2019-10-09 14:49:18 · 19547 阅读 · 2 评论 -
【K8S】Kubernetes初探
K8S是什么? K8S是Kubernetes的缩写(首字母K+中间8个字母+末尾字母S),是一个高度自动化的资源控制系统,它通过跟踪配置库里保存的“资源期望状态”与当前环境的“实际资源状态”之间的差异来实现自动控制。例如在某节点宕机时,自动迁移服务单元到新的节点上。核心词汇解释(1)镜像 此处的镜像和容器都是docker中的概念,不过这里的镜像与我们常用...原创 2019-09-16 17:29:03 · 2844 阅读 · 0 评论