![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kubernetes
那记忆微凉
大数据+云计算+区块链+微服务+机器视觉
展开
-
边缘容器介绍(ACK Edge Kubernetes)
简介:一. 边缘计算随着互联网智能终端设备数量的急剧增加,以及5G和物联网时代的到来,传统云计算中心集中存储、计算的模式已经无法满足终端设备对于时效、容量、算力的需求,将云计算的能力下沉到边缘侧、设备侧,并通过中心进行统一交付、运维、管控,将是云计算的重要发展趋势。IDC预计,到2020年全球将有超过500亿的终端与设备联网,超过40%的数据要在网络边缘侧进行分析、处理与存储,这对边缘计算提供了充分的场景和想象空间。边缘计算按功能角色主要分为三个部分:云 – 传统云计算的中心节点,有丰富的云计算产品原创 2020-10-26 15:00:06 · 2349 阅读 · 4 评论 -
k8s批量删除Evicted Pods
1、查询pod状态[root@k8s_master prom]# kubectl -n kube-system get pods | grep Evictedcoredns-67cb7b5f46-2crxg 0/1 Evicted 0 4h56mcoredns-67cb7b5f46-2ds7n 0/1 ...原创 2020-03-25 18:03:30 · 1448 阅读 · 1 评论 -
Kubernetes筆記(三十)--Helm模版之控制流程
Helm 模板之控制流程模板函数和管道是通过转换信息并将其插入到YAML文件中的强大方法。但有时候需要添加一些比插入字符串更复杂一些的模板逻辑。这就需要使用到模板语言中提供的控制结构了。控制流程为我们提供了控制模板生成流程的一种能力,Helm 的模板语言提供了以下几种流程控制:if/else 条件块with 指定范围range 循环块除此之外,它还提供了一些声明和使用命名模板段的操作...原创 2019-08-19 15:26:28 · 958 阅读 · 0 评论 -
Kubernetes筆記(三十一)--Helm模版之命名模版
Helm模板之命名模板前面我们学习了一些 Helm 模板中的一些常用使用方法,但是我们都是操作的一个模板文件,在实际的应用中,很多都是相对比较复杂的,往往会超过一个模板,如果有多个应用模板,我们应该如何进行处理呢?这就需要用到新的概念:命名模板。命名模板我们也可以称为子模板,是限定在一个文件内部的模板,然后给一个名称。在使用命名模板的时候有一个需要特别注意的是:模板名称是全局的,如果我们声明了...原创 2019-08-26 15:27:24 · 522 阅读 · 0 评论 -
Kubernetes筆記(三十二)--Helm全局变量和子模版的使用
Helm模板之其他注意事项上节课我们学习了命名模板的使用,命名模板是 Helm 模板中非常重要的一个功能,在我们实际开发 Helm Chart 包的时候非常有用,到这里我们基本上就把 Helm 模板中经常使用到的一些知识点和大家介绍完了。但是仍然还是有一些在开发中值得我们注意的一些知识点,比如 NOTES.txt 文件的使用、子 Chart 的使用、全局值的使用,这节课我们就来和大家一起了解下这...原创 2019-08-26 15:47:37 · 2904 阅读 · 0 评论 -
Kubernetes笔记(十四)--Serviece
Service我们前面的课程中学习了Pod的基本用法,我们也了解到Pod的生命是有限的,死亡过后不会复活了。我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod。尽管每个Pod都有自己的IP地址,但是如果Pod重新启动了的话那么他的IP很有可能也就变化了。这就会带来一个问题:比如我们有一些后端的Pod的集合为集群中的其他前端的Pod集合提供API服务,如果我们在前端的Pod中...原创 2019-08-13 10:28:42 · 239 阅读 · 0 评论 -
Kubernetes笔记(十五)--ConfigMap
ConfigMap前面的课程中我们学习了Servie的使用,Service是Kubernetes系统中非常重要的一个核心概念,我们还会在后面 的课程中继续学习Service的一些使用方法的。这节课我们来学习另外一个非常重要的资源对象:ConfigMap,我们知道许多应用经常会有从配置文件、命令行参数或者环境变量中读取一些配置信息,这些配置信息我们肯定不会直接写死到应用程序中去的,比如你一个应用连...原创 2019-08-13 11:32:37 · 279 阅读 · 0 评论 -
Kubernetes筆記(三十三)-- Helm Hooks用法
Helm Hooks和 Kubernetes 里面的容器一样,Helm 也提供了 Hook 的机制,允许 chart 开发人员在 release 的生命周期中的某些节点来进行干预,比如我们可以利用 Hooks 来做下面的这些事情:在加载任何其他 chart 之前,在安装过程中加载 ConfigMap 或 Secret在安装新 chart 之前执行作业以备份数据库,然后在升级后执行第二个作业以...原创 2019-08-26 16:03:40 · 1335 阅读 · 0 评论 -
Kubernetes筆記(二十九)--模版函數与管道
Helm 模板之模板函数与管道上节课我们学习了如何将信息渲染到模板之中,但是这些信息都是直接传入模板引擎中进行渲染的,有的时候我们想要转换一下这些数据才进行渲染,这就需要使用到 Go 模板语言中的一些其他用法。模板函数比如我们需要从.Values中读取的值变成字符串的时候就可以通过调用quote模板函数来实现:(templates/configmap.yaml)apiVersion: v1...原创 2019-08-19 14:53:13 · 350 阅读 · 0 评论 -
Kubernetes笔记(二十六)--Helm安装和使用
Helm安装使用Helm这个东西其实早有耳闻,但是一直没有用在生产环境,而且现在对这货的评价也是褒贬不一。正好最近需要再次部署一套测试环境,对于单体服务,部署一套测试环境我相信还是非常快的,但是对于微服务架构的应用,要部署一套新的环境,就有点折磨人了,微服务越多、你就会越绝望的。虽然我们线上和测试环境已经都迁移到了kubernetes环境,但是每个微服务也得维护一套yaml文件,而且每个环境下的...原创 2019-08-19 11:35:11 · 1104 阅读 · 1 评论 -
Kubernetes筆記(二十七)--Helm实战应用
Helm 的基本使用上节课我们成功安装了Helm的客户端以及服务端Tiller Server,我们也自己尝试创建了我们的第一个 Helm Chart 包,这节课就来和大家一起学习下 Helm 中的一些常用的操作方法。仓库Helm 的 Repo 仓库和 Docker Registry 比较类似,Chart 库可以用来存储和共享打包 Chart 的位置,我们在安装了 Helm 后,默认的仓库地址...原创 2019-08-19 14:11:53 · 960 阅读 · 0 评论 -
Kubernetes筆記(二十八)--Helm模板之內置函數
Helm 模板之内置函数和Values上节课和大家一起学习了Helm的一些常用操作方法,这节课来和大家一起定义一个chart包,了解 Helm 中模板的一些使用方法。定义 chartHelm 的 github 上面有一个比较完整的文档,建议大家好好阅读下该文档,这里我们来一起创建一个chart包。一个 chart 包就是一个文件夹的集合,文件夹名称就是 chart 包的名称,比如创建一个 ...原创 2019-08-19 14:37:10 · 811 阅读 · 0 评论 -
Kubernetes筆記(三十四)--调度器原理
Kubernetes 调度器介绍kube-scheduler是 kubernetes 系统的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。调度流程默认情况下,...原创 2019-09-04 11:34:24 · 302 阅读 · 0 评论 -
Kubernets笔记(十六)--Secrect
Secret上节课我们学习了ConfigMap的时候,我们说ConfigMap这个资源对象是Kubernetes当中非常重要的一个对象,一般情况下ConfigMap是用来存储一些非安全的配置信息,如果涉及到一些安全相关的数据的话用ConfigMap就非常不妥了,因为ConfigMap是名为存储的,我们说这个时候我们就需要用到另外一个资源对象了:Secret,Secret用来保存敏感信息,例如密码...原创 2019-08-13 13:45:59 · 404 阅读 · 0 评论 -
Kubernetes笔记(十七)--RBAC具体使用
RBAC前面两节课我们学习了Kubernetes中的两个用于配置信息的重要资源对象:ConfigMap和Secret,其实到这里我们基本上学习的内容已经覆盖到Kubernetes中一些重要的资源对象了,来部署一个应用程序是完全没有问题的了。在我们演示一个完整的示例之前,我们还需要给大家讲解一个重要的概念:RBAC - 基于角色的访问控制。RBAC使用rbac.authorization.k8s...原创 2019-08-13 16:38:53 · 419 阅读 · 0 评论 -
文件 list 第 1 行的记录格式有误 /etc/apt/sources.list.d/kubernetes.list (Component)E: 无法读取源列表-解决方案
Ubuntu下的list文件使用apt-get update报错:E: 文件 list 第 1 行的记录格式有误 /etc/apt/sources.list.d/kubernetes.list (Component)E: 无法读取源列表。原有的文件内容是:deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main...原创 2019-08-08 16:47:36 · 24566 阅读 · 9 评论 -
ubuntu 18.04下kubeadm安装单机版kubernetes(亲测、实践)
添加源,添加key,安装docker.io, kubelet, kubernetes-cni=0.6.0-00,和 kubeadm先到/etc/apt/sources.list.d/文件夹中手动创建文件kubernetes.list,在该文件中添加(使用中科大的源,否则要翻墙,或者速度太慢):http://mirrors.ustc.edu.cn/kubernetes/apt kubernete...原创 2019-08-09 14:08:36 · 2926 阅读 · 0 评论 -
Kubernetes笔记-Harbor安装(CICD四)
Harbor 是一个CNCF基金会托管的开源的可信的云原生docker registry项目,可以用于存储、签名、扫描镜像内容,Harbor 通过添加一些常用的功能如安全性、身份权限管理等来扩展 docker registry 项目,此外还支持在 registry 之间复制镜像,还提供更加高级的安全功能,如用户管理、访问控制和活动审计等,在新版本中还添加了Helm仓库托管的支持。Harbor最核...原创 2019-08-02 08:50:20 · 1536 阅读 · 0 评论 -
Kubernetes笔记(二十四)--外部服务发现之Ingress
外部服务发现之 ingress上节课我们学习了在 Kubernetes 集群内部使用 kube-dns 实现服务发现的功能,那么我们部署在 Kubernetes 集群中的应用如何暴露给外部的用户使用呢?我们知道前面我们使用 NodePort 和 LoadBlancer 类型的 Service 可以实现把应用暴露给外部用户使用,除此之外,Kubernetes 还为我们提供了一个非常重要的资源对象可...原创 2019-08-16 09:47:04 · 669 阅读 · 0 评论 -
Kubernetes笔记(二十三)--内部服务发现Kubedns
内部服务发现前面我们给大家讲解了 Service 的用法,我们可以通过 Service 生成的 ClusterIP(VIP)来访问 Pod 提供的服务,但是在使用的时候还有一个问题:我们怎么知道某个应用的 VIP 呢?比如我们有两个应用,一个是 api 应用,一个是 db 应用,两个应用都是通过 Deployment 进行管理的,并且都通过 Service 暴露出了端口提供服务。api 需要连接...原创 2019-08-15 10:38:45 · 561 阅读 · 0 评论 -
Kubernetes笔记(十八)--wordpress实战案例
部署 Wordpress 示例前面的课程中我们基本上了解了Kubernetes当中常见的一些对象资源,这节课我们就来利用前面学习的知识点来部署一个实际的应用 - 将Wordpress应用部署到我们的集群当中,我们前面是不是已经用docker-compose的方式部署过了,我们可以了解到要部署一个Wordpress应用主要涉及到两个镜像:wordpress和mysql,wordpress是应用的核...原创 2019-08-14 10:04:13 · 707 阅读 · 0 评论 -
Kuberntes笔记(二十一)--PVC的使用及注意事项
PVC 的使用上节课我们学习了 PV 的使用,但是在我们真正使用的时候是使用的 PVC,就类似于我们的服务是通过 Pod 来运行的,而不是 Node,只是 Pod 跑在 Node 上而已,所以这节课我们就来给大家讲解下 PVC 的使用方法。准备工作在使用 PVC 之前,我们还得把其他节点上的 nfs 客户端给安装上,比如我们这里:$ kubectl get nodesNAME ...原创 2019-08-14 11:30:38 · 1311 阅读 · 0 评论 -
Kubernetes笔记(十九)--DaemonSet+StatefulSet
DaemonSet 与 StatefulSet 的使用前面我们的课程中学习了大部分资源对象的使用方法,上节课我们通过一个WordPress的示例把我们前面的内容做了一个总结。今天我们来给大家讲解另外一个Pod控制器的使用方法,我们前面主要讲解的是Deployment这种对象资源的使用,接下来我们要讲解的是在特定场合下使用的控制器:DaemonSet与StatefulSet。DaemonSet ...原创 2019-08-14 11:01:06 · 436 阅读 · 0 评论 -
Kubernetes笔记(二十)--NFS的搭建+PV的使用
PV 的使用前面我们和大家一起学习了一些基本的资源对象的使用方法,前面我们也和大家讲到了有状态的应用和对数据有持久化的应用,我们有通过 hostPath 或者 emptyDir 的方式来持久化我们的数据,但是显然我们还需要更加可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方...原创 2019-08-14 11:17:39 · 699 阅读 · 0 评论 -
Kubernetes笔记(二十二)--StorageClass设置默认存储后端及动态创建存储
StorageClass前面的课程中我们学习了 PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个应用对读写速度又要求比较高,特别是对于 StatefulSet 类型的应用简单的来使用静态的 PV 就很不合适...原创 2019-08-14 13:28:24 · 10908 阅读 · 1 评论 -
Kubernetes筆記(三十五)--Node和Pod親和性、污點、容忍
Kubernetes 亲和性调度一般情况下我们部署的 Pod 是通过集群的自动调度策略来选择节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 Pod 的调度,比如我们内部的一些服务 gitlab 之类的也是跑在Kubernetes集群上的,我们就不希望对外的一些服务和内部的服务跑在同一个节点上了,害怕内部服务对外部的服务产生影响;但是有的时候...原创 2019-09-04 17:51:51 · 796 阅读 · 0 评论 -
kubernetes(k8s)之yaml文件详解---很好,很优秀
# yaml格式的pod定义文件完整内容:apiVersion: v1 #必选,版本号,例如v1kind: Pod #必选,Podmetadata: #必选,元数据 name: string #必选,Pod名称 namespace: string #必选,Pod所属的命名空间 labels: #自定义标签 -...转载 2019-02-27 16:04:51 · 3687 阅读 · 1 评论 -
Kubernetes之yaml文件详解(汇总-详细)
一、YAML基础YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。YAML语法规则:大小写敏感使用缩进表示层级关系缩进时不允许使用Tal键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可”#” 表示注释,从这个字符一直到行尾,都会被解析器忽略 在Kubernetes中,只需要知道两种结构类型即可:...转载 2019-03-13 16:22:52 · 46242 阅读 · 10 评论 -
k8s基于Storage Class和nfs动态供给(NFS+PV+PVC)
1、Kubernetes集群管理员通过提供不同的存储类,可以满足用户不同的服务质量级别、备份策略和任意策略要求的存储需求。动态存储卷供应使用StorageClass进行实现,其允许存储卷按需被创建。如果没有动态存储供应,Kubernetes集群的管理员将不得不通过手工的方式类创建新的存储卷。通过动态存储卷,Kubernetes将能够按照用户的需要,自动创建其需要的存储。基于StorageClas...原创 2019-03-22 11:12:57 · 7555 阅读 · 5 评论 -
kubeadm安装kubernetes V1.11.1 集群--详细教程
之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下。安装过程中,也有一些坑,相对来说操作上要比二进制方便一点,毕竟不用手工创建那么多的配置文件,但是对于了解Kubernetes的运作方式,可能不如二进制方式好。同时,因为kubeadm方式,很多集群依赖的组件都是以容器方式运行在Master节点上,感觉...转载 2019-03-27 15:27:19 · 360 阅读 · 0 评论 -
Kubernetes角色访问控制RBAC和权限规则(Role+ClusterRole)---好文
基于角色的访问控制(Role-Based Access Control, 即”RBAC”)使用”rbac.authorization.k8s.io” API Group实现授权决策,允许管理员通过Kubernetes API动态配置策略。RBAC API所定义的四种类型Role与ClusterRole在RBAC API中,一个角色定义了一组特定权限的规则。namespace范围内的角色由Ro...原创 2019-03-27 16:58:36 · 14335 阅读 · 2 评论 -
kubernetes中排错的很好的文章
https://www.jianshu.com/p/1a17fe99747b转载 2019-06-12 15:42:47 · 322 阅读 · 0 评论 -
Helm的安装和调试(常见错误解决)
Helm整体架构:1.为什么要用?首先在原来项目中都是基于yaml文件来进行部署发布的,而目前项目大部分微服务化或者模块化,会分成很多个组件来部署,每个组件可能对应一个deployment.yaml,一个service.yaml,一个Ingress.yaml还可能存在各种依赖关系,这样一个项目如果有5个组件,很可能就有15个不同的yaml文件,这些yaml分散存放,如果某天进行项目恢复的话,...原创 2019-03-25 14:29:55 · 31693 阅读 · 0 评论 -
kubernetes的节点not read解决方案
但是除了.10节点外,其他主机并没有挂,可以远程连接上, 那就考虑是kubernetes系统的问题解决的方法是重启kube-proxy和kubelet服务即可 systemctl restart kube-proxy systemctl restart kubelet为什么要这么做呢?Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kubernte...原创 2019-03-25 14:00:09 · 1135 阅读 · 0 评论 -
单机启动schedule报错:Get http://127.0.0.1:10251/healthz: dial tcp 127.0.0.1:10251: connect: connection ref
方案:将scheduler启动项中的KUBE_SCHEDULER_ARGS加上值127.0.0.1即可原创 2019-02-23 00:51:35 · 16582 阅读 · 1 评论 -
k8s诡异的错误
qyh@qyh_master:/home/kubernetes/work$ kubectl get csNAME STATUS MESSAGE ERRORscheduler Healthy ok controller-manager Healthy ok ...原创 2019-02-23 14:42:15 · 369 阅读 · 0 评论 -
kubernetes命令--小知识
启动kubelet报错:2月 23 20:13:26 qyh_master kubelet[5738]: F0223 20:13:26.360338 5738 server.go:154] unknown command:2月 23 20:13:26 qyh_master systemd[1]: kubelet.service: Service hold-off time ove...原创 2019-02-23 23:25:31 · 710 阅读 · 0 评论 -
kubelet启动报错:kubelet.service: Failed with result 'exit
qyh@qyh-master:/home/kubernetes$ systemctl status kubelet● kubelet.service - Kubernetes Kubelet Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: Active: failed (Re...原创 2019-02-24 18:09:36 · 22432 阅读 · 0 评论 -
1 node(s) had taints that the pod didn't tolerate
kubernetes增加污点,达到pod是否能在做节点运行master node参与工作负载 (只在主节点执行)使用kubeadm初始化的集群,出于安全考虑Pod不会被调度到Master Node上,也就是说Master Node不参与工作负载。这里搭建的是测试环境可以使用下面的命令使Master Node参与工作负载:k8s是master节点的hostname允许master节点部署p...原创 2019-03-20 11:11:26 · 30658 阅读 · 0 评论 -
Kubernetes之serviceAccount资料搜集
secret查看与删除qyh@qyh-mas:/home/work$ kubectl get secretNAME TYPE DATA AGEdefault-token-gdzv4 kubernetes.io/service-account-token 3 15djay...原创 2019-03-12 15:32:11 · 1235 阅读 · 0 评论