129-143
어떤걸 백업해야 할까?
kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml
--data-dir=/var/lib/etcd
-> 스냅샷 가능ETCDCTL_API=3 etcdctl \
snapshot save snapshot.db
ETCDCTL_API=3 etcdctl \
snapshot status snapshot.db
service kube-apiserver stop
ETCDCTL_API=3 etcdctl \
snapshot restore snapshot.db \
--data-dir /var/lib/etcd-from-backup
/etc/etcd/
아래에 있는 인증 파일 지정 해야함
--cert, --cacert, --key
https://github.com/etcd-io/website/blob/main/content/en/docs/v3.5/op-guide/recovery.md
https://www.youtube.com/watch?v=qRPNuT080Hk
보안이 가장 중요한 관건
호스트에 대한 모든 액세스 보안 되어야 함
ssh key 기반 인증만 가능해야 함
api server 자체에 대한 액세스 제한
Files- Username and Passwords
Files -Username and Tokens
Certificates
External Authentication providers - LDAP
스태틱 파드, kubelet -> TLS 암호화
APP 간 통신은 네트워크 정책을 통해 접근 권한 제어 가능
RBAC Authorization
ABAC Authorization
Node Authorization
Webhook Mode
쿠버네티스 클러스터에 접근하는 사용자를 제외하면 개발자와 앱을 사용하는 사용자가 있음
쿠버네티스 사용자 계정 직접 관리 하지 않음 -> 외부 소스 의존
쿠버네티스 클러스터에서는 사용자 생성 불가
서비스계정은 쿠버네티스가 관리 가능 -> apiserver를 통해
모든 사용자 액세스는 kube-apiserver에 의해 관리
kubectl.. curl IP:6443 --> apiserver로 처리 전에 인증을 함
어떻게 인증?
다양한 인증 메커니즘
Static Password File, Static Token File, Certificates, Identy Service
csv파일에 사용자와 비밀번호 생성 가능
비밀번호, 사용자 이름, 사용자 ID, 그룹명 형식으로
--basci-auth-file=user-details.csv 옵션 지정 후 kube api 재기동 -> 파드에도 containers.command 아래에 지정해야함
curl -v -k https://master-node-ip:6443/api/v1/pods -u "user1:password123"
csv 파일에 password 대신 token값을 지정
This is not a recommended authentication mechanism
consider volume mount while provideing the auth file in a kubeadm setup
setup role based authorization for the new users