kubernetes - 我想在本地运行 Kubernetes master(和 Dashbaord)吗?
问题描述
我对 Kubernetes 很陌生。我打算使用 CI/CD 管道来帮助我,这意味着我的主节点需要捕获 git webhooks(使用 Spinnaker,很像 Jenkins)。
我想象在远程服务器上运行 Kubernetes 主服务器,但是 9/10 文章关于安装诸如仪表板之类的东西在本地执行(在生产中不起作用,不考虑 SSL,并使用kubectl proxy
你不应该在生产中做的事情,需要没有令牌的匿名身份验证,而是用户用户名和密码等,等等......)。
底线:从我的角度来看,我看到的几乎所有教程和文档都很难应用于生产。
我在这里错过了什么吗?
解决方案
Kubernetes 通过提供安全可靠的访问,甚至向外部公开 Web 资源并使其可以从全球网络访问,提供了许多适应应用程序的能力。尽管 Kubernetes 作为大规模部署的平台很受欢迎,并提供了广泛的功能,但它由一些重要的资源和系统组件组成,按照架构设计。Kubernetes 的基础资源之一是Service,实际上它是集群中 Pod 之间网络通信的抽象层。一旦我们有一个 Kubernetes 集群启动并运行,我们就可以部署一个应用程序并创建一个服务作为网络连接到特定Pod内的这个应用程序容器的主要入口点。
我承认 usingkubectl proxy
只是在特定Node上公开相关应用程序端口的一种方式。但是,当您考虑使应用程序可以在集群外部访问时NodePort
,LoadBalancer
服务可以通过在主机上共享应用程序端口或通过外部负载均衡器提供的外部 IP 地址来实现。但是,它只是 Kubernetes 功能的一部分,因为您可以实现Ingress以通过 HTTP 和 HTTPS 流量并管理路由流量和 SSL/TLS 终止,作为连接到嵌套应用程序 (Pod) 服务的边缘设备。
有一些更全面的开源Ingress
资源,如Nginx Ingress Controller、Traefik等,具有更高级的功能集,用于流量管理、路由和保护与目标微服务的连接。但是,一些云提供商提供自己的Ingress
资源来执行负载平衡并将 HTTP[s] 流量路由到集群内的不同端点,例如AWS 中的AWS ALB 入口控制器。
推荐阅读
- python - 建议命令在 discord.py 中不起作用
- android - Admob 广告未显示展示次数或点击次数
- keras - 结合文本和结构化数据时,Keras 函数式 API 的结果很差
- c# - 连续多次调用 AutoResetEvent 的 Set() 方法
- ethereum - 为什么我不能使用这个 transferEther 函数将 Ether 发送到智能合约?
- arrays - C 编程数组
- javascript - 如何从点击事件中获取 id
- c# - 应用程序今天工作正常,现在不行。没有任何改变,也没有错误
- python - 电报机器人显示频道或组信息python
- javascript - 错误:网络错误:使用 axios.put 方法多次请求服务器 net::ERR_TOO_MANY_REDIRECTS