https://stackoverflow.com/a/55615885
https://community.chocolatey.org/packages/redis
https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-windows/
在复杂的云原生环境中,确保各组件间的连接至关重要。本文将分享一个在Azure Kubernetes Service (AKS) 的Windows容器中测试Redis SSL连接的曲折历程,最终找到了一个出人意料的简单解决方案。
我们的项目是一个基于ASP.NET的Sitecore应用,部署在Azure Kubernetes Service的Windows容器中。整个系统包含多个组件:
我们计划将内部的Redis服务迁移到Azure Redis服务,这需要我们验证新的连接是否正常工作。
最直观的测试方法是使用redis-cli
,但我们很快发现Windows容器环境带来的限制:
redis-cli
我们尝试了一些PowerShell模块来测试Redis连接:
遗憾的是,这些方案要么安装困难,要么无法成功连接。
我们的Redis Pod是基于Linux的,已预装了redis-cli
。然而:
--tls
参数redis-cli
因权限问题而失败考虑到有人使用Python测试Redis连接,我们尝试在Windows容器中安装Python:
Invoke-WebRequest https://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe -OutFile python-3.9.5.exe
但这个尝试也以失败告终,出现了意料之外的网络错误。
在多次失败后,我们想起之前曾通过Chocolatey成功安装了Vim。抱着试一试的心态,我们尝试安装Redis:
choco install redis
出乎意料的是,这个命令竟然成功了!不仅如此,它还安装了最新版本(7.4.1)的redis-cli。这个发现令人兴奋不已,因为它提供了一个在Windows容器中轻松获取redis-cli的方法。
有了redis-cli
,我们终于可以进行全面的连接测试:
redis-cli -h <host> -p 6379 -a <password>
redis-cli --tls --insecure -h <host> -p 6380 -a <password>
注意:SSL连接需要额外的--tls
和--insecure
参数。
这次经历让我们认识到,在复杂的容器环境中,有时最简单的解决方案可能被忽视。Chocolatey作为Windows的包管理器,在容器环境中展现出了惊人的实用性。
对于需要在Windows容器中测试Redis连接的开发者,我们强烈推荐尝试使用Chocolatey安装redis-cli
。这不仅简化了安装过程,还确保了你能获得最新版本的工具。
希望这篇文章能为遇到类似问题的同仁提供帮助,让你在Azure Kubernetes的Windows容器中更轻松地管理和测试Redis连接。
还没有人评论,抢个沙发吧...