Service与Ingress服务发现控制器
在 Kubernetes 中,Service 和 Ingress 是两种不同的资源类型,它们都用于处理网络流量,但用途和工作方式有所不同。
Service 是 Kubernetes 中的一个抽象,它定义了一组 Pod(通常是由 Deployment 或 StatefulSet 管理的)和访问它们的策略。Service 可以确保网络流量被路由到正确的 Pod,即使这些 Pod 被重新调度到了其他节点。Service 通常用于在 Kubernetes 集群内部进行服务发现和负载均衡。
Ingress 是 Kubernetes 中的一个 API 对象,它管理外部访问集群中的服务。它可以提供 HTTP 和 HTTPS 路由到集群内部的 Service,基于主机名和 URL 路径进行路由。Ingress 通常需要一个 Ingress 控制器来实现,例如 NGINX Ingress 控制器,Traefik 或者其他的云提供商的 Ingress 控制器。
存储、配置与角色
这些都是 Kubernetes 中的不同资源类型,每种类型都有其特定的用途:
Volume: 在 Kubernetes 中,Volume 是一个 Pod 中可以访问的存储区域。Volume 的生命周期与 Pod 相关联,不同于容器,Pod 中的 Volume 不会因为容器的重启而丢失。
CSI (Container Storage Interface): CSI 是一种标准化的接口,用于 Kubernetes 容器编排系统和存储系统之间的交互。通过 CSI,存储提供商可以开发一次插件,并在所有兼容 CSI 的容器编排系统中使用。
ConfigMap: ConfigMap 是 Kubernetes 中用于存储非机密数据的资源对象。这些数据可以包括配置文件、命令行参数或环境变量。
Secret: Secret 与 ConfigMap 类似,但用于存储敏感信息,如密码、OAuth 令牌或 ssh 密钥。
DownwardAPI: DownwardAPI 是 Kubernetes 中的一个特性,允许 Pod 获取有关自己或集群环境的信息。
Role 和 RoleBinding: Role 是 Kubernetes 中的一种资源,定义了一组权限(如读取 Pod 的权限)。RoleBinding 则将这些角色分配给用户、组或 ServiceAccounts。