เบเปเปเบเบปเบ, เปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบฅเบฐเบเบปเบเปเบเบเปเปเบเบฒเบก, เบเบฑเบเบซเบฒเบเบงเบฒเบกเบเบญเบเปเบเปเบเบตเบเบเบทเปเบ: เบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเบขเบฑเปเบเบขเบทเบ, เบเบฒเบเปเบเบเบชเบดเบ, เบเบฒเบเบเบงเบเบชเบญเบเปเบฅเบฐเบงเบฝเบเบเบฒเบเบญเบทเปเบเป. เบชเปเบฒเบเปเบฅเปเบงเบชเบณเบฅเบฑเบ Kubernetes
เบเบฒเบเบขเบทเบเบขเบฑเบ
เบกเบตเบชเบญเบเบเบฐเปเบเบเบเบญเบเบเบนเปเปเบเปเปเบ Kubernetes:
- เบเบฑเบเบเบตเบเบฒเบเบเปเบฅเบดเบเบฒเบ โ เบเบฑเบเบเบตเบเบตเปเบเบธเปเบกเบเบญเบเปเบเบ Kubernetes API;
- เบเบนเปเบเบปเบกเปเบเป โ เบเบนเปโเบเบปเบกโเปเบเป "เบเบปเบโเบเบฐโเบเบดโ" เบเบฒเบโเบเบธเปเบกโเบเบญเบโเปเบเบโเบเบฒเบโเบเบญเบโ, เบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโเปเบญโเบเบฐโเบฅเบฒเบโ.
เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบปเปเบเบเปเบฅเบฐเบซเบงเปเบฒเบเบเบฐเปเบเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบตเบเบฒเบเบเปเบฅเบดเบเบฒเบเบกเบตเบงเบฑเบเบเบธเบเบดเปเบชเบเปเบ Kubernetes API (เบเบงเบเบกเบฑเบเบเบทเบเปเบญเบตเปเบเบงเปเบฒ - ServiceAccounts
), เปเบเบดเปเบเบเบทเบเบเบนเบเบกเบฑเบเบเบฑเบ namespace เปเบฅเบฐเบเบธเบเบเบญเบเบเปเปเบกเบนเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเปเบเบฑเบเปเบงเปเปเบ cluster เปเบเบงเบฑเบเบเบธเบเบญเบเบเบฐเปเบเบเบเบงเบฒเบกเบฅเบฑเบ. เบเบนเปเปเบเปเบเบฑเปเบเบเปเบฒเบง (เบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบ) เบกเบตเบเบธเบเบเบฐเบชเบปเบเบเบปเปเบเบเปเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบชเบดเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ Kubernetes API เบเบญเบเบเบฐเบเบงเบเบเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบเบธเปเบก Kubernetes.
เบเบนเปเปเบเปเบเบปเปเบงเปเบเบเปเปเบกเบตเบฅเบฒเบเบเบฒเบเปเบ Kubernetes API: เบเบงเบเปเบเบปเบฒเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบเปเบเบเบเบปเบเปเบเบเบฒเบเบเบญเบ. เบเบงเบเบกเบฑเบเบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบเบปเบ เบซเบผเบทเบเบฐเบเบงเบเบเบฒเบเบเบตเปเบญเบฒเปเบชเบขเบนเปเบเบญเบเบเบธเปเบก.
เปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเป API เปเบกเปเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบ, เบเบนเปเปเบเป, เบซเบผเบทเบเบทเบงเปเบฒเบเปเปเปเบเบตเบเปเบเบตเบเบเบทเป.
เบเปเปเบกเบนเบเบเบฒเบเบเบงเบเบชเบญเบเบเบนเปเปเบเปเบเบฐเบเบญเบเบกเบต:
- เบเบทเปเบเบนเปเปเบเป โ เบเบทเปโเบเบนเปโเปเบเป (เบเบปเบงโเบเบดเบกโเบเปเบญเบโเปเบซเบเปโ)โ;
- UID - เบชเบฐเบเบฃเบดเบเบเบฒเบเบฅเบฐเบเบธเบเบปเบงเบเบนเปเปเบเปเบเบตเปเปเบเบทเปเบญเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเบเบตเป โเบชเบญเบเบเปเบญเบ เปเบฅเบฐเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเบเบงเปเบฒเบเบทเปเบเบนเปเปเบเปโ;
- Groups - เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบธเปเบกเบเบตเปเบเบนเปเปเบเปเปเบเบฑเบ;
- เบเบดเปเบชเบ โ เบเปเบญเบเบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเบเบตเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเปเปเบเบเบเบปเบเปเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบ.
Kubernetes เบชเบฒเบกเบฒเบเปเบเปเบเบปเบเปเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเปเบเปเบซเบผเบฒเบเบญเบฑเบ: เปเบเบฎเบฑเบเบฎเบญเบ X509, Bearer tokens, authenticating proxy, HTTP Basic Auth. เบเบฒเบเบเปเบฒเปเบเปเบเบปเบเปเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเบเบฒเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเปเบฒเบเบงเบเบซเบฅเบฒเบ: เบเบฒเบเปเบเบฅเปเบเบปเบเบเบตเปเบเบตเปเบกเบตเบฅเบฐเบซเบฑเบเบเปเบฒเบเปเบเบซเบฒ OpenID OAuth2.
เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบซเบผเบฒเบเบเบฑเปเบเบเปเบญเบกเบเบฑเบ. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบธเปเบกเปเบเป:
- tokens เบเบฑเบเบเบตเบเบฒเบเบเปเบฅเบดเบเบฒเบ - เบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบตเบเบฒเบเบเปเบฅเบดเบเบฒเบ;
- X509 - เบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเป.
เบเปเบฒเบเบฒเบกเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบเปเบกเปเบเปเบเบตเบเบเบญเบเปเบเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบธเปเบเปเบเบตเบเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ.
เปเบเบขเบฑเปเบเบขเบทเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเป (X.509)
เบงเบดเบเบตเบเบฒเบเบเบฅเบฒเบชเบชเบดเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเบขเบฑเปเบเบขเบทเบเบเบฐเบเบญเบเบกเบต:
- เบเบฒเบเบเบฐเบฅเบดเบเบเบตเปเบชเปเบฒเบเบฑเบ:
mkdir -p ~/mynewuser/.certs/ openssl genrsa -out ~/.certs/mynewuser.key 2048
- เบเบฒเบเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบเปเปเบเบขเบฑเปเบเบขเบทเบ:
openssl req -new -key ~/.certs/mynewuser.key -out ~/.certs/mynewuser.csr -subj "/CN=mynewuser/O=company"
- เบเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเบฒเบเบฎเปเบญเบเบเปเปเบเบฎเบฑเบเบฎเบญเบเปเบเบเปเบเปเบเบฐเปเบ Kubernetes cluster CA, เบเบฒเบเปเบเปเบฎเบฑเบเปเบเบขเบฑเปเบเบขเบทเบเบเบนเปเปเบเป (เปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบขเบฑเปเบเบขเบทเบ, เบเปเบฒเบเบเปเบญเบเปเบเปเบเบฑเบเบเบตเบเบตเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฐเปเบ Kubernetes cluster CA, เปเบเบดเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบ
/etc/kubernetes/pki/ca.key
):openssl x509 -req -in ~/.certs/mynewuser.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out ~/.certs/mynewuser.crt -days 500
- เบเบฒเบเบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ:
- เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบธเปเบก (เบฅเบฐเบเบธเบเบตเปเบขเบนเป เปเบฅเบฐเบชเบฐเบเบฒเบเบเบตเปเบเบญเบเปเบเบฅเปเปเบเบขเบฑเปเบเบขเบทเบ CA เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบธเปเบกเบชเบฐเปเบเบฒเบฐ):
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server=https://192.168.100.200:6443
- เบซเบผเบทเปเบเบงเปเบ เบเปเปเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบเบฐเบเปเบฒ - เบเปเบฒเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฅเบฐเบเบธเปเบเบขเบฑเปเบเบขเบทเบเบฎเบฒเบ (เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ kubectl เบเบฐเบเปเปเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบ api-server เบเบญเบเบเบธเปเบก):
kubectl config set-cluster kubernetes --insecure-skip-tls-verify=true --server=https://192.168.100.200:6443
- เปเบเบตเปเบกเบเบนเปเปเบเปเปเบชเปเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ:
kubectl config set-credentials mynewuser --client-certificate=.certs/mynewuser.crt --client-key=.certs/mynewuser.key
- เปเบเบตเปเบกเบเปเบฅเบดเบเบปเบ:
kubectl config set-context mynewuser-context --cluster=kubernetes --namespace=target-namespace --user=mynewuser
- เบเบฒเบเบเบณเบเบปเบเบเปเบฅเบดเบเบปเบเปเบฅเบตเปเบกเบเบปเปเบ:
kubectl config use-context mynewuser-context
- เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบธเปเบก (เบฅเบฐเบเบธเบเบตเปเบขเบนเป เปเบฅเบฐเบชเบฐเบเบฒเบเบเบตเปเบเบญเบเปเบเบฅเปเปเบเบขเบฑเปเบเบขเบทเบ CA เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบธเปเบกเบชเบฐเปเบเบฒเบฐ):
เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบซเบกเบนเบเปเบเปเบเปเบฒเบเปเบเบดเบ, เปเบเปเบญเบเบฐเบชเบฒเบ .kube/config
config เปเบเบเบเบตเปเบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบ:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://192.168.100.200:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
namespace: target-namespace
user: mynewuser
name: mynewuser-context
current-context: mynewuser-context
kind: Config
preferences: {}
users:
- name: mynewuser
user:
client-certificate: /home/mynewuser/.certs/mynewuser.crt
client-key: /home/mynewuser/.certs/mynewuser.key
เปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเบถเปเบเปเบเบเบฒเบเปเบญเบ config เบฅเบฐเบซเบงเปเบฒเบเบเบฑเบเบเบตเปเบฅเบฐเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบกเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบฐเปเบเปเปเบเบเปเบฒเบเบญเบเบเบตเบเปเปเปเบเบเบตเป:
-
certificate-authority
-
client-certificate
-
client-key
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบเบฅเปเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบเบงเบเบกเบฑเบเปเบเบเปเบเป base64 เปเบฅเบฐเบฅเบปเบเบเบฐเบเบฝเบเบเบงเบเบกเบฑเบเปเบ config, เปเบเบตเปเบกเบเปเบฒเบเปเปเบเปเบฒเบเปเบชเปเบเบทเปเบเบญเบเบเบฐเปเบ. -data
, i.e. เปเบเปโเบฎเบฑเบ certificate-authority-data
เปเบฅเบฐเบเปเบฒเบเบเบทเบเบฑเบ.
เปเบเบขเบฑเปเบเบขเบทเบเบเบตเปเบกเบต kubeadm
เบเบฑเบเบเบฒเบเบเปเบญเบ
kubeadm alpha kubeconfig user --client-name=mynewuser --apiserver-advertise-address 192.168.100.200
NB: เบเปเบญเบเบเบฒเบ เปเบเบชเบฐเบเบฒเบเบตเปเบขเบนเป เบชเบฒเบกเบฒเบเบเบปเบเปเบเปเปเบ api-server config, เปเบเบดเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบ /etc/kubernetes/manifests/kube-apiserver.yaml
.
config เบเบปเบเปเบเปเบฎเบฑเบเบเบฐเปเบเบฑเบ output เบเบฑเบ stdout. เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบฑเบเบเบถเบเปเบงเปเปเบ ~/.kube/config
เบเบฑเบเบเบตเบเบนเปเปเบเป เบซเบผเบทเปเบเบฅเปเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก KUBECONFIG
.
เบเบธเบโเปเบฅเบดเบ
เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบเบฑเบเบซเบฒเบเบตเปเบญเบฐเบเบดเบเบฒเบเบขเปเบฒเบเบฅเบฐเบญเบฝเบ:
-
เบเบปเบเบเบฝเบเปเบเบเบเปเบฒเบเบซเบฒเบ เบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเบขเบฑเปเบเบขเบทเบเปเบเปเบญเบเบฐเบชเบฒเบ Kubernetes เบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ; -
เบเบปเบเบเบงเบฒเบกเบเบตเปเบเบตเบเบฒเบ Bitnami , เปเบเบเบตเปเบเบฑเบเบซเบฒเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบเปเบกเปเบ touched เบเบฒเบกเบเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. -
เปเบญเบเบฐเบชเบฒเบเบเบปเปเบงเปเบ เบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเปเบ Kubernetes.
เบเบฒเบเบญเบฐเบเบธเบเบฒเบ
เบเบฑเบเบเบตเบเบตเปเปเบเปเบฎเบฑเบเบญเบฐเบเบธเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเปเบกเบตเบชเบดเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบเบธเปเบก. เปเบเบทเปเบญเปเบซเปเบเบฒเบเบญเบฐเบเบธเบเบฒเบ, Kubernetes เบเบฐเบเบดเบเบฑเบเบเบปเบเปเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบ.
เบเปเบญเบเบเบตเปเบเบฐเปเบเบฑเบเปเบงเบตเบเบฑเบ 1.6, Kubernetes เปเบเปเปเบเปเบเบฐเปเบเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ ABAC (เบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเบญเบตเบเปเบชเปเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ). เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเบกเบฑเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเปเบ
เบงเบดเบเบตเบเบฒเบเบเบฐเบเบธเบเบฑเบ (เปเบฅเบฐเบกเบตเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบซเบผเบฒเบ) เบเบญเบเบเบฒเบเปเบเปเบเบชเบดเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบธเปเบกเปเบกเปเบเปเบญเบตเปเบเบงเปเบฒ RBAC (
เปเบเบทเปเบญเปเบเบตเบเปเบเป RBAC, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฅเบตเปเบกเบเบปเปเบ Kubernetes api-server เบเปเบงเบเบเบฒเบฅเบฒเบกเบดเปเบเบต --authorization-mode=RBAC
. เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบทเบเบเปเบฒเบเบปเบเปเบงเปเปเบ manifest เบเปเบงเบเบเบฒเบเบเบฑเปเบเบเปเบฒ api-server, เปเบเบดเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบเบเบฑเปเบเบขเบนเปเบเบฒเบกเปเบชเบฑเปเบเบเบฒเบ. /etc/kubernetes/manifests/kube-apiserver.yaml
, เปเบเบเบฒเบ command
. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, RBAC เบเบทเบเปเบเบตเบเปเบเปเปเบฅเปเบงเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบเปเปเบเบงเบเบเบฑเบเบงเบปเบเบเปเบฝเบงเบเบฑเบเบกเบฑเบ: เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบงเบเบชเบญเบเปเบเปเปเบเบเบกเบนเบเบเปเบฒ. authorization-mode
(เปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเปเบฅเปเบง kube-apiserver.yaml
). เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เปเบเบเบฑเบเบเบฒเบเบงเบฒเบกเบซเบกเบฒเบเบเบญเบเบกเบฑเบเบญเบฒเบเบกเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบฐเปเบเบเบญเบทเปเบเป (node
, webhook
, always allow
), เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบญเบญเบเบเบฒเบเบเบฒเบเบเบดเบเบฒเบฅเบฐเบเบฒเบเบญเบเบเบงเบเปเบเบปเบฒเบขเบนเปเบเบญเบเบเบญเบเปเบเบเบเบญเบเบงเบฑเบเบชเบฐเบเบธ.
เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบเบตเบกเบกเบฒเปเบฅเปเบง
เบซเบปเบงเปเปเบงเบ API เบเปเปเปเบเบเบตเปเบเบทเบเปเบเปเปเบเบทเปเบญเบเบงเบเบเบธเบกเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบ Kubernetes เบเปเบฒเบ RBAC:
-
Role
ะธClusterRole
โ เบเบฒโเบฅเบฐโเบเบปเบโเบเบฒเบโเปเบเบทเปเบญโเบญเบฐโเบเบดโเบเบฒเบโเบชเบดเบโเบเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโ: -
Role
เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบญเบฐเบเบดเบเบฒเบเบชเบดเบเบเบดเบเบฒเบเปเบ namespace; -
ClusterRole
- เบเบฒเบเปเบเบเบธเปเบก, เบฅเบงเบกเบเบฑเบเบงเบฑเบเบเบธเบชเบฐเปเบเบฒเบฐเบเบญเบเบเบธเปเบกเปเบเบฑเปเบ nodes, urls เบเบตเปเบเปเปเปเบกเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ (เปเบเบฑเปเบ: เบเปเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ Kubernetes - เบเบปเบงเบขเปเบฒเบ,/version
,/logs
,/api*
); -
RoleBinding
ะธClusterRoleBinding
- เปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบนเบเบกเบฑเบRole
ะธClusterRole
เปเบซเปเบเบฑเบเบเบนเปเปเบเป, เบเบธเปเบกเบเบนเปเปเบเป เบซเบผเบทเบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบ.
เบซเบเปเบงเบเบเบฒเบเบเบฒเบฅเบฐเบเบปเบเบเบฒเบเปเบฅเบฐ RoleBinding เปเบเปเบเบทเบเบเปเบฒเบเบฑเบเปเบเบ namespace, i.e. เบเปเบญเบเบขเบนเปเปเบ namespace เบเบฝเบงเบเบฑเบ. เปเบเบงเปเบเบเปเปเบเบฒเบก, RoleBinding เบชเบฒเบกเบฒเบเบญเปเบฒเบเบญเบตเบ ClusterRole, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเบเบธเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบปเปเบงเปเบ เปเบฅเบฐเบเบงเบเบเบธเบกเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเปเบเปเบเบงเบเบกเบฑเบ.
เบเบฒเบฅเบฐเบเบปเบเบเบฒเบเบญเบฐเบเบดเบเบฒเบเบชเบดเบเบเบดเปเบเบเปเบเปเบเบธเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฐเบเบญเบเบกเบต:
- เบเบธเปเบก API - เปเบเบดเปเบ
เปเบญเบเบฐเบชเบฒเบเบเบฒเบเบเบฒเบ เปเบเบ apiGroups เปเบฅเบฐเบเบปเบเบเบฐเบฅเบดเบkubectl api-resources
; - เบเบฑเบโเบเบฐโเบเบฒโเบเบญเบ (เบเบฑเบโเบเบฐโเบเบฒโเบเบญเบ:
pod
,namespace
,deployment
เปเบฅเบฐ เบญเบทเปเบเป.); - เบเบณเบเบดเบฅเบดเบเบฒ (เบเบณ เบเบดเบฅเบดเบเบฒ:
set
,update
เปเบฅเบฐเบญเบทเปเบเป.). - เบเบทเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ (
resourceNames
) - เบชเปเบฒเบฅเบฑเบเบเปเบฅเบฐเบเบตเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเบฐเปเบเบฒเบฐเปเบเบซเบเบถเปเบ, เปเบฅเบฐเบเปเปเปเบกเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฐเปเบเบเบเบตเป.
เบเบฒเบเบงเบดเปเบเบฒเบฐเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบ Kubernetes เบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบขเบนเปเปเบเบซเบเปเบฒ
เบเบปเบงเบขเปเบฒเบเบเบญเบเบซเบปเบงเปเปเบงเบ RBAC
เบเปเบฒเบเบเบฒเบ Role
, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบฅเบฐเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบญเบเบเบฑเบเปเบฅเบฐเบเบดเบเบเบฒเบกเบเบงเบเบเบฒเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบขเบนเปเปเบ namespace เปเบเป target-namespace
:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: target-namespace
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
เบเบปเบงเบขเปเบฒเบ: ClusterRole
, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบฅเบฐเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบญเบเบเบฑเบเปเบฅเบฐเบเบดเบเบเบฒเบกเบเบงเบเบกเบฑเบเปเบเบเบปเปเบงเบเบธเปเบก:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
# ัะตะบัะธะธ "namespace" ะฝะตั, ัะฐะบ ะบะฐะบ ClusterRole ะทะฐะดะตะนััะฒัะตั ะฒะตัั ะบะปะฐััะตั
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list"]
เบเบปเบงเบขเปเบฒเบ: RoleBinding
, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบนเปเปเบเป mynewuser
"เบญเปเบฒเบ" pods เปเบ namespace my-namespace
:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: target-namespace
subjects:
- kind: User
name: mynewuser # ะธะผั ะฟะพะปัะทะพะฒะฐัะตะปั ะทะฐะฒะธัะธะผะพ ะพั ัะตะณะธัััะฐ!
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role # ะทะดะตัั ะดะพะปะถะฝะพ ะฑััั โRoleโ ะธะปะธ โClusterRoleโ
name: pod-reader # ะธะผั Role, ััะพ ะฝะฐั
ะพะดะธััั ะฒ ัะพะผ ะถะต namespace,
# ะธะปะธ ะธะผั ClusterRole, ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะบะพัะพัะพะน
# ั
ะพัะธะผ ัะฐะทัะตัะธัั ะฟะพะปัะทะพะฒะฐัะตะปั
apiGroup: rbac.authorization.k8s.io
เบเบฒเบเบเบงเบเบชเบญเบเปเบซเบเบเบฒเบ
เบเบฒเบกเปเบเบ, เบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเบณ Kubernetes เบชเบฒเบกเบฒเบเบชเบฐเปเบเบเปเบเปเบเบฑเปเบเบเบตเป:
เบญเบปเบเบเบฐเบเบญเบ Kubernetes เบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบฎเปเบญเบเบเปเปเบกเปเบ api-เปเบเบตเบเปเบงเบต. เบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเบเบธเปเบกเบเปเบฒเบเบกเบฑเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบเบปเบเปเบเบเบฒเบเปเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบเบปเบเบเบงเบฒเบก "
เบเบฒเบเบเบงเบเบชเบญเบเบฅเบฐเบเบปเบเปเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเปเบ Kubernetes, เปเบเบดเปเบเบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบกเบฑเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบถเบเบเบฒเบเปเบเบเบฑเบเบซเบกเบปเบเปเบเบซเบฒ Kubernetes API. เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบญเบฒเบเบเบฐเปเบเบปเบฒเปเบเป, เบเบฒเบเบเบฐเบเบณเบเบฑเบเปเบปเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเบดเบเบเบฒเบก เปเบฅเบฐ เบเบฒเบเบเปเบฝเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบธเปเบกเปเบกเปเบเบเบณเปเบเบตเบเบเปเบฒเบ API เบเบตเป. เบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบตเปเบเบตเบเบญเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบเบกเบฑเบเบชเบฒเบกเบฒเบ (เบเบฒเบกเบเบปเบเบเบฐเบเบด) เบขเบนเปเปเบ
เบเบฑเปเบโเบเบฑเปเบ เปเบเบทเปเบญเปเบเบตเบเปเบเปเบเบฒเบเบเบงเบเบชเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเปเบฒเบเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบเบฑเบ container เปเบ api-server, เปเบเบดเปเบเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฒเบเบฅเบธเปเบกเบเบตเป:
-
--audit-policy-file=/etc/kubernetes/policies/audit-policy.yaml
-
--audit-log-path=/var/log/kube-audit/audit.log
-
--audit-log-format=json
เบเบญเบเปเบซเบเบทเบญเบเบฒเบเบชเบฒเบกเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบซเบผเบปเปเบฒเบเบตเป, เบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบตเปเบกเปเบเบตเบกเบซเบผเบฒเบเบขเปเบฒเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเบงเบเบชเบญเบ: เบเบฒเบเบเบฒเบเบซเบกเบธเบเบเบญเบเบเบฑเบเบเบถเบเปเบเบซเบฒเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเปเบฝเบงเบเบฑเบ webhook. เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบซเบกเบธเบเบเบญเบเบเบฑเบเบเบถเบ:
-
--audit-log-maxbackup=10
-
--audit-log-maxsize=100
-
--audit-log-maxage=7
เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบขเบนเปเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก - เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบฑเบเบซเบกเบปเบเปเบ
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเปเบฅเปเบง, เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบฑเบเบซเบกเบปเบเบเบทเบเบเบฑเปเบเบขเบนเปเปเบ manifest เบเปเบงเบเบเบฒเบเบเบฑเปเบเบเปเบฒ api-server (เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ /etc/kubernetes/manifests/kube-apiserver.yaml
), เปเบเบเบฒเบ command
. เปเบซเปเบเบฑเบเบเบทเบเปเบเบซเบฒ 3 เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบฅเบฐเบงเบดเปเบเบฒเบฐเบเบงเบเบกเบฑเบ:
-
audit-policy-file
โ เปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเปเบเบฅเป YAML เบเบตเปเบญเบฐเบเบดเบเบฒเบเบเบฐเปเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบทเบเปเบเบซเบฒเปเบเบทเปเบญเปเบเบเบญเบเบกเบฑเบเบเปเปเบกเบฒ, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบญเบเบเบตเปเบเปเบญเบเบเบฐเบชเบฑเบเปเบเบเบงเปเบฒเปเบเบฅเปเบเปเบญเบเบเบทเบเบญเปเบฒเบเปเบเปเปเบเบเบเบฐเบเบงเบเบเบฒเบ api-server. เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบดเบเบกเบฑเบเบขเบนเปเปเบเบเบฑเบ, เบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเปเปเบชเปเบชเปเบงเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ:volumeMounts: - mountPath: /etc/kubernetes/policies name: policies readOnly: true volumes: - hostPath: path: /etc/kubernetes/policies type: DirectoryOrCreate name: policies
-
audit-log-path
- เปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเปเบเบฅเปเบเบฑเบเบเบถเบ. เปเบชเบฑเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบเบฑเบเบเปเบญเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฐเบเบงเบเบเบฒเบ api-server, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบญเบฐเบเบดเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบญเบเบกเบฑเบเปเบเบเบฒเบเบเบฝเบงเบเบฑเบ:volumeMounts: - mountPath: /var/log/kube-audit name: logs readOnly: false volumes: - hostPath: path: /var/log/kube-audit type: DirectoryOrCreate name: logs
-
audit-log-format
- เบฎเบนเบโเปเบเบโเบเบฑเบโเบเบถเบโเบเบฒเบโเบเบงเบโเบชเบญเบโ. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบjson
, เปเบเปเบฎเบนเบเปเบเบเบเปเปเบเบงเบฒเบกเปเบเบปเปเบฒเบเบฑเบเบกเบตเบขเบนเป (legacy
).
เบเบฐเปเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบ
เบเบญเบเบเบตเปเบเปเบฝเบงเบเบฑเบเปเบเบฅเปเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเบเบตเปเบญเบฐเบเบดเบเบฒเบเบเบฐเปเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบถเบ. เปเบเบงเบเบงเบฒเบกเบเบดเบเบเปเบฒเบญเบดเบเบเบญเบเบเบฐเปเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเปเบกเปเบ level
, เบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบถเบ. เบเบงเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบกเปเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
-
None
- เบเปเปเบเบฑเบเบเบถเบ; -
Metadata
โ เบเปเปโเบกเบนเบโเบเบฒเบโเบฎเปเบญเบโเบเปโเบเบญเบโเบเบฑเบโเบเบถเบโ: เบเบนเปโเปเบเปโ, เบเบตเปโเปเบเปโเปเบงโเบฅเบฒโเบเบฒเบโเบฎเปเบญเบโเบเปโ, เบเบฑเบโเบเบฐโเบเบฒโเบเบญเบโเปเบเบปเปเบฒโเบซเบกเบฒเบ (podโ, namespaceโ, เปเบฅเบฐโเบญเบทเปเบเปโ)โ, เบเบฐโเปเบเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบ (verbโ)โ, เปเบฅเบฐโเบญเบทเปเบเปโ; -
Request
โ เบเบฑเบเบเบถเบ metadata เปเบฅเบฐเบฎเปเบฒเบเบเบฒเบเบฎเปเบญเบเบเป; -
RequestResponse
โ เปเบเบปเปเบฒโเบชเบนเปโเบฅเบฐโเบเบปเบ metadataโ, เบฎเปเบฒเบโเบเบฒเบโเบฎเปเบญเบโเบเปโเปเบฅเบฐโเบฎเปเบฒเบโเบเบฒเบโเบเบญเบโเบชเบฐโเบซเบเบญเบโ.
เบชเบญเบโเบเบฑเปเบโเบชเบธเบโเบเปเบฒเบ (Request
ะธ RequestResponse
) เบเปเปเบเบฑเบเบเบถเบเบเบฒเบเบฎเปเบญเบเบเปเบเบตเปเบเปเปเปเบเบปเปเบฒเปเบเบดเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ (เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบญเบฑเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ urls เบเบตเปเบเปเปเปเบกเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ).
เบเบญเบเบเบฒเบเบเบตเป, เบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบเบซเบกเบปเบเปเบเปเบเบเบเปเบฒเบเบเบฒเบ เบซเบผเบฒเบเบเบฑเปเบเบเบญเบ:
-
RequestReceived
โ เบเบฑเปเบเบเบญเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบฎเปเบญเบเบเปเปเบเปเบฎเบฑเบเปเบเบเปเบฎเบเบเบฒเบเบเบฐเบฅเบดเบเปเบฅเบฐเบเบฑเบเบเปเปเบเบฑเบเปเบเปเบชเบปเปเบเบเปเปเปเบเบญเบตเบเบเบฒเบกเบฅเบฐเบเบปเบเบเปเบญเบเปเบชเปเบเบญเบเปเบฎเบเบเบฒเบเบเบฐเบฅเบดเบ; -
ResponseStarted
โ เบซเบปเบงโเบเบญเบโเบเบทเบโเบชเบปเปเบโเปเบโ, เปเบเปโเบเปเบญเบโเบเบตเปโเบฎเปเบฒเบโเบเบฒเบโเบเบญเบโเบชเบฐโเบซเบเบญเบโเบเบฐโเบเบทเบโเบชเบปเปเบโ. เบชเปเบฒเบเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบญเบเบเบฒเบกเบเบตเปเบเบฒเบงเบเบฒเบ (เบเบปเบงเบขเปเบฒเบ:watch
); -
ResponseComplete
โ เปเปเบงเบโเบเบฒเบโเบเบญเบโเบชเบฐโเปเบญเบโเปเบเปโเบเบทเบโเบชเบปเปเบโเปเบโเปเบฅเปเบง, เบเปเปโเบกเบตโเบเปเปโเบกเบนเบโเปเบเบตเปเบกโเปเบเบตเบกโเบเบฐโเบเบทเบโเบชเบปเปเบ; -
Panic
โ เปเบซเบเบเบฒเบเบเบฐเปเบเบตเบเบเบถเปเบเปเบกเบทเปเบญเบเบงเบเบเบปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบดเบเบเบปเบเบเบฐเบเบด.
เปเบเบทเปเบญเบเปเบฒเบกเบเบฑเปเบเบเบญเบเปเบเปเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป omitStages
.
เปเบเปเบญเบเบฐเบชเบฒเบเบเบฐเปเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเบซเบผเบฒเบเบเบฒเบเบชเปเบงเบเบเบตเปเบกเบตเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฑเบเบเบนเปเบเปเบฒเบญเบดเบเบเบตเปเบเบปเบเปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบฐเปเบเบเบฒเบเบเบฐเบเบทเบเปเบเป.
kubelet daemon เบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบเปเบ manifest เบเปเบงเบเบเบฒเบเบเบฑเปเบเบเปเบฒ api-server เปเบฅเบฐ, เบเปเบฒเบกเบตเบเบงเบเบเบปเบ, restart container เบเบฑเบ api-server. เปเบเปเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบตเปเบชเปเบฒเบเบฑเบ: เบเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบเบฅเปเบเบฐเปเบเบเบฒเบเบเบฐเบเบทเบเบฅเบฐเปเบฅเบตเบเปเบเบเบกเบฑเบ. เบซเบผเบฑเบเบเบฒเบเปเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบฅเปเบเบฐเปเบเบเบฒเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเบเบดเบเปเบเบตเบ api-server เบเปเบงเบเบเบปเบเปเบญเบ. เปเบเบทเปเบญเบเบเบฒเบ api-server เปเบกเปเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฑเบ kubectl delete
เบเบฐเบเปเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบ restart. เบเปเบฒเบเบเบฐเบเปเบญเบเปเบฎเบฑเบเบกเบฑเบเบเปเบงเบเบเบปเบเปเบญเบ docker stop
เบเปเบฝเบงเบเบฑเบ kube-masters, เบเปเบญเบเบเบตเปเบเบฐเปเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเปเบเปเบเบทเบเบเปเบฝเบเปเบเบ:
docker stop $(docker ps | grep k8s_kube-apiserver | awk '{print $1}')
เปเบกเบทเปเบญเปเบเบตเบเปเบเปเบเบฒเบเบเบงเบเบชเบญเบ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบเบทเปเบเปเบฒเบงเปเบฒ เบเบฒเบเปเบซเบผเบเปเบ kube-apiserver เปเบเบตเปเบกเบเบถเปเบ. เปเบเบเบชเบฐเปเบเบฒเบฐ, เบเบฒเบเบเปเบฅเบดเปเบเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเบฅเบดเบเบปเบเบเปเบฒเบฎเปเบญเบเบเปเปเบเบตเปเบกเบเบถเปเบ. เบเบฒเบเบเบฑเบเบเบถเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฝเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบซเบปเบงเบเปเบฒเบเบญเบเบเบทเบเบชเบปเปเบ. เบเบฒเบเปเบซเบผเบเบเบฑเบเบเบถเปเบเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฐเปเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบ.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฐเปเบเบเบฒเบ
เปเบซเปเปเบเบดเปเบเปเบเบเบชเปเบฒเบเบเบญเบเปเบเบฅเปเบเบฐเปเบเบเบฒเบเปเบเบเปเบเปเบเบปเบงเบขเปเบฒเบ.
เบเบตเปเปเบกเปเบเปเบเบฅเปเบเบตเปเบเปเบฒเบเบเบฒเบ policy
เปเบเบทเปเบญเบเบฑเบเบเบถเบเบเบธเบเบขเปเบฒเบเปเบเบฅเบฐเบเบฑเบ Metadata
:
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
เปเบเบเบฐเปเบเบเบฒเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบฅเบฐเบเบธเบฅเบฒเบเบเบทเปเบเบนเปเปเบเป (Users
ะธ ServiceAccounts
) เปเบฅเบฐโเบเบธเปเบกโเบเบนเปโเปเบเปโ. เบเบปเบงเบขเปเบฒเบ, เบเบตเปเปเบกเปเบเบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบชเบปเบเปเบเบเบนเปเปเบเปเบฅเบฐเบเบปเบ, เปเบเปเปเบซเปเบเบฑเบเบเบถเบเบเบธเบเบชเบดเปเบเบญเบทเปเบเปเบเบฅเบฐเบเบฑเบ Request
:
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: None
userGroups:
- "system:serviceaccounts"
- "system:nodes"
users:
- "system:anonymous"
- "system:apiserver"
- "system:kube-controller-manager"
- "system:kube-scheduler"
- level: Request
เบกเบฑเบเบเบฑเบเบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเปเบเบปเปเบฒเบซเบกเบฒเบ:
- namespaces (
namespaces
); - เบเบณเบเบดเบฅเบดเบเบฒ (เบเบณ เบเบดเบฅเบดเบเบฒ:
get
,update
,delete
เปเบฅเบฐโเบญเบทเปเบเป); - เบเบฑเบโเบเบฐโเบเบฒโเบเบญเบ (เบเบฑเบโเบเบฐโเบเบฒโเบเบญเบ, เบเบท:
pod
,configmaps
เปเบฅเบฐเบญเบทเปเบเป) เปเบฅเบฐเบเบธเปเบกเบเบฑเบเบเบฐเบเบฒเบเบญเบ (apiGroups
).
เบเปเบฒเบเปเบญเบปเบฒเปเบเปเบชเป! เบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบฅเบฐเบเบธเปเบกเบเบฑเบเบเบฐเบเบฒเบเบญเบ (เบเบธเปเบก API, i.e. apiGroups), เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบฎเบธเปเบเบเบญเบเบเบงเบเปเบเบปเบฒเบเบตเปเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเบเบธเปเบก, เบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ:
kubectl api-resources
kubectl api-versions
เบเบฐโเปเบโเบเบฒเบโเบเบฒเบโเบเบงเบโเบชเบญเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโเปเบกเปเบโเบชเบฐโเบซเบเบญเบโเปเบซเปโเปเบเบฑเบโเบเบฒเบโเบชเบฐโเปเบเบโเปเบซเปโเปเบซเบฑเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบเบตเปโเบเบตโเบเบตเปโเบชเบธเบโเปเบโ
apiVersion: audit.k8s.io/v1beta1
kind: Policy
# ะะต ะปะพะณะธัะพะฒะฐัั ััะฐะดะธั RequestReceived
omitStages:
- "RequestReceived"
rules:
# ะะต ะปะพะณะธัะพะฒะฐัั ัะพะฑััะธั, ััะธัะฐััะธะตัั ะผะฐะปะพะทะฝะฐัะธัะตะปัะฝัะผะธ ะธ ะฝะต ะพะฟะฐัะฝัะผะธ:
- level: None
users: ["system:kube-proxy"]
verbs: ["watch"]
resources:
- group: "" # ััะพ api group ั ะฟััััะผ ะธะผะตะฝะตะผ, ะบ ะบะพัะพัะพะผั ะพัะฝะพััััั
# ะฑะฐะทะพะฒัะต ัะตััััั Kubernetes, ะฝะฐะทัะฒะฐะตะผัะต โcoreโ
resources: ["endpoints", "services"]
- level: None
users: ["system:unsecured"]
namespaces: ["kube-system"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["configmaps"]
- level: None
users: ["kubelet"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["nodes"]
- level: None
userGroups: ["system:nodes"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["nodes"]
- level: None
users:
- system:kube-controller-manager
- system:kube-scheduler
- system:serviceaccount:kube-system:endpoint-controller
verbs: ["get", "update"]
namespaces: ["kube-system"]
resources:
- group: "" # core
resources: ["endpoints"]
- level: None
users: ["system:apiserver"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["namespaces"]
# ะะต ะปะพะณะธัะพะฒะฐัั ะพะฑัะฐัะตะฝะธั ะบ read-only URLs:
- level: None
nonResourceURLs:
- /healthz*
- /version
- /swagger*
# ะะต ะปะพะณะธัะพะฒะฐัั ัะพะพะฑัะตะฝะธั, ะพัะฝะพัััะธะตัั ะบ ัะธะฟั ัะตััััะพะฒ โัะพะฑััะธัโ:
- level: None
resources:
- group: "" # core
resources: ["events"]
# ะ ะตััััั ัะธะฟะฐ Secret, ConfigMap ะธ TokenReview ะผะพะณัั ัะพะดะตัะถะฐัั ัะตะบัะตัะฝัะต ะดะฐะฝะฝัะต,
# ะฟะพััะพะผั ะปะพะณะธััะตะผ ัะพะปัะบะพ ะผะตัะฐะดะฐะฝะฝัะต ัะฒัะทะฐะฝะฝัั
ั ะฝะธะผะธ ะทะฐะฟัะพัะพะฒ
- level: Metadata
resources:
- group: "" # core
resources: ["secrets", "configmaps"]
- group: authentication.k8s.io
resources: ["tokenreviews"]
# ะะตะนััะฒะธั ัะธะฟะฐ get, list ะธ watch ะผะพะณัั ะฑััั ัะตััััะพัะผะบะธะผะธ; ะฝะต ะปะพะณะธััะตะผ ะธั
- level: Request
verbs: ["get", "list", "watch"]
resources:
- group: "" # core
- group: "admissionregistration.k8s.io"
- group: "apps"
- group: "authentication.k8s.io"
- group: "authorization.k8s.io"
- group: "autoscaling"
- group: "batch"
- group: "certificates.k8s.io"
- group: "extensions"
- group: "networking.k8s.io"
- group: "policy"
- group: "rbac.authorization.k8s.io"
- group: "settings.k8s.io"
- group: "storage.k8s.io"
# ะฃัะพะฒะตะฝั ะปะพะณะธัะพะฒะฐะฝะธั ะฟะพ ัะผะพะปัะฐะฝะธั ะดะปั ััะฐะฝะดะฐััะฝัั
ัะตััััะพะฒ API
- level: RequestResponse
resources:
- group: "" # core
- group: "admissionregistration.k8s.io"
- group: "apps"
- group: "authentication.k8s.io"
- group: "authorization.k8s.io"
- group: "autoscaling"
- group: "batch"
- group: "certificates.k8s.io"
- group: "extensions"
- group: "networking.k8s.io"
- group: "policy"
- group: "rbac.authorization.k8s.io"
- group: "settings.k8s.io"
- group: "storage.k8s.io"
# ะฃัะพะฒะตะฝั ะปะพะณะธัะพะฒะฐะฝะธั ะฟะพ ัะผะพะปัะฐะฝะธั ะดะปั ะฒัะตั
ะพััะฐะปัะฝัั
ะทะฐะฟัะพัะพะฒ
- level: Metadata
เบเบปเบงเบขเปเบฒเบเบเบตเปเบเบตเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเบเบญเบเบเบฐเปเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเปเบกเปเบ
เปเบเบทเปเบญเบเบญเบเบชเบฐเบซเบเบญเบเบขเปเบฒเบเปเบงเบงเบฒเบเบฑเบเปเบซเบเบเบฒเบเบเบฒเบเบเบงเบเบชเบญเบ, เบกเบฑเบเปเบเบฑเบเปเบเปเบเป เบญเบฐเบเบดเบเบฒเบ webhook. เบเบฑเบเบซเบฒเบเบตเปเปเบกเปเบเบเบงเบกเปเบญเบปเบฒเปเบ
เบเบปเบเปเบเปเบฎเบฑเบ
เบเบปเบเบเบงเบฒเบกเปเบซเปเบเบฒเบเบฅเบงเบกเบเบญเบเบเบปเบเปเบเบเบงเบฒเบกเบเบญเบเปเบเบเบทเปเบเบเบฒเบเปเบเบเบธเปเบก Kubernetes, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเบเบฑเบเบเบตเบเบนเปเปเบเปเบชเปเบงเบเบเบธเบเบเบปเบ, เปเบเบเบชเบดเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เปเบฅเบฐเบเบฑเบเบเบถเบเบเบฒเบเบเบฐเบเปเบฒเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบซเบงเบฑเบเบงเปเบฒเบกเบฑเบเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเบฐเปเบเบตเบเบเบฑเบเบเบฑเบเบซเบฒเบเบฑเปเบเบเปเบฒเบงเปเบเบเบฒเบเบเบดเบเบชเบฐเบเบตเบซเบผเบทเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฑเบเปเบเบฐเบเปเบฒเปเบซเปเบเปเบฒเบเบญเปเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบญเบธเบเบฐเบเบญเบเบญเบทเปเบเปเบเปเบฝเบงเบเบฑเบเบซเบปเบงเบเปเปเบเบงเบฒเบกเบเบญเบเปเบเปเบ Kubernetes, เปเบเบดเปเบเปเบเปเบเบทเบเบกเบญเบเปเบซเปเบขเบนเปเปเบ "PS" - เบเบฒเบเบเบตเปเบเบเบฑเปเบเปเบเบปเปเบฒเบเบฐเบเบปเบเปเบซเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบตเปเบเปเบฒเปเบเบฑเบเบเปเบฝเบงเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเปเบฒเบ.
PS
เบญเปเบฒเบเบเบฑเบเบขเบนเปเปเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- ยซ
33+ เปเบเบทเปเบญเบเบกเบทเบเบงเบฒเบกเบเบญเบเปเบ Kubernetes " - ยซ
เบเบฒเบเปเบเบฐเบเปเบฒเบเปเบฝเบงเบเบฑเบเบเบฐเปเบเบเบฒเบเปเบเบทเบญเบเปเบฒเบ Kubernetes เบชเปเบฒเบฅเบฑเบเบเบนเปเบเปเบฝเบงเบเบฒเบเบเปเบฒเบเบเบงเบฒเบกเบเบญเบเปเบ " - ยซ
เบเบงเบฒเบกเปเบเบปเปเบฒเปเบ RBAC เปเบ Kubernetes " - ยซ
9 เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเบญเบเปเบ Kubernetes " - ยซ
11 เบงเบดเบเบตเบเบตเปเบเบฐ (เบเปเป) เบเบปเบเปเบเบฑเบเปเบซเบเบทเปเบญเบเบญเบเบเบฒเบ Hack Kubernetes ".
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com