手动为Kubernetes节点添加阿里云RAM角色

容器服务Kubernetes需要通过节点的RAM角色权限来访问云服务。早期创建的集群没有设置相应的RAM角色,如果不先对进群内的节点进行RAM角色绑定,而直接升级集群的话,则会影响云监控、ingress和cloud-controller-manager等组件的正常工作。可以通过以下步骤手动为ECS 绑定RAM角色。

步骤1

首先,我们需要确认Kubernetes节点是否已经绑定了RAM角色。
打开阿里云ECS控制台。找到您需要查看的ECS实例,如图:
手动为Kubernetes节点添加阿里云RAM角色

查看此台ECS中是否已经绑定RAM角色。如图:
手动为Kubernetes节点添加阿里云RAM角色
如果此ECS实例已经绑定RAM角色,则无需进行处理。若此ECS实例没有绑定RAM角色,请您按照如下流程为您的Kubernetes节点绑定RAM角色。

步骤2

新建RAM角色。打开RAM控制台的角色管理界面。点击右上角的【新建角色】-【服务角色】-【ECS云服务器】,输入角色名KubernetesNodeRole,最后点击创建。
手动为Kubernetes节点添加阿里云RAM角色

手动为Kubernetes节点添加阿里云RAM角色

手动为Kubernetes节点添加阿里云RAM角色

步骤3

创建授权策略。打开RAM控制台的策略管理界面。点击右上角的【新建授权策略】-【空白模板】
手动为Kubernetes节点添加阿里云RAM角色

出现如下界面,输入授权策略名称Kubernetes-policy,输入下列策略内容。
手动为Kubernetes节点添加阿里云RAM角色

策略内容:

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "ecs:Describe*",
        "ecs:AttachDisk",
        "ecs:CreateDisk",
        "ecs:CreateSnapshot",
        "ecs:CreateRouteEntry",
        "ecs:DeleteDisk",
        "ecs:DeleteSnapshot",
        "ecs:DeleteRouteEntry",
        "ecs:DetachDisk",
        "ecs:ModifyAutoSnapshotPolicyEx",
        "ecs:ModifyDiskAttribute",
        "ecs:CreateNetworkInterface",
        "ecs:DescribeNetworkInterfaces",
        "ecs:AttachNetworkInterface",
        "ecs:DetachNetworkInterface",
        "ecs:DeleteNetworkInterface",
        "ecs:DescribeInstanceAttribute"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "cr:Get*",
        "cr:List*",
        "cr:PullRepository"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "slb:*"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "cms:*"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "vpc:*"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:*"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "nas:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    }
  ]
}

步骤4

进入RAM控制台的角色管理界面,找到刚才创建的角色KubernetesNodeRole
手动为Kubernetes节点添加阿里云RAM角色

点击【角色授权策略】-【编辑授权策略】,将Kubernetes-policy加入到已选授权策略中,最后点击确定。
手动为Kubernetes节点添加阿里云RAM角色

步骤5

打开阿里云ECS控制台。找到您要添加RAM角色的ECS实例,点击【更多】-【实例设置】-【授予/收回RAM角色】
手动为Kubernetes节点添加阿里云RAM角色

选择名为KubernetesNodeRole的RAM角色,点击确定,这样就完成了手动为Kubernetes节点添加阿里云RAM角色的整个流程。
手动为Kubernetes节点添加阿里云RAM角色

上一篇:浪潮英特尔在德国发布KEEP升级计划 用户可提前体验英特尔KNM


下一篇:Linux内存不足的处理方法