#はじめに
30代未経験からエンジニアを目指して勉強中のYNと申します。
インフラ初学者の私ですが、Kubernetes the hard way
を進めるにあたって、インフラに関する基本的な知識を体系的に学ぶことができました。
そこで、初学者目線での学びなどを本記事にまとめておきたいと思います。
#目次
こちらをご覧ください
#API-serverからkubeletへのアクセス制御の設定
下図のように、API-serverからkubeletへのアクセス制御を行います。
参考
次の流れとなります。
- (1)
ClusterRole
を定義する - (2)
ClusterRoleBinding
で上記ClusterRole
をkube-apiserverにバインドする
##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にバインドする
上記で定義したClusterRole
をkube-apiserver
というuserに許可します。
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