我正在AWS中运行openshift origin 3.6(kube v1.6.1 + 5115d708d7)。 Ansible清单包含云提供程序配置,我可以在主节点上看到配置文件。
# From inventory
# AWS
openshift_cloudprovider_kind=aws
openshift_cloudprovider_aws_access_key="{{ lookup('env','AWS_ACCESS_KEY_ID') }}"
openshift_cloudprovider_aws_secret_key="{{ lookup('env','AWS_SECRET_ACCESS_KEY') }}"
我还配置了一个存储类
# oc get storageclass
NAME TYPE
fast (default) kubernetes.io/aws-ebs
然而,当我尝试创建一个pvc:
kind: "PersistentVolumeClaim"
apiVersion: "v1"
metadata:
name: "testclaim"
namespace: testns
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "3Gi"
storageClassName: fast
它只是无限循环试图获得pvc创建。事件告诉我这个错误:
(combined from similar events): Failed to provision volume with StorageClass "fast": UnauthorizedOperation: You are not authorized to perform this operation. Encoded authorization failure message: $(encoded-message) status code: 403, request id: d0742e84-a2e1-4bfd-b642-c6f1a61ddc1b
不幸的是我无法使用aws cli解码编码的消息,因为它会给出错误。
aws sts decode-authorization-message -–encoded-message $(encoded-message)
Error: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
我没有尝试过pv + pvc创建,因为我正在寻找动态配置。关于我可能做错的任何指导。
到目前为止,我已经能够部署pod,服务等,它们似乎工作正常。
答案 0 :(得分:0)
该错误似乎是AWS IAM错误:
UnauthorizedOperation
您无权执行此操作。检查你的IAM 策略,并确保您使用正确的访问密钥。对于 有关更多信息,请参阅控制访问。如果返回的消息是 编码后,您可以使用DecodeAuthorizationMessage对其进行解码 行动。有关更多信息,请参阅中的DecodeAuthorizationMessage AWS Security Token Service API参考。
http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html#CommonErrors
您需要创建适当的IAM政策:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-manage-volumes