我们在尝试使用持久卷时遇到openhift aws部署问题。
尝试部署mysql-persistent实例时,这些是一些错误。
- 无法为pod安装卷" mysql-4-uizxn_persistent-test":云提供商不支持卷 - 错误同步窗格,跳过:云提供商不支持卷
我们在每个节点node-config.yaml
上添加了以下内容kubeletArguments:
cloud-provider:
- "aws"
cloud-config:
- "/etc/aws/aws.conf"
并将以下内容添加到我们的master-config.yaml
中kubernetesMasterConfig:
apiServerArguments:
cloud-provider:
- "aws"
cloud-config:
- "/etc/aws/aws.conf"
controllerArguments:
cloud-provider:
- "aws"
cloud-config:
- "/etc/aws/aws.conf"
不确定我们是否只是遗漏某些东西,或者是否存在已知问题/解决方法。
另外一个问题是openshift或kubernetes如何知道配置文件已被更改?
另外,为了给您一些上下文,我们使用openshift-ansible来部署我们的环境。
答案 0 :(得分:1)
文档声明导出环境变量的方式有点不准确。需要将它们添加到systemd单元文件引用的环境中,或者需要为节点授予适当的IAM权限。
要在节点的环境中配置凭据,请将以下内容添加到/ etc / sysconfig / origin-node(假设Origin 1.1):
AWS_ACCESS_KEY_ID=<key id>
AWS_SECRET_ACCESS_KEY=<secret key>
或者,可以为节点分配具有适当权限的IAM角色。以下cloudformation资源片段创建一个具有节点相应权限的角色:
"NodeIAMRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": [ "ec2.amazonaws.com" ] },
"Action": [ "sts:AssumeRole" ]
}
]
},
"Policies": [
{
"PolicyName": "demo-node-1",
"PolicyDocument": {
"Version" : "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}
]
}
},
{
"PolicyName": "demo-node-2",
"PolicyDocument": {
"Version" : "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:AttachVolume",
"Resource": "*"
}
]
}
},
{
"PolicyName": "demo-node-3",
"PolicyDocument": {
"Version" : "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:DetachVolume",
"Resource": "*"
}
]
}
}
]
}
}
答案 1 :(得分:0)
看起来OpenShift的AWS提供商无法与AWS API通信。
根据https://docs.openshift.org/latest/install_config/configuring_aws.html,您应该使用您的AWS凭证导出这些变量:
export AWS_ACCESS_KEY_ID=<key id>
export AWS_SECRET_ACCESS_KEY=<secret key>
AWS文档here
中介绍了AWS凭据的创建答案 2 :(得分:0)
您是否在IAM控制台的管理员组中设置和配置了用户?已经有一段时间了,但我认为当我在AWS上试验OSE时我遇到了同样的问题,这就是最终解决它的问题。
https://console.aws.amazon.com/iam/home#home
我将我的用户添加到管理员组中(我不记得是否必须首先创建该组,然后将我的用户添加到其中)。然后,我附上了两项政策:
EC2FullAccess and AdministratorAccess
此外,请确保导出密钥对并重新启动主服务器和节点服务:
export AWS_ACCESS_KEY_ID=<key id>
export AWS_SECRET_ACCESS_KEY=<secret key>
答案 3 :(得分:0)
@ stran58
如果您按上述方式导出了AWS凭据,通过systemctl启动了主服务并获得该错误,请尝试如下设置AWS凭据:
systemctl set-environment AWS_SECRET_ACCESS_KEY = xxx
systemctl set-environment AWS_ACCESS_KEY_ID = xxx
希望有所帮助。