本文介绍了如何管理运行在特定云供应商上的 Kubernetes 集群。

AWS

本节介绍在 Amazon Web Services 上运行 Kubernetes 时可以使用的所有配置。

负载均衡器

用户可以通过配置注解(annotations)来设置 外部负载均衡器,以在 AWS 中使用特定功能,如下所示:

apiVersion: v1
kind: Service
metadata:
  name: example
  namespace: kube-system
  labels:
    run: example
  annotations:
     service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:xx-xxxx-x:xxxxxxxxx:xxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx #replace this value
     service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
spec:
  type: LoadBalancer
  ports:
  - port: 443
    targetPort: 5556
    protocol: TCP
  selector:
    app: example

可以使用 注解 将不同的设置应用于 AWS 中的负载平衡器服务。 下面描述了 AWS ELB 所支持的注解:

AWS 相关的注解信息取自 aws.go 文件的注释。

OpenStack

本节介绍了使用 OpenStack 运行 Kubernetes 时所有可用的配置。

cloud.conf

Kubernetes 知道如何通过文件 cloud.conf 与 OpenStack 进行交互。 该文件会为 Kubernetes 提供证书和 OpenStack 认证端点的区位信息。 用户可以通过在其中指定以下信息来创建 cloud.conf 文件。

最小配置

这是一个最小配置的例子,它涉及最常用的值:

[Global]
username=user  
password=pass  
auth-url=https://<keystone_ip>/identity/v3  
tenant-id=c869168a828847f39f7f06edd7305637  
domain-id=2a73b8f597c04551a0fdc8e95544be8a

[LoadBalancer]
subnet-id=6937f8fa-858d-4bc9-a3a5-18d2c957166a  

全局配置

负载均衡器

可选配置

块存储

Kubernetes 利用 OpenStack 服务目录对它知道如何使用的服务进行定位,包括 Cinder 块存储服务。 然而,云供应商的配置中包含一个附加选项,可以影响块存储 API 的使用方式:

如果在 OpenStack 上部署 Kubernetes <= 1.8 的版本,同时使用路径而不是端口来区分端点(endpoints),那么可能需要显式设置 bs-version 参数。 基于路径的端点形如 http://foo.bar/volume ,而基于端口的的端点形如 http://foo.bar:xxx

在使用基于路径的端点,并且 Kubernetes 使用较旧的自动检索逻辑的环境中,尝试卷卸载(detachment)会返回 BS API version autodetection failed. 错误。 为了解决这个问题,可以通过添加以下内容到云供应商配置中,来强制使用 Cinder API V2 版本。

[BlockStorage]
bs-version=v2