2024-9-14 myluzh Kubernetes
0x01 部署Kibana 1、编写yaml文件 apiVersion: v1 kind: Service metadata: name: kibana namespace: elastic-worker labels: k8s-app: kibana kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile kubernetes.io/name: "Kibana" srv: srv-kibana spec: type: NodePort ports: - port: 5601 nodePort: 30000 protocol: TCP targetPort: ui selector: k8s-app: kibana --- apiVersion: apps/v1 kind: Deployment metadata: name: kibana namespace: elastic-worker ...2024-9-14 myluzh Kubernetes
0x00 制作带有证书的镜像 基于 Elasticsearch 的官方镜像创建一个新的自定义镜像,将证书文件包含在内。 1、生成证书 # 创建一个es-temp容器,生成elastic-certificates.p12 docker run -it --name es-temp elasticsearch:7.17.24 bash -c "bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass '' && ls -l config/elastic-certificates.p12" # 把es-temp里面的elastic-certificates.p12复制到本地来 docker cp es-temp:/usr/share/elasticsearch/config/elastic-certificates.p12 ./elastic-certificates.p12 2、构建镜像 FROM elasticsearch:7.17.24 LABEL maintainer="myluzh <...2024-9-6 myluzh Kubernetes
0x00 概述 在 Kubernetes 中,ResourceQuota 和 LimitRange 是两种用于管理命名空间资源使用的重要机制。它们帮助确保集群资源的有效分配,防止资源过度消耗。下面将介绍如何配置这两种机制,并解释它们的相互作用。 ResourceQuota: 适用于整个命名空间,限制命名空间中所有 Pod 的总资源使用量。 如果命名空间中的资源总使用量超出配额,则无法创建新的资源(例如,Pod、服务等)。 LimitRange: 适用于命名空间中的单个 Pod 和容器,确保它们的资源请求和限制在指定的范围内。 如果容器的资源请求或限制超出 LimitRange 定义的范围,Kubernetes 将拒绝 Pod 的创建。 0x01 使用 ResourceQuota 限制命名空间的总资源 ResourceQuota 用于设置一个命名空间中所有资源的总量上限。这包括 CPU、内存、存储、Pod 数量等。它确保命名空间中的资源使用不会超出指定的配额。 apiVersion: v1 kind: ResourceQuota metadata: name: example-quota ...2024-9-4 myluzh Kubernetes
0x01 部署单节点redis 注意:如果需要持久化就把容器的/data目录挂载出来。 apiVersion: v1 kind: ConfigMap metadata: name: redis-config namespace: test # 根据实际情况调整 data: redis.conf: | # 监听所有网络接口 bind 0.0.0.0 # 设置Redis密码 requirepass qwer1234 # 关闭保护模式,允许远程连接 protected-mode no # 配置内存使用最大量 maxmemory 2147483648 # 内存满时的淘汰策略为volatile-lru,即仅对设置了过期时间的键使用LRU淘汰策略。 maxmemory-policy volatile-lru # 设置日志文件路径 logfile "/data/redis.log" # RDB快照,每 600 秒(10 分钟)和至少 120 个键被修改时执行持久化操作。 ...标签: k8s redis k8s部署 redis集群 redis-operater operater operater.io
2024-8-9 myluzh Kubernetes
0x01 Nacos心跳时间 Nacos心跳检测时间 Nacos 目前支持临时实例使用心跳上报方式维持活性,发送心跳的周期默认是 5 秒,Nacos 服务端会在 15 秒没收到心跳后将实例设置为不健康, 在 30 秒没收到心跳时将这个临时实例摘除(这里要注意30秒这个时间)。 0x02 Nacos下线应用接口 在Nacos OpenAPI:(https://nacos.io/zh-cn/docs/open-api.html )中有写明,可以通过/nacos/v1/ns/instance修改实例来完成应用下线,例如: curl -X PUT "http://172.30.233.87:8848/nacos/v1/ns/instance?serviceName=xfshcloud-dxp&clusterName=DEFAULT&groupName=DEFAULT_GROUP&ip=10.42.1.89&port=9208&ephemeral=true&weight=1&enabled=false&namespaceId=a9076f...2024-8-2 myluzh Kubernetes
0x01 什么是优雅停止? 优雅终止是 Kubernetes 中一个非常重要的概念,它关系到服务的稳定性和用户体验。通过合理配置和使用 Kubernetes 提供的工具,我们可以确保应用在终止时能够做到尽可能的平滑和优雅,这不仅提升了系统的可靠性,也增强了用户对服务的信任。 优雅终止指在终止应用或服务时,确保当前正在进行的操作能够正常完成,同时避免新请求的进入,使得服务能够平稳地关闭。在 Kubernetes 中,这通常涉及到 Pod 的终止流程。 0x02 Pod 终止流程 1、Pod 状态变为 Terminating Pod 被删除,API 层面上 metadata.deletionTimestamp 字段会被标记上删除时间。 2、更新转发规则 kube-proxy 发现 Pod 被删除,开始更新转发规则,将 Pod 从 service 的 endpoint 列表中摘除掉,新流量不再转发到该 Pod。 3、销毁 Pod kubelet 发现 Pod 被删除,开始销毁 Pod。 执行 PreStop Hook:如果 Pod 中有配置 preStop Hook,Kubernetes 会执行这些命令。 ...