K8S ingress 传递用户真实IP Kubernetes
0x01 前言
今天发现后端获取到的用户客户端ip都是内网地址 172.29.241.163。
访问逻辑为:用户访问->nginx->k8s-ingress->后端pod。
但是后端pod获取客户端的ip一直是172.29.241.163,原来这个ip的ingress的上游nginx的ip。
# nginx节点
root@iZbp12bku...
Docker部署minio Kubernetes
1、docker minio 单机挂载单盘
run起来后直接访问http9001就是面板
docker run -it -d --name minio \
--restart=always \
-p 9000:9000 \
-p 9001:9001 \
-v /data/minio/data:/data \
-e "MINIO_ROOT_USER=admin...
K8S部署Fluentd日志采集并推送到Elastic Kubernetes
0x01 前言
使用 fluentd 可以从每个容器收集 stdout/stderr 日志,以及在每个主机上 /var/log/containers/ 路径下的日志文件,日志将被发送到被选择的目标服务。
这里主要记录下Fluentd的部署过程,如何通过Fluentd把K8S集群Pod日志推送到Elastic上,Elastic和Kibana的部署不在这里赘述。...
清理Docker容器日志bash Docker
#!/bin/sh
# 清理Docker容器日志文件的脚本
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo -n "clean logs :"; du -sh $log
cat /dev/null > $log
...
在使用Rancher2.5管理的K8S集群中,解决Rancher不可用时通过kubectl进行集群管理的问题 Kubernetes
0x00 前言
最近在管理Rancher2.5部署的K8S集群发现一个问题,一旦Rancher Server不可用,直接在K8S master通过kubectl管理集群也会提示连接不到api提示不可用。
分析Rancher UI生成的kubeconfig文件可以发现,当kubectl访问K8S API SERVER的时候,请求是先发送到Rancher,然后再...
K8S使用NodePort时,无法在主机上看到监听的端口 - 探究原因 Kubernetes
0x00 前言
在新版K8S中,即便 Service 使用 nodeport 暴露,在 node 中使用netstat -anp 或者ss -nlt命令上也看不到 kube-proxy 监听的端口了,但是 nodeport 访问是正常的。
Kubernetes服务不是作为侦听特定端口的进程来实现的。取而代之的是使用iptables (或IPVS),服务基本上...
K8S滚动更新Java项目的一些踩坑经验分享 Kubernetes
1、滚动更新之健康检查重要性
spec:
containers:
- name: my-container
readinessProbe:
tcpSocket:
port: 9999
initialDelaySeconds: 60
periodSeconds: 10
...
K8S 基于Metrics Server CPU指标的pod弹性伸缩(HPA) Kubernetes
0x00 前置条件
1、开启K8S API聚合。关于API聚合:https://kubernetes.io/zh-cn/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/
2、集群中安装Metrics Server。
0x01 开启Kubernetes API Aggreg...
K8S HPA(Horizontal Pod Autoscaler)介绍 Kubernetes
0x00 HPA基本介绍
Kubernetes 中的 Metrics Server 持续采集所有 Pod 副本的指标数据。HPA 控制器通过 Metrics Server 的 API(Heapster 的 API 或聚合 API)获取这些数据,基于用户定义的扩缩容规则进行计算,得到目标 Pod 副本数量。当目标 Pod 副本数量与当前副本数量不同时,HPA ...
K8S Ingress-nginx实现金丝雀灰度发布 Kubernetes
0x00 Ingress金丝雀发布介绍
Nginx Annotations 支持以下 4 种 Canary 规则:
(1)nginx.ingress.kubernetes.io/canary-by-header:
基于 Request Header 的流量切分,适用于灰度发布以及 A/B 测试。当 Request Header 设置为 always时,请求将...