在Kubernetes里使用openkruise实现服务原地升级功能
为什么需要原地升级?在Kubernetes里原生的deployment在升级的时候都是先创建新的Pod,然后删除旧的Pod;而StatefulSet则是先删除旧的Pod,然后创建同名的新的Pod。如果副本数较多,那么在这个过程中就存在多次Pull镜像、多次调度、多次分配网络、挂载PV,如果采用原地升
日期 2021-06-14 阅 13972 OpenKruiseOpenKruise安装原地升级吾八哥学k8s(十一):kubernetes里Pod的调度机制
Pod的调度需求可以应用在非常多的场景里,举个简单的例子:某第三方接口服务器是在北京,那么就希望业务的Pod尽量调度到北京的节点上,以减少网络延时。kubernetes里提供了多种灵活调度的机制,可以根据实际情况来选择使用,下面简单的介绍下各种
日期 2021-05-25 阅 14305 吾八哥学k8s污点容忍TaintToleration吾八哥学k8s(十):kubernetes里Service和Ingress
在kubernetes里我们的服务通常都是有多个Pod的,那么不同的服务之间如何通信呢?如果是用Pod的IP来进行,那么当服务动态扩缩容或者Pod发版重建的时候,Pod的IP地址也是会变化的,这个时候用IP访问就变得极其复杂了。kubernetes引用了Service来解决这种问题,Service主
日期 2021-05-15 阅 23594 吾八哥学k8sk8s里创建Servicek8s里创建IngressService和Ingresskubernetes中服务自定义Prometheus的metrics的方法
本文主要是记录实现在kubernetes集群里golang服务在Prometheus里自定义metrics的实现方法。客户端调用实例这里使用golang的服务来实现,具体代码如下:package mainimport ( "log&qu
日期 2021-05-12 阅 3421 Prometheus自定义metricskubernetes监控k8s集群安装Prometheus监控以及Grafana面板的方法
环境准备kubernetes集群(minikube开启的集群也行)Helm3操作步骤使用helm安装kube-prometheus-stack提示:helm安装方法请参考:https://helm.sh/docs/intro/install/helm repo add
日期 2020-12-17 阅 4589 Prometheuskube-prometheus-stackkubernetes集群证书过期的解决方法
问题现象kubeadm安装的kubernetes集群证书的证书有限期是一年,过期后kubectl命令就无法正常执行了,集群里的pod运行也会有问题的。kubelet的日志大致如下:Jul 13 13:16:12 k8s-master-01 systemd[1]
日期 2020-07-11 阅 10794 k8s集群证书过期kubernetes集群证书过期更新k8s集群证书kubelet启动失败报failed to find cgroups of kubelet的解决方法
错误信息kubelet服务启动不成功,通过journalctl-xefukubelet命令查到的错误日志信息如下:......Jul 5 07:59:33 k8s-master-01 kubelet: E0705 07:
日期 2020-07-09 阅 7924吾八哥学k8s(九):kubernetes里持久化存储
在容器中磁盘文件都是临时的,在容器销毁的时候磁盘文件会丢失,容器始终以最纯净的状态启动,这也是容器一个很重要的特征。但有些场景下却需要一些持久化存储的,例如:程序运行的日志、数据库文件、对象存储文件等,k8s里提供了PersistentVolume(PV)和PersistentVolumeClaim
日期 2020-07-03 阅 3587 吾八哥学k8s持久化存储PVPVCStorageClassmacOs和Linux环境下kubectl命令自动补齐的方法
kubectl命令自动补齐帮助说明Kubernetes提供了命令补齐的帮助说明,执行如下命令:5bug-MacBook:~/codes/projects/k8s-demo$ kubectl completion --helpOutput shell&nbs
日期 2020-05-30 阅 3443 kubectl命令自动补齐kubernetes命令补齐容器里docker登录成功push镜像失败问题踩坑记
近期在做CI集群的迁移,基于阿里云kubernetes服务新建一个k8s集群用于运行gitlab-ci,集群开好了后,通过helm安装好gitlab-runner,然后使用新集群进行测试验证,发现一个头疼的问题,CI里构建好镜像后竟然无法push镜像,提示无权限!错误信息是:denied:&nbs
日期 2020-05-30 阅 4849 docker推送镜像失败docker推送镜像提示无权限吾八哥学k8s(八):kubernetes里Secret的用法
上一篇里学习了ConfigMap的用法,ConfigMap用于存储配置文件,那么今天这里的Secret可以理解为是存储一些密钥类型的配置文件,它的存储比较安全灵活。下面来学习一些基本用法:创建Secret创建secret使用kubectlcreatesecretgeneric...命令,查看
日期 2020-05-17 阅 3850 吾八哥学k8sSecret的用法Secret的创建Secret的删除Secret的使用apps/v1版本下使用client-go实现kubernetes回滚的方法
在extensions/v1beta1版本下,client-go的api接口下的deployment支持rollback方法来回滚,使用方法如下: ...
日期 2020-05-05 阅 5044 client-goclient-go用法client-go实现回滚使用client-go API来实现yaml文件的k8s部署
实现思路yaml文件先转为json格式,然后json反序列化为deployment对象实现代码package mainimport ("context""encoding/json""fmt"
日期 2020-05-05 阅 7198 client-goclient-go用法client-go实现yaml文件部署吾八哥学k8s(七):kubernetes里ConfigMap的用法
什么是ConfigMap?kubernetes通过ConfigMap来实现对容器中应用的配置管理。ConfigMap是一个将配置文件、参数变量等配置信息绑定到Pod容器的组件,ConfigMap允许将配置与Pod和组件分开,然后通过挂载的方式进行使用。ConfigMap的创建支持从文件、目录、字符串
日期 2020-04-26 阅 4176 吾八哥学k8sConfigMap的用法ConfigMap的创建ConfigMap的删除吾八哥学k8s(六):kubernetes扩容、缩容
扩容是用在高峰期访问量过大的情况下,当前deployment的pod数量已经无法支撑业务的时候,需要扩展更多的pod数量。缩容是指在业务空闲期只需要少数的pod即可满足业务需求,太多的pod是资源浪费,所以这个时候就需要缩容。手动扩缩容手动调整pod数量使用kubectlscale命令可以调整po
日期 2020-04-25 阅 4016 吾八哥学k8sk8s扩容k8s缩容HPA配置方法k8s水平自动伸缩