我正在尝试使用此处提到的步骤 -> http://kubernetes.io/docs/getting-started-guides/openstack-heat/
命令KUBERNETES_PROVIDER=openstack-heat ./cluster/kube-up.sh
在以下消息中失败:
... Starting cluster using provider: openstack-heat
... calling verify-prereqs
swift client installed
glance client installed
nova client installed
heat client installed
openstack client installed
... calling kube-up
kube-up for provider openstack-heat
[INFO] Execute commands to create Kubernetes cluster
[INFO] Uploading kubernetes-server-linux-amd64.tar.gz
kubernetes-server.tar.gz
[INFO] Uploading kubernetes-salt.tar.gz
kubernetes-salt.tar.gz
[INFO] Image CentOS7 already exists
[INFO] Key pair already exists
Stack not found: KubernetesStack
[INFO] Retrieve new image ID
[INFO] Image Id 44284b7f-4f83-4c5d-89a2-992fab6ddaa3
[INFO] Create stack KubernetesStack
b'#cloud-confignmerge_how: dict(recurse_array)+list(append)nbootcmd:n - mkdir -p /etc/salt/minion.dn - mkdir -p /srv/salt-overlay/pillarnwrite_files:n - path: /etc/salt/minion.d/log-level-debug.confn content: |n log_level: warningn log_level_logfile: warningn - path: /etc/salt/minion.d/grains.confn content: |n grains:n node_ip: $MASTER_IPn publicAddressOverride: $MASTER_IPn network_mode: openvswitchn networkInterfaceName: eth0n api_servers: $MASTER_IPn cloud: openstackn cloud_config: /srv/kubernetes/openstack.confn roles:n - $rolen runtime_config: ""n docker_opts: ""n master_extra_sans: "DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local,DNS:kubernetes-master"n keep_host_etcd: truen kube_user: $KUBE_USERn - path: /srv/kubernetes/openstack.confn content: |n [Global]n auth-url=$OS_AUTH_URLn username=$OS_USERNAMEn password=$OS_PASSWORDn region=$OS_REGION_NAMEn tenant-id=$OS_TENANT_IDn [LoadBalancer]n lb-version=$LBAAS_VERSIONn subnet-id=$SUBNET_IDn floating-network-id=$FLOATING_NETWORK_IDn - path: /srv/salt-overlay/pillar/cluster-params.slsn content: |n service_cluster_ip_range: 10.246.0.0/16n cert_ip: 10.246.0.1n enable_cluster_monitoring: influxdbn enable_cluster_logging: "true"n enable_cluster_ui: "true"n enable_node_logging: "true"n logging_destination: elasticsearchn elasticsearch_replicas: "1"n enable_cluster_dns: "true"n dns_server: 10.246.0.10n dns_domain: cluster.localn enable_dns_horizontal_autoscaler: "false"n federations_domain_map: ''n instance_prefix: kubernetesn admission_control: NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,DefaultStorageClass,ResourceQuotan enable_cpu_cfs_quota: "true"n network_provider: nonen opencontrail_tag: R2.20n opencontrail_kubernetes_tag: mastern opencontrail_public_subnet: 10.1.0.0/16n e2e_storage_test_environment: "false"n' is not JSON serializable
对于kube-up.sh命令的不同执行,最后一行是不同的。我注意到这对应于/cluster/openstack-heat/kubernetes-heat/kubecluster.yaml
中存在的YAML和SH文件。在此示例中,这是./cluster/openstack-heat/kubernetes-heat/fragments/configure-salt.yaml
由于某种原因,它无法将这些文件的内容合并到kubecluster.yaml中。
有什么想法?
设法解决了这个问题。这是因为python-heatclient 1.1.0
中的错误。https://bugs.launchpad.net/python-heatclient/bug/1589519
升级到版本1.3.0解决了问题。