随笔分类 - Kubernetes/OpenShift
摘要:问题复现 前阵子应公司要求做华为云平台的调研,写了一篇文档包含将华为云CCE下载kuberctl配置及使用kubectl转发流量到本地的操作。 今天一早上同事就发来一个错误界面,说是Java远程调试转发过来的端口出现问题,如下图: 处理思路 最初以为是容器镜像未安装socat所致,安装重新打镜像后问
阅读全文
摘要:一行命令解决,注意替换两处待删命名空间字样 ```bash kubectl get namespace "待删命名空间" -o json \ | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \ | kubec
阅读全文
摘要:写在前边 最近公司生产环境的容器云上出了个性能问题,为了做性能分析,使用 JDK 自带的 jmap 收集堆dump,出现了内存溢出导致了容器崩溃。 本篇文章将带你探究,如何规避容器内做堆 dump 导致容器崩溃的问题。适用于低于 Java 8 update 191版本的 JDK。 分析容器崩溃原因
阅读全文
摘要:1 写在前边 自从公司项目前年上了 OpenShift 3.9 私有云平台,更新部署程序的确变得更加容易了。但是带来了很多复杂性,运维实施人员的学习曲线也陡然上升。 上云之前:在项目没上容器云的早期,应用服务集群往往是由一个 Nginx 作为负载均衡器,当有集群中有一个节点出现故障时,只需要将 Ng
阅读全文
摘要:本文目标 由于 OpenShift 官方提供的镜像与模板(OpenJDK8)不完全满足业务需要: 不包含飞行记录功能。只有 OpenJDK11 以上才被 Oracle 开源 生成堆 dump 很大很慢(公司项目 JVM 堆最小16G,最大32G),导出-压缩-传输 较长(半小时以上),对业务停顿时间
阅读全文
摘要:本文要做什么? 很多为了验证应用在 OpenShift 平台的行为是否正常,或者组成一个简单的开发环境,直接搭建一个 OpenShift/Origin 环境可能太重了,而且运行在本机可能占用内存也太多。此时使用 MiniShift 来组成自己的开发环境就比较合适了。 本文就简单介绍下如何配置 Min
阅读全文
摘要:S2I 概念 S2I(Source To Image)即从源码到镜像的一个过程,OpenShift 将它作为基础功能提供给用户,包含 S2I CLI 工具 与 S2I 流程。通过这些工具和既定流程,能去掉开发和运维人员手动打镜像复杂性,只需要点一下构建按钮就能将 Git 仓库中的源码或程序制品打包成
阅读全文
摘要:Rancher 未提供直接获取 Pod 内文件的工具(如果有请评论告知下,蟹蟹),但提供了 Rancher 的 CLI 客户端,通过 CLI 可以调用 k8s 的 CLI (kubectl) 命令来操作集群及复制文件。 为简化操作,本文将 rancher.exe 和 kubectl.exe 都复制到
阅读全文
摘要:问题描述 如图,Rancher2.5.8版本提示 controller-manager,scheduler 不健康,管理的k8s集群版本1.21.1 解决方法 在Master节点执行如下命令: sed -i 's|- --port=0|#- --port=0|' /etc/kubernetes/ma
阅读全文
摘要:错误现象 runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
阅读全文
摘要:为什么写? 最近有项目要用到HPA(Horizontal Pod Autoscaler)依赖了k8s的 metrics 指标才能做出自动缩扩容的动作,我这边用官方GitHub v0.4.2版本启动不起来,经过排查发现是官方的健康检测不通过报500错误。我降级了版本算是启动成功了,为了以后自己能查到和
阅读全文
摘要:说说为啥写本文 春节假前,生产环境(基于Kubernetes的PaaS平台OpenShift)出现使用健康检测探针报错,但应用Pod并未下线的情况,导致服务卡住(某一节点死锁,Service总是负载均衡到此节点)。 查了OpenShift官方文档对此并无提及,在 Kubernetes 官方仓库的 I
阅读全文
摘要:1 楔子 公司有个项目部署在 OpenShift 容器云平台上,出现问题较多,于是萌生在公司环境搭建现场仿真环境,由于资源没有生产环境多,就使用单节点简单模拟下 本文主要内容包括以下: 使用 Dnsmasq 实现 OpenShift 平台的内网域名解析 使用 oc 命令行工具初始化 OpenShif
阅读全文
摘要:【k8s实战一】Jenkins 部署应用到 Kubernetes 01 本文主旨 目标是演示整个Jenkins从源码构建镜像到部署镜像到Kubernetes集群过程。 为了简化流程与容易重现文中效果,做出如下操作: 使用 VBox 创建两台虚拟机 使用 Minikube 初始化简单的k8s集群 使用
阅读全文
摘要:本文内容 在K8s中使用需认证的私服仓库需要导入认证信息到集群中,常规导入方式有两种: 使用Docker已登录的仓库密文导入 使用命令行创建Secret对象导入 本文介绍的就是以上两种方法。 使用Docker已登录的仓库密文导入 1、docker login登录私服仓库,输入账号密码 docker
阅读全文
摘要:问题 执行kubectl命令时报错 #查看日志 kubectl logs xxxxx #进入pod容器 kubectl exec -it xxxx 解决 检查Pod所在节点的防火墙是否开启 #查看Pod所在的Node kubectl get pods -o wide #在Node节点查看防火墙状态
阅读全文
摘要:Kubernetes对象 在Kubernetes中,对象是持久化到etcd中的实体,使用这些对象的状态来表示集群的状态。 创建对象本质上是告知k8s系统期望工作负载是什么样子的,称为期望状态(Desired State)。 操作k8s对象本身就是通过Kubernetes API操作etcd中对象的状
阅读全文
摘要:Kubernetes(以后简称k8s)集群通过提供一系列 API(基于OpenAPI规范),使用户可以简易查询与操作 k8s的资源对象状态。其关键在于k8s的控制平面中的kube-apiserver 组件以HTTP API形式将API暴露出来。即 用户与集群中的对象都是通过kube-apiserve
阅读全文
摘要:说明 本文系搭建kubernetes v1.18.5 集群笔记,使用三台虚拟机作为 CentOS 测试机,安装kubeadm、kubelet、kubectl均使用yum安装,网络组件选用的是 flannel 行文中难免出现错误,如果读者有高见,请评论与我交流 如需转载请注明原始出处 https://
阅读全文