Kubernetes the hard way를 초학자 시선으로 해설 ~ #10 RBAC for Kubelet Authorization

소개



30대 미경험에서 엔지니어를 목표로 공부중인 YN이라고 합니다.
인프라 초학자의 저입니다만, Kubernetes the hard way 를 진행할 때에, 인프라에 관한 기본적인 지식을 체계적으로 배울 수 있었습니다.
거기서, 초학자 시선에서의 배움등을 본 기사에 정리해 두고 싶습니다.

목차



여기를 참조하십시오

API-server에서 kubelet에 대한 액세스 제어 설정



아래 그림과 같이 API-server에서 kubelet에 대한 액세스 제어를 수행합니다.
참고


다음의 흐름이 됩니다.
  • (1) ClusterRole 정의
  • (2) ClusterRoleBinding 위의 ClusterRole

    ClusterRole 정의



    API-server에서 kubelet로 전송되는 일반적인 요청 유형을 정의합니다.

    master-1.node
    cat <<EOF | kubectl apply --kubeconfig admin.kubeconfig -f -
    apiVersion: rbac.authorization.k8s.io/v1beta1
    kind: ClusterRole
    metadata:
      annotations:
        rbac.authorization.kubernetes.io/autoupdate: "true"
      labels:
        kubernetes.io/bootstrapping: rbac-defaults
      name: system:kube-apiserver-to-kubelet
    rules:
      - apiGroups:
          - ""
        resources:
          - nodes/proxy
          - nodes/stats
          - nodes/log
          - nodes/spec
          - nodes/metrics
        verbs:
          - "*"
    EOF
    

    ClusterRoleBinding에서 위의 ClusterRole을 kube-apiserver에 바인딩



    위에서 정의한 ClusterRolekube-apiserver라는 사용자에게 허용합니다.

    master-1.node
    cat <<EOF | kubectl apply --kubeconfig admin.kubeconfig -f -
    apiVersion: rbac.authorization.k8s.io/v1beta1
    kind: ClusterRoleBinding
    metadata:
      name: system:kube-apiserver
      namespace: ""
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: system:kube-apiserver-to-kubelet
    subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: kube-apiserver
    EOF
    
  • 좋은 웹페이지 즐겨찾기