반응형
해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.
⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.
Setup basic authentication on Kubernetes(1.19 이후 더 이상 사용되지 않음)
참고: 프로덕션 환경에서는 권장되지 않습니다. 이는 학습 목적으로만 사용됩니다. 또한 이 접근 방식은 Kubernetes 버전 1.19이후 더 이상 사용할 수 없습니다.
kubeadm setup에서 basic authentication을 구성하려면 아래 지침을 따르세요.
user-details.csv파일을 /tmp/users/user-details.csv 에 생성합니다.
# User File Contents
password123,user1,u0001
password123,user2,u0002
password123,user3,u0003
password123,user4,u0004
password123,user5,u0005
kube-apiserver static pod에서 user detail을 패스하도록 edit하세요. 파일은 /etc/kubernetes/manifests/kube-apiserver.yaml 에 있습니다.
apiVersion: v1
kind: Pod
metadata:
name: kube-apiserver
namespace: kube-system
spec:
containers:
- command:
- kube-apiserver
<content-hidden>
image: k8s.gcr.io/kube-apiserver-amd64:v1.11.3
name: kube-apiserver
volumeMounts:
- mountPath: /tmp/users
name: usr-details
readOnly: true
volumes:
- hostPath:
path: /tmp/users
type: DirectoryOrCreate
name: usr-details
basic-auth 파일을 포함하도록 kube-apiserver 시작 옵션을 수정하세요.
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
name: kube-apiserver
namespace: kube-system
spec:
containers:
- command:
- kube-apiserver
- --authorization-mode=Node,RBAC
<content-hidden>
- --basic-auth-file=/tmp/users/user-details.csv
이 유저들을 위한 필수 roles 과 role bindings 을 만듭니다.
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
---
# This role binding allows "jane" to read pods in the "default" namespace.
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: user1 # Name is case sensitive
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role #this must be Role or ClusterRole
name: pod-reader # this must match the name of the Role or ClusterRole you wish to bind to
apiGroup: rbac.authorization.k8s.io
생성되었다면, users credentials를 사용하여 kube-api server에 인증할 수 있습니다.
curl -v -k https://localhost:6443/api/v1/pods -u "user1:password123"
반응형
'MLOps > Doker & Kubernetes' 카테고리의 다른 글
Udemy CKA 강의 정리 132: Solution - Backup and Restore Methods (0) | 2023.01.16 |
---|---|
Udemy CKA 강의 정리 141: A note on Service Accounts (0) | 2023.01.16 |
Udemy CKA 강의 정리 139: Authentication (0) | 2023.01.16 |
Udemy CKA 강의 정리 138: Kubernetes Security Primitives (0) | 2023.01.16 |
Udemy CKA 강의 정리 137: Download Presentation Deck (0) | 2023.01.16 |
댓글