k8s
文章平均质量分 83
k8s
Jerry00713
互联网时代,不更新自己注定被淘汰
展开
-
Ingress 常用的10个配置(annotation)
比如在有些时候我们需要在 server 里或者 location 里添加一些参数,例如添加包体大小限制、添加跨域配置、添加自定义header、处理响应header等等。遇到这些需求的时候,我们开始怀念原生的 nginx 配置,因为那样我们可以随心所欲的修改。我们有这样的需求,官方在做这个的时候,也做了一些考虑,为了我们提供了一些配置切入点,我们可以通过配置 annotation,按照官方提供的一些规则来将我们的一些自定义配置插入进去。转载 2022-10-26 05:52:26 · 4597 阅读 · 0 评论 -
集群外部署 Prometheus 监控 k8s
1、一台普通的机器 192.168.18.92、k8s 集群一台master节点 192.168.18.7。原创 2022-09-02 11:20:14 · 4126 阅读 · 2 评论 -
kubectl 创建 Pod 背后到底发生了什么?
如果上面一切顺利,现在你的集群上应该会运行三个容器,所有的网络,数据卷和秘钥都被通过 CRI 接口添加到容器中并配置成功。转载 2022-08-30 13:51:19 · 284 阅读 · 0 评论 -
kubeadm (etcd)
1、获取etcdctl 命令行工具kubeadm 部署的 k8s ,etcd 是封装在 pod 中从 pod 中拿到 etcdctl,先查看在 pod 中 etcdctl 的位置获取etcdctl 并放入/usr/bin下kubectl -n kube-system cp etcd-k8s-master:/usr/local/bin/etcdctl /usr/bin/etcdctlchmod +x /usr/bin/etcdctl2、查看etcd集群成员节点...原创 2022-08-30 05:54:20 · 1352 阅读 · 0 评论 -
kubeadm 部署k8s kube-apiserver无法正常启动的问题
9.kubeadm init --kubernetes-version=v1.17.17 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/16 --ignore-preflight-errors=Swap 初始化节点 (根据情况修改),或者按照。12.下载并安装flannel配置,需要配置kube-flannel.yml, 或者按照。15.查看节点,已经出现,查看6443端口号,已经出现。3.ll -a 查看是否存在.kube文件。转载 2022-08-20 18:07:55 · 11440 阅读 · 5 评论 -
kudeadm 部署 k8s
首先容器通过docker0无法找到另一台容器的,所以docker0就把请求往上给,给到了物理机的物理网卡,物理网卡又是怎么去知道另一台的物理机的容器在哪?假如有A B 两个物理机器,A机器通过ens33 10.4.7.21/24 跟 B 机器通信,于是配置flannel 绑定ens33,然后在 A 机器daemon.json中配置,当前物理机启动的pod网段是172.7.21/24,也就是说当前物理机启动的pod的IP是172.7.21/24中之一,而 B 物理机的pod网段是172.7.22/24。原创 2022-08-20 17:38:31 · 1833 阅读 · 1 评论 -
Spinnaker调用Jenkins API 返回403错误
让人头疼的是较高版本的Jenkins竟然在管理页面关闭不了CSRF,网上搜索到的资料有写通过 groovy代码 实现取消保护,但是笔者操作未成功,最后,Get到了一种成功的解决姿势。前段时间,k8s生产环境中选择使用Spinnaker + Jenkins实现CI/CD,但是我在Spinnaker执行构建走到调用jenkins的时候出错。因为Spinnaker是通过跨站的方式调用Jenkins,那么Jenkins默认是开启CSRF保护,所以jenkins就会返回一个403报错。把CSRF保护的勾取消即可。..原创 2022-08-02 20:39:09 · 1183 阅读 · 0 评论 -
k8s 部署 minio
6、按照次特性,可以修改deployment资源,增加Nodename固定在那个节点运行,修改svc资源设置nodeport,共享网络名称空间,让pod的9000端口映射宿主机的某一个端口,直接访问宿主机的端口,通过即可。5、总上所述,对比新版本minio特性,说明了32154是Console的端口,而且在kill掉这个pod,在启动一个新的,发现Console端口会变化,说明Console端口是随机的。2、service资源中代理9000端口、Console端口。新版本如何编写资源配置清单。.......原创 2022-07-27 15:32:22 · 9960 阅读 · 0 评论 -
k8s查看pod日志报错 Error from server (Forbidden)
这个错误是说kube-apiserver这个用户没有权限查看日志,我们要给这个用户一个admin的角色权限就好了。查看pod日志时,报权限错误。二进制搭建的k8s集群。转载 2022-07-19 21:21:43 · 5339 阅读 · 0 评论 -
Kubernetes TLS bootstrapping
what && why?启动引导过程TLS 作用RBAC 作用kubelet 首次启动流程手动签发证书几个重要术语kubelet serverCSR 请求类型TLS bootstrapping 主要流程细节证书及配置文件作用token.csvbootstarp.kubeconfigkubelet-client.crtkubelet.crtkubelet-server.crtkubelet-client-current.pemkubelet-server-current.pem众所周知 TLS 的作用就是对通转载 2022-07-12 09:44:04 · 331 阅读 · 0 评论 -
k8s学习: kubeconfig文件详解
kubeconfig的一个示例如下:该示例为2个集群apiVersion 和 kind 标识客户端解析器的版本和模式,不应手动编辑。preferences 指定当前可选(和当前未使用)的 kubectl 首选项cluster中包含k8s集群的端点数据,包括集群的证书颁发机构以及完整的URL。可以使用Kubectl config set-cluster添加或修改cluster条目。可以使用 kubectl config set-cluster 添加或修改 cluster 条目,多个集群的话直接在后转载 2022-07-11 17:57:49 · 10458 阅读 · 0 评论 -
讲述deployment、service、ingress资源的lables关系
在实验之前,我们都知道,lable是k8s中内部找寻各个资源的依据,比如deployment需要跟那个pod资源进行绑定,通过lable。service资源如何跟pod资源进行绑定,通过lable。service资源如何跟service资源进行绑定,通过lable。vi deploy.yamlvi svc.yaml[root@hdss7-11 ~]# vi /var/named/od.com.zone[root@hdss7-11 ~]# systemctl restar原创 2022-07-07 10:10:53 · 853 阅读 · 1 评论 -
Kubernetes----Pod配置容器启动命令
创建pod_command.yaml文件,并编写如下内容,即在容器启动之后,向 、opt/text.txt文件写入时间戳,执行命令主要通过command字段传入,类型为列表格式1.2 创建资源使用如下命令创建namespace和pod资源1.3 进入容器检查数据如下,进入容器中,并查看 /tmp/hello.txt文件内容,如下,表示已经成功执行命令1.4 关于kubernetes中command和args的参数说明: 如果command和args都没写,则使用dockerf转载 2022-06-30 14:24:35 · 4234 阅读 · 0 评论 -
kubelet Error getting node 问题求助
master节点采用kubectl 发现资源不存在寻找原因发现的状态虽然是成功,但是报错初步判断 应该是某个配置中多加了,被识别多了""ip地址和主机名没有改变并配置正确 sendbox image 已经配置为阿里云的,非谷歌的 还有大佬说未安装calico,先安装…emmmm最近搞了好几天了,找到问题原因 --node-labels=node.kubernetes.io/node='' 不知为何CentOS7不识别https://github.com/cby-c转载 2022-06-10 14:23:29 · 6240 阅读 · 0 评论 -
containerd与docker的联系、区别是什么
容器运行时(Container Runtime)是Kubernetes (k8s))最重要的组件之一,负责管理镜像和容器的生命周期。Kubelet通过ContainerRuntime Interface (CRI)与容器运行时交互,以管理镜像和容器。一、containerd与docker的区别是什么在使用k8s时,使用docker和containerd的调用链如下所示:Docker作为k8s容器运行时,调用关系如下:kubelet --> docker shim(在 kub...原创 2022-05-18 11:00:49 · 8832 阅读 · 0 评论 -
加深讲解 L4 L7 调度跟apiserver通信
一、L4 L7 都是什么L4 是4层调度的意思,4层调度又是什么?首先A软件要跟B软件单项或者互相通信,这时B软件自己开放一个端口,说要想跟我通信连接我的这个端口,而这个端口是走TCP/IP协议,这种需要连接TCP/IP协议的端口,就是在4层调度。比如ssh、ftp,xshell要连接Linux的sshf服务的22端口,才能进入Linux 的命令行界面。而这种就是通TCP/IP协议的端口连接。4层调度一般使用iptables底层原理实现,通过iptables的规则,实现流量怎么转发,具体查询百度ip原创 2022-04-16 20:33:08 · 3048 阅读 · 0 评论 -
K8S 三种探针 readinessProbe、livenessProbe和startupProbe
介绍K8S 提供了3种探针readinessProbe livenessProbe startupProbe(这个1.16版本增加的)1、startupProbereadinessProbe:指示容器是否准备好服务请求(是否启动完成并就绪)。绪探针初始延迟之前的就绪状态默认为Failure,待容器启动成功弹指指标探测结果为成功后,状态变更为 Success。如果未配置就绪探针,则默认状态为Success。只有状态为 Success ,才会被纳入 pod 所属 service 中,也就是原创 2022-04-16 16:06:13 · 28991 阅读 · 3 评论 -
Prometheus监控系统--基于文件或consul实现自动发现
一、Prometheus自动发现自动发现是指Prometheus自动对节点进行监控,不需要手动一个一个去添加,和Zabbix的自动发现、自动注册一个道理。Prometheus有多种自动发现发现,比如file_sd_configs基于文件自动发现、基于K8S自动发现、基于openstack自动发现、基于consul自动发现等。使用自动发现可以解决云环境下资源动态伸缩的监控问题。二、基于文件的自动发现配置file_sd_configs实现文件级别的自动发现,使用文件自动发现功能后,Prometheu转载 2022-04-11 14:00:03 · 1161 阅读 · 0 评论 -
Kubernetes K8S节点选择(nodeName、nodeSelector、nodeAffinity、podAffinity、Taints以及Tolerations用法)
Kubernetes K8S之固定节点nodeName和nodeSelector调度详解与示例主机配置规划服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/4G/20G 172.16.1.110 10.0.0.110 k8s-node01 CentOS7.7 2C/4G/20G 172.16.1.111 10.0.0.111 k8s-node0原创 2022-04-07 00:06:03 · 7788 阅读 · 1 评论 -
如何利用terminationGracePeriodSeconds优雅地关闭你的服务
问题场景当涉及到分布式架构应用,处理故障节点是最头疼的一件事。如何让前端用户感觉不出的情况下,将把故障节点从分布式架构中摘除是关键。在Kubernetes出现之前,大多数应用运行在虚拟机或者物理机上,还需要手动配置运行监视应用的进程,如果应用程序崩溃,监控发出报警后,需要从架构中把出问题的节点摘除,并重新做负载,这个过程需要很长时间,还会导致前台页面访问有间歇性的异常。而如果架构中只有一台或两台机器来运行应用程序,那么网页直接无法访问是不可接受的。随着像Kubernetes这样的系统的出现,完全可以转载 2022-04-03 07:06:36 · 670 阅读 · 0 评论 -
k8s 辨析 port、NodePort、targetPort、containerPort 区别
目录nodePort port targetPort containerPort 参考文章nodePortnodePort 提供了集群外部客户端访问 Service 的一种方式,nodePort 提供了集群外部客户端访问 Service 的端口,通过nodeIP:nodePort提供了外部流量访问k8s集群中service的入口。比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应service的type=NodePort,nodePort=30001。其他用户就可..转载 2022-03-29 21:55:30 · 894 阅读 · 0 评论 -
Kubernetes 灰度/滚动发布 滚动更新速率控制解读 maxUnavailable,maxSurge
利用kubernetes的滚动更新时,可能经常遇到发布“太快不稳定”或“太慢体验差”的情况。本文将介绍kubernetes滚动更新控制速率的特性。金丝雀发布金丝雀发布这个术语源自20世纪初期,当时英国的煤矿工人在下井采矿之前,会把笼养的金丝雀携带到矿井中,如果矿井中一氧化碳等有毒气体的浓度过高,在影响矿工之前,金丝雀相比人类表现的更加敏感快速,金丝雀中毒之后,煤矿工人就知道该立刻撤离。金丝雀发布是在将整个软件的新版本发布给所有用户之前,先发布给部分用户,用真实的客户流量来测试,以保证软件不会出现严重转载 2022-03-28 12:06:55 · 1110 阅读 · 0 评论 -
k8s 中mysql 无法访问_故障排查:Kubernetes 中 Pod 无法正常解析域名
问题描述:最近将 Kubernetes 升级到 1.18.1 版本,不过升级完后,查看工作节点的部分 Pod 无法启动,查看消息全是 connetion timeout 的问题,一看连接超时的地址大部分是以域名方式连接集群内部地址(ClusterIP),少部分是以域名方式连接集群外部地址,通过 IP 进行远程连接的应用倒是没有问题(例如,应用通过 IP 连接 MySQL),由此判断,初步怀疑很可能是 DNS 出现了问题,后来慢慢发现 kube-proxy 中的错误,再定位到 IPVS parseIP E转载 2022-03-24 14:03:26 · 7300 阅读 · 0 评论 -
node节点NotReady
问题场景:1、想访问业务容器http://dashboard.od.com,访问不了2、查看dashboard.od.com的容器pod无问题,通过原创 2022-03-23 10:59:20 · 3592 阅读 · 0 评论 -
JRE和JDK的区别
1.定义JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开.转载 2022-03-06 21:20:38 · 375 阅读 · 0 评论 -
k8s之Secret详细理解及使用
Secret介绍k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息。它把 Pod 想要访问的加密数据存放到 Etcd 中。然后用户就可以通过在 Pod 的容器里挂载 Volume 的方式或者环境变量的方式访问到这些 Secret 里保存的信息了。Secret有三种类型Opaque:base64 编码格式的 Secret,用来存储密码、密钥等;但数据也可以通过base64 –decode解码得到原始数据,所有加密性很弱。Service Account:用来转载 2022-03-02 06:51:11 · 4513 阅读 · 0 评论 -
k8s -- 浅谈什么是service服务、无头服务
server服务:在k8s集群中,service是一个抽象概念,它通过一个虚拟的IP映射指定的端口,将代理客户端发来的请求转到后端一组pod中的一个上。这是个神马意思呢?pod中的容器经常在不停地销毁和重建,因此pod的IP会不停的改变,如果客户端不知道pod的IP已经变化,继续访问之前的IP是无法访问容器。就算客户端知道了pod的IP变化了,每次重建后访问都需要更换IP,效率极为低下。这时候就有了service代理服务,类似于nginx代理,作为客户端和pod的中间层,在创建server 的yam原创 2022-03-01 06:49:41 · 6313 阅读 · 1 评论 -
容器到底隔离了什么?
一、容器的本质是一个进程一个容器就如同你之前跑到一个虚拟机中的一个应用程序,比如跑一个Java程序。那么在容器中,主进程就是跑着你Java程序的这个Java进程,其他的进程都是围绕着这个主进程的,如果主进程失败了,那么这个容器就是失败的。二、容器中隔离了以下资源mnt: 存储net : 网络pid : 进程user:用户uts :主机名、域名等ipc :进程间的通信cgroups:隔离资源,如CPU、Memory如果对这些特性感觉有些陌生,这很正常,我们可以通过创建一个容器,然后登转载 2022-02-28 06:55:49 · 354 阅读 · 0 评论 -
记Filebeat的prospectors部分配置说明
Filebeat的工作原理Filebeat是一个日志文件收集工具,filebeat最初是基于logstash-forwarder源码的日志数据shipper,部署在所要采集日志的服务器上,采集指定的日志文件信息转发给logstash进行分析然后再发送到elasticsearch构建索引,或者直接发送到elasticsearch,也可以发送到redis上,用redis作为消息队列Filebeat搜集日志的主要角色有harvester和prospectorsharvesterharvester负转载 2022-02-24 23:08:16 · 2064 阅读 · 0 评论 -
filebeat常见配置项梳理
filebeat5.2.2prospector(input)段配置filebeat.prospectors:每一个prospectors,起始于一个破折号”-“-input_type: log #默认log,从日志文件读取每一行。stdin,从标准输入读取paths:日志文件路径列表,可用通配符,不递归-/var/log/*.logencoding:plain #编码,默认无,plain(不验证或者改变任何输入),latin1, utf-8, utf-16be-b转载 2022-02-24 23:00:02 · 6298 阅读 · 1 评论 -
简单说k8s-Taints(污点)和Tolerations(容忍)
Taint 和 TolerationTaint 和 toleration 相互配合,可以用来避免 pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个taint ,这表示对于那些不能容忍这些 taint 的 pod,是不会被该节点接的。如果将 toleration 应用于 pod上,则表示这些 pod 可以(但不要求)被调度到具有匹配 taint 的节点上污点(Taint)I、污点 ( Taint ) 的组成使用kubectl taint命令可以给某个 Node 节点设转载 2022-02-07 10:59:40 · 1433 阅读 · 0 评论 -
k8s--Jenkins拒绝加载此版本Blue Ocean
问题:在部署Jenkins安装Blue Ocean插件是,提示警告此版本不能使用Blue Ocean解决方案:1、下载最新的或者提示安装的版本Jenkins 2.249.1[root@7-200 jre8]# docker image ls |grep jenkinsharbor.od.com:180/infra/jenkins v2.190.3 612c19e23328 5 hours ago 589MBjenk.原创 2021-12-16 06:16:15 · 2078 阅读 · 0 评论 -
Kubernetes部署(八):k8s项目交付----(5)持续部署
因为k8s更偏向于IaaS的一个软件,提供的容器的编排能力,编排存储、安全、网络、业务容器、pod业务容器,所以越来越多的云计算厂商,正在基于k8s构建PaaS平台。比如阿里云,直接提供了k8s服务,跟我们部署没区别,只不过是他们把k8s封装成一个ansible,在需要的时候跑一遍ansible脚本,k8s服务就起来了。青云、腾讯云、微软的Azure云,都提供了以k8s为基础的PaaS平台,提供了好多web页面,只需要点点点,就能发布软件。..................原创 2022-08-04 14:41:43 · 4376 阅读 · 0 评论 -
单臂路由原理
单臂路由原理路由,单臂,原理众多中小企业内部网络结构都很简单,仅仅是用一台交换机将所有员工机以及服务器连接到一起,然后通过光纤访问internet而已。当然为了保证部分主机的安全性以及分割内部广播包提高网络传输速度,采取诸如划分VLAN,分配不同子网的方法来实现。通过划分VLAN可以让在同一台交换机不同端口的客户机不能互相访问,有效的隔离了网络。 通过VLAN划分网络固然可以解决安全和广播风暴的频繁出现,但是对于那些既希望隔离又希望对某些客户机进行互通的公司来说,划分VLAN的同时为不同V..转载 2020-10-29 13:27:49 · 625 阅读 · 0 评论 -
Kubernetes :Taints(污点)和Tolerations(容忍)
目录Taint基本用法effect 的取值NoExecuteToleration基本用法Toleration 几个特殊情况:key 为空并且 operator 等于 Existseffect 为空TolerationSeconds多污点与多容忍配置kubernetes 内置taint行为Taints(污点)和Tolerations(容忍)示例专用节点具有特殊硬件的节点基于 taint 的驱逐Taint(污点)和 Toleration(容.转载 2021-02-02 10:12:57 · 862 阅读 · 0 评论 -
Kubernetes :Taints(污点)和Tolerations(容忍)分析操作
一、环境搭建使用一开始nginx:v1.7.9 创建deployment[root@hdss7-21 ~]# kubectl create deployment nginx-dp --image=harbor.od.com:180/public/nginx:v1.7.9 -n kube-systemdeployment.apps/nginx-dp created[root@hdss7-21 ~]# kubectl get pods -o wide -n kube-system |grep .原创 2021-02-19 13:27:58 · 802 阅读 · 0 评论 -
Kubernetes 设计模式
一、k8s设计-多容器pod设计模式对于Kubernetes中的特定目的,多容器Pod非常有用。虽然并非总是需要将多个容器组合到单个Pod中,但是了解采用的正确模式会创建更强大的Kubernetes部署。什么时候应该将多个容器合并到一个Pod中?当容器具有完全相同的生命周期,或者容器必须在同一节点上运行时。最常见的情况是,您需要在一个与主容器相同的节点上定位和管理一个助手进程。将容器组合到单个容器中的另一个原因是容器中容器之间的通信更加简单。这些容器可以通过共享卷(写入共享文件或目录)和进程转载 2021-03-07 20:52:08 · 613 阅读 · 0 评论 -
ELK讲解
介绍:官网:https://demo.elastic.co/ 能够显示所有的ELK能收集展示的功能最简单的ELK架构。ELK(Elasticsearch , Logstash, Kibana)想要收集谁的日志,就在对应的设备上按装配置fileeat,并且传递给ES,存在ES后,kibana、es-head 提取数据并展示日志收集的分类:代理层:nginx、haproxyweb层: nginxdb层: mysql、redis、MongoDB、esElasticsear...原创 2021-03-07 17:02:52 · 1161 阅读 · 1 评论 -
讲解Elasticsearch中master候选节点以及ES集群脑裂
一、脑裂分析在ES中什么是脑裂:因为ES中master是集群中非常重要的一个角色,主宰了集群状态的维护,以及shard的分配,而如果在一个集群有两个或者多个master的话,会导致一条数据多个master同时进行分配写入数据,导致数据破坏。因此在一个集群必须只有一个master。master是脑,一个脑袋无法裂开,所以叫避免脑裂。脑裂的产生原由:如果因为网络的故障,导致一个集群被划分成了两片,每片都有多个node,其中不能跟master节点通讯的node自行选举成一个新的master,那么集原创 2021-03-07 17:01:48 · 2603 阅读 · 0 评论 -
Zookeeper无法启动Error contacting service. It is probably not running
转载地址:https://blog.csdn.net/u012453843/article/details/70878117在启动zookeeper集群的单个zookeeper节点时总是报如下错误[root@7-2 opt]# /opt/zookeeper/bin/zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper/bin/../conf/zoo.cfgError contacting原创 2021-03-04 18:23:17 · 3202 阅读 · 2 评论