6 - Kubernetes Services


部署Kubernetes, RKE在节点上以Docker容器方式部署几个核心组件或服务,根据节点的角色,部署的容器不同。

所有服务都支持额外的自定义参数、Docker卷和额外的环境变量.

一、etcd

  • Etcd是一个可靠、一致且分布式的键值存储,Kubernetes使用etcd作为集群状态和数据的存储;
  • RKE支持在单节点模式或HA集群模式下运行etcd,它还支持向集群添加和删除etcd节点;
  • 可以启用etcd自动定时快照功能,这些快照可用于恢复etcd集群;
  • 默认情况下,RKE将全新部署etcd服务。但也可以使用已有的外部etcd服务运行Kubernetes 。

二、Kubernetes API Server

Rancher 2用户注意事项 如果在创建Rancher Launched Kubernetes时使用Config File 配置集群选项,服务的名称应该只包含下划线,比如: kube_api,这仅适用于Rancher v2.0.5和v2.0.6。

Kubernetes APIREST服务,它处理所有Kubernetes对象的请求和数据,并为其他Kubernetes组件提供共享状态。

  1. services:
  2. kube-api:
  3. # 在Kubernetes上创建服务的IP范围
  4. # 这个值必须与kube-controller中的service_cluster_ip_range相同
  5. service_cluster_ip_range: 10.43.0.0/16
  6. # NodePort服务映射端口范围
  7. service_node_port_range: 30000-32767
  8. pod_security_policy: false
  9. # 启用总是拉取镜像
  10. # 可用版本 v0.2.0
  11. always_pull_images: false

1、Kubernetes API Server设置选项

RKE支持kube-api服务的以下设置选项:

  • Service Cluster IP Range (service_cluster_ip_range)

这是将分配给Kubernetes创建的服务的虚拟IP地址。默认情况下,cluster IP范围是10.43.0.0/16。如果要更改此值,必须在Kubernetes控制器管理器(kube-controller)服务上配置相同的值。

  • Node Port Range (service_node_port_range)

使用NodePort类型创建的Kubernetes服务的端口范围,默认情况下,端口范围为30000-32767

  • Pod Security Policy (pod_security_policy)

启用Kubernetes Pod安全策略选项,默认不启用pod安全策略(pod_security_policy: false)。

注意: 如果将pod_security_policy值设置为true, RKE将配置一个开放策略,允许所有Pod在集群上工作,您需要配置自己的策略来充分利用PSP(pod_security_policy)。

  • Always Pull Images (always_pull_images)

启用总是spullimages承认控制器插件。启用AlwaysPullImages是一种安全最佳实践,它强制Kubernetes验证镜像并使用远程镜像仓库获取凭据。仍然使用本地镜像层缓存,但是在启动容器时拉取和比较镜像散列时,确实增加了一点开销。

注意:从v0.2.0开始可用

三、Kubernetes Controller Manager

Rancher 2用户注意事项 如果在创建Rancher Launched Kubernetes时使用Config File 配置集群选项,服务的名称应该只包含下划线,比如: kube_controller,这仅适用于Rancher v2.0.5和v2.0.6。

Kubernetes Controller Manager服务是负责运行Kubernetes主控制循环的组件。控制器管理器通过Kubernetes API服务器监视集群所需的状态,并对当前状态进行必要的更改以达到所需的状态。

  1. services:
  2. kube-controller:
  3. # 集群中的pod分配IP地址池
  4. cluster_cidr: 10.42.0.0/16
  5. # 在Kubernetes上创建的服务的IP范围
  6. # 这个值必须与kube-api中的service_cluster_ip_range相同
  7. service_cluster_ip_range: 10.43.0.0/16

1、Kubernetes Controller Manager Options

RKE支持kube-controller服务的以下设置选项:

  • Cluster CIDR (cluster_cidr)

CIDR池用于为集群中的pod分配IP地址,默认情况下,集群中的每个节点都从这个池中分配一个(/24)位的子网来分配ip给pod,这个选项的默认值是10.42.0.0/16

  • Service Cluster IP Range (service_cluster_ip_range)

这将分配给Kubernetes上创建的服务的虚拟IP地址。默认情况下, cluster IP范围是10.43.0.0/16。如果要更改此值,必须在Kubernetes控制器管理器(kube-api)服务上配置相同的值。

四、Kubelet

kubelet服务充当Kubernetes的节点代理,它运行在RKE部署的所有节点上,并使Kubernetes能够管理节点上的容器运行时。

  1. services:
  2. kubelet:
  3. # 集群的搜索域
  4. cluster_domain: cluster.local
  5. # DNS服务IP地址
  6. cluster_dns_server: 10.43.0.10
  7. # 禁止swap
  8. fail_swap_on: false

1、Kubelet 设置选项

RKE支持kubelet服务的以下设置选项:

  • Cluster Domain (cluster_domain)

集群的base domain,默认情况下,被设置为cluster.local

  • Cluster DNS Server (cluster_dns_server)

分配给集群内DNS服务IP地址。DNS查询将发送到KubeDNS使用的这个IP地址,这个选项的默认值是10.43.0.10

  • Fail if Swap is On (fail_swap_on)

在Kubernetes中,如果节点上启用了swap, kubelet的启动将报错。RKE不遵循此缺省值,允许在启用交换的节点上部署。默认情况下,值为false。如果您想恢复到默认的kubelet设置,请将此选项设置为true

五、Kubernetes Scheduler

Kubernetes Scheduler服务负责根据各种配置、指标、资源需求和特定于工作负载的需求调度集群工作负载。目前,RKE不支持scheduler服务的任何特定设置选项。

六、Kubernetes Network Proxy

Kubernetes network proxy服务运行在所有节点上,并管理Kubernetes为TCP/UDP端口创建的端点。目前,RKE不支持kube proxy服务的任何特定设置选项。