关于Kubernetes Python客户端与常规Python的差异及K8s 1.21环境下Python交互依赖的技术咨询
Great questions! Let's break them down one by one:
常规Python是通用的编程语言环境,提供基础语法、标准库等核心能力,但本身没有内置任何与Kubernetes API交互的功能。而Kubernetes Python客户端是基于常规Python开发的第三方专用库,它封装了Kubernetes的REST API,帮你省去手动编写HTTP请求、处理认证、序列化/反序列化K8s资源对象等繁琐工作,让你可以用简洁的Python代码直接执行各种K8s操作——比如创建Deployment、查询Pod状态、修改Service配置等等。
简单总结:常规Python是"基础工具包",Kubernetes Python客户端是"专门用来操作K8s的扩展工具",二者是基础与扩展的关系,并非替代关系。
答案是需要。容器里预装的Python 3.9.2只是基础的Python运行环境,默认不会包含Kubernetes Python客户端这个第三方库,必须手动安装后才能在Python代码中与K8s集群交互。
安装步骤很简单,用pip即可:
pip install kubernetes
这里要注意版本兼容性:Kubernetes的API版本与客户端版本一一对应,你使用的是K8s 1.21,建议安装官方适配的对应版本(比如kubernetes==21.7.0),避免出现API不兼容的问题。
额外提个实用细节:如果你的应用运行在K8s集群内部的Pod中,安装好客户端后,它会自动利用Pod挂载的ServiceAccount凭证与K8s API服务器通信,无需手动配置kubeconfig文件,非常便捷。
内容的提问来源于stack exchange,提问作者Reid K

