![](https://img-blog.csdnimg.cn/01c6ce90e6de4948ae3735eec39969f9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
kubernetes
文章平均质量分 88
万物上云
strongleechm
念念不忘,必有回响
展开
-
k8s1.24.3搭建
ubuntu2004 k8s 搭建原创 2022-07-30 17:30:52 · 675 阅读 · 0 评论 -
k8s负载均衡
因为有客户在搭建集群过程中,问了一下这个k8s流量负载均衡的问题,之前也没有这样深入的了解过这个原理,刚好在b站学习的时候,刚好老师讲到这个知识点,因此学习记录敲一下。环境信息:访问nginx-svc,映射到后端pod的流量基本上均分示例图如下:这里我们就理解一下这个百分之五十是怎么来的?这里我们重点关注一个组件 kube-proxy以下来自官方解释:service是一组pod的服务抽象,相当于一组pod的LB,负责将请求分发给对应的pod。service会为..原创 2022-02-21 20:55:36 · 4119 阅读 · 0 评论 -
记录一次nginx-controller创建ssl失败问题
环境信息如下:docker和k8s版本[root@controllersw rootfs]# docker -v Docker version 19.03.11.ce, build 42e35e61f3[root@controllersw rootfs]# kubectl versionClient Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73原创 2021-11-21 17:50:20 · 2850 阅读 · 2 评论 -
helm基本知识(下)
上一篇只是简单的安装测试了一下helm的使用,这里补充一下关于helm的其他相关命令先查看本地导入的helm仓库[root@master1 ~]# helm repo ls NAME URL aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts搜索仓库里面的应用chart,这里会把应用的版本号和属于哪个仓库等信息显示.原创 2021-10-31 21:06:55 · 502 阅读 · 0 评论 -
Helm基本知识(上)
目录helm基本介绍helm的部署1. helm的安装2. 配置helm仓库(1)添加仓库(2)helm仓库的基本操作3. 使用helm快速部署一个应用第三步:查看安装之后的状态4. 自定义chart5. chart模板的使用helm基本介绍前言:在我们yum管理工具,主要解决的是包之间的依赖问题,而我们的helm工具是安装服务的问题,在我们的k8s中的包管理工具helm,它可以通过一些仓库去下载一些我们想要yalm文件,我们去修改这些yalm文件...原创 2021-10-23 21:17:58 · 3378 阅读 · 0 评论 -
k8s 原生安全机制
目录机制说明Authentication安全性说明关于证书颁发关于kubeconfig文件ServiceAccountSecret 与 SA 的关系鉴权AuthorizationRBAC 授权模式RBAC 的 API 资源对象说明Role and ClusterRoleRoleBinding and ClusterRoleBindingResourcesto Subjects实践:创建一个用户只能管理 dev 空间1. 首先创建一个新的用户原创 2021-09-07 22:44:43 · 1160 阅读 · 0 评论 -
k8s 调度器
目录一 、调度说明简介调度过程自定义调度器二、调度亲和性pod跟node节点亲和性pod 跟pod亲和性三、污点和容忍Taint 和 Toleration污点(Taint)Ⅰ、 污点 ( Taint ) 的组成Ⅱ、污点的设置、查看和去除容忍(Tolerations)四、固定节点一 、调度说明简介Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单,但有很多要考虑的问题:原创 2021-09-05 21:56:47 · 1037 阅读 · 0 评论 -
k8s 存储之pv和pvc
在我们整个k8s集群中,外部可能有有一些存储的资源,比如说nfs,mfs,iscsi块存储,这些存储都是由我们的存储工程师去创建的,k8s工程师想要直接去使用他们的话,肯定是很不方便的,因为不同的存储方式不一样。在k8s中,给我们提供了一个新的对象资源,叫做PV,不同的PV会对应到不用的存储资源,这样我们在部署pod的时候直接调用集群内部的pv,即可完成对存储资源的使用,但是呢,直接调用PV的话,有个问题就是,这个pv是否满足我们的需求,因为我们可能需要的是存储能力比较大存储资源,所以这个时候需要一个一个去原创 2021-09-05 11:42:56 · 1954 阅读 · 0 评论 -
k8s 存储之volume
目录emptyDir(空的目录卷)emptyDir 的用法hostPathhostPath的用法docker有自己的持久化方案,我们的k8s集群中也有进行持久化的操作。容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在Pod 中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes 中的 Volume 抽象就很好的原创 2021-09-04 22:43:08 · 332 阅读 · 0 评论 -
k8s 存储之secret
目录Service AccountOpaque SecretⅠ、创建说明Ⅱ、使用方式1、将 Secret 挂载到 Volume 中2、将 Secret 导出到环境变量中kubernetes.io/dockerconfigjsonSecret 存在意义Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中。Secret 可以以 Volume 或者环境变量的方式使用。也就意味着我们有一些密码被我们的pod去使用原创 2021-09-04 16:52:00 · 697 阅读 · 0 评论 -
k8s存储之configmap
目录configMap 描述信息Ⅰ、使用目录创建Ⅱ、使用文件创建Ⅲ、使用字面值创建Pod 中使用 ConfigMapⅠ、使用 ConfigMap 来替代环境变量Ⅱ、用 ConfigMap 设置命令行参数Ⅲ、通过数据卷插件使用ConfigMapⅣ、ConfigMap 的热更新configmap是专门存储我们配置文件的存储方案configMap 描述信息ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变原创 2021-09-04 12:03:07 · 675 阅读 · 0 评论 -
k8s ingress实现方案
前言: 对于我们传统的SVC来说,它只支持四层反向代理,但是如果遇到七层的话,就无法去实现,如下:假如说,我们有如上的一个集群,我们现在想要对整个集群,或者是Apache进行https的加密访问,也就是我们的客户端想要跟我们的Apache进行HTTPS访问,我们完全不需要在每一台Apache上配置我们的HTTPS,我们只需要在NGINX上开启HTTPS认证即可。。。。当我们的客户访问到NGINX的时候,由于NGINX和客户端之间是加密访问,NGINX因为本地没有数据,它会向后端进行反向代理,反向代理原创 2021-08-29 13:28:10 · 2188 阅读 · 7 评论 -
k8s service基础
假如说,我们有下面的服务需要部署进入我们的k8s集群中,方法:先创建我们的deployment,通过deployment部署我们的NGINX,它的副本数为1,然后去部署php-fpm,副本数为3,再部署MySQL,通过我们的StatefulSet,对于有状态服务,我们一般通过StatefulSet。意外情况:假如说,有一天我们的php-fpm中有一个突然挂掉了,那么此时我们的副本数目不满足3个了,此时就会再次创建出一个pod,那么新创建出来的这个pod,它的ip就会变化,此时NGINX里面还是原原创 2021-08-28 16:57:24 · 584 阅读 · 0 评论 -
pod控制器
基本概念pod的分类:自主式pod(静态pod):pod退出了,此类型的pod不会被创建。(了解)控制器管理的pod:在控制器的生命周期里,始终要维持pod的副本数目。(也就是说,控制器资源管理器管理的这些pod,我们不需要考虑这些pod是否死亡了,这个事情是资源管理器考虑的,它可以帮我们的把pod维持在我们的设定的副本数目)什么是控制器Kubernetes 中内建了很多 controller(控制器),这些相当于一个状态机,用来控制 Pod 的具体状态和行为。。控制器类型..原创 2021-08-20 17:52:13 · 208 阅读 · 0 评论 -
pod的生命周期--探针
目录容器探针探测方式实现一个探针1. 就绪检测 httpget的方式2. 存活检测livenessProbe-exec(exec的获取方案)livenessProbe-httpget(httpget的获取方案)livenessProbe-tcp(tcp方案)3. 并行检测启动、退出动作容器探针探针是由 kubelet 对容器执行的定期诊断。要执行诊断, kubelet 调用由容器实现的 Handler 。有三种类型的处理程序:E...原创 2021-08-20 12:41:21 · 313 阅读 · 0 评论 -
pod的生命周期--init C
目录Init 容器Init 容器的作用Init 容器的模板总结问题描述:比如说,我们运行一个pod,pod里面运行的有两个容器,如果这两个容器它们还在,但是它们里面运行的进程已经死亡了或者说意外中断了,由于某种故障,容器也并没有退出,造成这个pod还处于running状态,这个时候服务已经不可用了,因为进程都已经死了。但是对于整个pod来说,pod还是可以用的,这个时候就出现问题了。这个就引出我们的检测机制了,当然如果了解到k8s的知道,多用的检测机制是liveness和readne原创 2021-08-19 22:12:26 · 440 阅读 · 0 评论 -
简述pod概念和服务发现
pod类型(非官方概念)自主式 Pod这个就是不被控制器管理的pod,它一旦死亡,就没有人会去管理它了,也不会有人去创建一个新的期望值去满足我们的需求。控制器管理的 Pod(下面的都是围绕控制器管理的pod来讲的)在我们的传统容器概念中,每一个容器都要自己对应的IP地址,都是独立存在的,通过我们的名字空间进行隔离等等,但在进行k8s移植的时候,就不是那么的容易了但是k8s给我们实现了解决办法,那就是提出pod的概念,我们先定义一个pod,它会先启动第一个容器,这个容器的特点就是只原创 2021-08-16 21:43:49 · 926 阅读 · 0 评论 -
yaml语法
因为YAML格式的语法在其他的平台也有用到,所以我们这里仅仅只是针对在k8s中的语法规范。YAML是一个可读性高,用来表达数据序列的格式。YAML的意思其实是:仍是一种标记语言,但为了强调这种语言以数据做为中心,而不是以标记语言为重点。它的一个很重要的特点就是缩进时不允许使用Tab键,只允许使用空格,缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。# 标识注释,从这个字符一直到行尾,都会被解释器忽略下面介绍一下YAML 支持的数据结构对象:键值对的集合,又称为映射(mappi.原创 2021-08-12 22:13:15 · 335 阅读 · 0 评论 -
k8s基础概念
这里我们先简单了解一下什么是pod,资源清单,控制器类型,k8s网络通讯模式等等,以及重点掌握的知识点,后面的话会进行详细的实验介绍。那什么是pod呢?在我们k8s里面它是最小的封装集合,在我们容器化里的每一个运行的容器就是一个封装集合,那一个pod里面会封装多个容器,达到一个子节点的运行环境,它是我们k8s里面管理的最小单位。资源清单:资源,掌握资源清单的语法,编写pod,掌握pod的生命周期(这个很重要)pod控制器:掌握各种控制器的特点以及使用定义方式(pod控制器用通俗的话来讲就是,原创 2021-07-27 22:00:46 · 448 阅读 · 0 评论 -
中标麒麟操作系统V5.0(龙芯)kubernetes源码编译
目录一、 组件准备二、 基础镜像三、 编译1.1 下载源码1.2 编译kube-cross组件1.3 编译pause组件1.4 编译debian-base组件1.5 编译debian--hyperkube-base组件1.6 编译debian-iptables组件1.7 编译k8s组件1.8 Coredns编译1.9 Flannel编译1.10 Etcd编译1.11 registry2.7.1镜像附录1一、环境准备本次涉及到的相关组..原创 2021-07-23 18:50:06 · 3046 阅读 · 5 评论 -
k8s组件架构说明
高可用集群副本数据最好是 >= 3 奇数个(也就是下面第一张图片的BorgMaster的个数,下面的是5个)下面的是谷歌公司的borg架构下面的是k8s架构上图是我们的k8smaster和node节点的相关组件,由上图可知,我们的node节点需要安装kubelet,kube proxy和docker 。。。。分析一下上面的图片把,我们kubelet的作用就是,它会跟我们的CRI(容器运行接口),说白了就是我们的docker在这里的表现形式,也就是说我们的kubelet会跟我们的原创 2021-07-22 21:23:47 · 212 阅读 · 1 评论