我对Kubernetes非常陌生。我打算用来帮助我处理CI / CD管道,这意味着我的主节点将需要捕获git webhooks(与Spinnaker一样,很像Jenkins)。
我想象在远程服务器上运行Kubernetes主服务器,但是9/10篇有关安装Dashboard之类的文章都是在本地进行的(在生产中不起作用,没有考虑SSL,并使用pad.onBegin = function(event) {
console.log('pad.onBegin has been called.', event);
};
之类的东西您不应该在生产环境中执行此操作,需要不带令牌的匿名身份验证,而是用户名和密码等,等等,等等。)
最重要的是:从我的角度来看,几乎我见过的几乎所有教程和文档都无法应用于生产。
我在这里想念东西吗?
答案 0 :(得分:1)
Kubernetes提供了许多功能,可通过提供安全性和可靠的访问,甚至从外部公开Web资源并使其可从全球网络访问来适应应用程序。尽管Kubernetes作为用于大规模部署的平台而流行,并提供了广泛的功能集,但它根据体系结构Design包含一些重要的资源和系统组件。 Kubernetes的基本资源之一是Service,实际上,它是集群中Pod之间网络通信的抽象层。一旦我们建立并运行了Kubernetes集群,就可以部署应用程序并创建服务,作为与特定Pod内的该应用程序容器进行网络连接的主要入口点。
我承认使用kubectl proxy
只是在特定Node上公开相关应用程序端口的一种方法。但是,当您考虑使应用程序在群集NodePort
和LoadBalancer
之外可访问时,服务可以通过共享主机上的应用程序端口或通过向外的负载均衡器提供的外部IP地址来实现。但是,它只是Kubernetes功能的一部分,您可以实现Ingress以便通过HTTP和HTTPS流量并管理路由流量和SSL / TLS终止作为连接到嵌套应用程序的边缘设备(Pod )服务。
有一些更全面的开源Ingress
资源,例如Nginx Ingress Controller,Traefik等,具有用于流量管理,路由和保护与目标微服务的连接的更高级功能集。但是,某些云提供商会提供自己的Ingress
资源,以执行负载平衡并将HTTP [s]流量路由到群集中的不同端点,例如AWS中的AWS ALB Ingress Controller。
答案 1 :(得分:0)
您可以将kubernetes集群部署在私有子网中,并在公共子网中使用revers-proxy(例如NGINX)公开它,以进行身份验证,您可以创建SSL证书(https://github.com/kubernetes/dashboard/wiki/Certificate-management)。
您可以使用conf文件从Spinnaker / jenkins / gitCI连接到kubernetes集群,您可以在其中提供已创建的证书。