Kubernetes 服务发现之 Ingress 进阶
本文介绍了Ingress的进阶使用示例,包括实现重定向、路由跳转、自定义Nginx配置、CORS支持及限流功能。通过在Ingress对象的注解中设置相应参数,可以灵活地控制HTTP请求的行为。例如,利用`nginx.ingress.kubernetes.io/permanent-redirect`进行URL重定向,使用`nginx.ingress.kubernetes.io/rewrite-target`实现路径重写,以及通过`nginx.ingress.kubernetes.io/enable-cors`启用跨源资源共享等。此外,文章还提供了关于Ingress配置的一些注意事项,如确保路径定义清晰以避免冲突、正确处理HTTPS请求等,强调了理解和遵循这些规则的重要性,以确保高效且安全的服务部署。
🤝分享
未读
itrem基本使用
本文详细介绍了iTerm2的安装与配置方法,包括下载iTerm2并添加至应用程序、克隆或下载主题、下载Nerd Font字体、设置状态栏组件显示及调色、安装oh-my-zsh及其插件(如zsh-autosuggestions和zsh-syntax-highlighting)、安装starship命令行提示符工具以及fzf模糊搜索工具。此外,还介绍了如何安装tmux窗口分割工具,并提供了详细的.zshrc文件配置示例。文章进一步讲解了如何修改iTerm2默认大小、配置导出与迁移的方法,lrzsz上传下载工具的使用步骤,以及在Mac中永久区分文件/文件夹颜色的方法。最后,文章探讨了如何在iTerm2中设置option箭头快捷键,利用多屏同时操作多个ssh终端,解决滚动滚轮触发命令行历史记录的问题等高级功能。通过这些步骤,用户可以极大地提高iTerm2的使用效率和个性化体验。
Kubernetes 控制器之 ConfigMap
Kubernetes中的ConfigMap是一种用于存储非敏感信息的资源对象,它通过键值对形式向Pod提供配置信息,使得应用配置更加灵活且可移植。ConfigMap支持多种使用方式,包括作为环境变量、命令行参数或挂载为数据卷等,并且可以挂载多个ConfigMap以分离不同方面的配置。ConfigMap是命名空间级别的资源,可通过Kubernetes API进行管理。文章还提供了创建、更新、查看和删除ConfigMap的具体操作示例,如使用文件、env文件、字符串或者YAML格式定义的资源清单来创建ConfigMap。此外,介绍了如何通过修改资源清单或重新创建的方式来更新现有的ConfigMap。
Kubernetes 控制器之 StatefulSet
Kubernetes 中的 StatefulSet 是一种高级 API 对象,用于管理有状态应用的生命周期。它确保指定数量的 Pod 副本始终运行且是最新的,并通过保持 Pod 的有序性、持久性和唯一性来支持有状态应用。StatefulSet 控制器为每个 Pod 分配唯一的序号、提供持久化存储卷并保证其名称唯一,从而实现对数据的持续访问和个性化体验。此外,StatefulSet 支持滚动更新策略,允许逐步更新而不中断服务,并具备自动修复和版本回滚功能。通过无头服务(Headless Service),StatefulSet 还可以实现 Pod 间的直接通信。常用操作包括创建、更新、回滚、查看及删除 StatefulSet,以及调整副本数量。
Kubernetes 控制器之 ConfigMap 与 Secret 异同
ConfigMap和Secret都是Kubernetes中用于存储配置数据的资源,允许Pod通过环境变量或卷挂载访问这些信息。两者都可以使用命令行工具或API创建,并以键值对形式存储数据。当它们的内容更新时,相关的Pod需要手动重启才能获取到最新的配置。此外,ConfigMap与Secret都支持RBAC规则来管理访问权限。
不同之处在于:ConfigMap适用于非敏感数据(如普通配置文件),而Secret则专为敏感数据(如密码、令牌)设计;Secret中的数据默认加密存储于Etcd,提供更高安全性;ConfigMap不区分类型,但Secret有多种类型(例如Opaque);虽然ConfigMap理论上没有大小限制,但推荐不超过1MB,相比之下Secret由于加密原因通常具有更严格的大小约束;最后,在默认情况下,ConfigMap对所有用户开放,而Secret则需更加严格地控制访问权限。
Kubernetes 控制器之 Secret
Kubernetes中的Secret是一种用于存储敏感信息(如密码、密钥)的资源对象,它通过键值对的形式提供经过base64编码的数据给应用程序,增强了配置的灵活性和安全性。与ConfigMap不同,Secret支持多种类型(如Opaque, kubernetes.io/dockerconfigjson等),且自Kubernetes 1.7起,默认在etcd中以加密形式保存数据。Secret是命名空间级别的,并可通过Kubernetes API进行管理。创建Secret有多种方式,包括使用文件、环境变量文件、直接指定字符串或通过YAML文件定义;更新时可以通过修改后重新应用或直接更新YAML文件实现;查看和删除操作也提供了相应的命令行工具支持。
Kubernetes 控制器之 CronJob
CronJob 是 Kubernetes 中用于周期性执行任务的 API 对象,它基于时间调度配置,在指定时间创建并运行 Job。CronJob 适用于定时备份、检查等场景。其工作流程包括定义 CronJob 对象、监控状态、按计划生成 Job、执行任务、监控 Pod 状态、记录历史及清理资源。CronJob 支持复杂的时间表、并发策略、失败重试、暂停与恢复等功能,并允许设置时区和死信队列。通过 `cronjob.yaml` 文件可定义 CronJob,示例中展示了每天 00:10 执行打印数字的任务。常用操作包括创建、查看和删除 CronJob。

