āĻļā§āĻā§āĻ°āĻ āĻŦāĻž āĻĒāĻ°ā§, āĻ¯ā§ āĻā§āĻ¨āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§, āĻ¸ā§āĻ°āĻā§āĻˇāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ: āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ, āĻ
āĻ§āĻŋāĻāĻžāĻ° āĻĒā§āĻĨāĻā§āĻāĻ°āĻŖ, āĻ
āĻĄāĻŋāĻāĻŋāĻ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻžāĨ¤ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ Kubernetes āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤
āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻĻā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§:
- āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ - Kubernetes API āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻā§āĻ˛āĻŋ;
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž - "āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ, āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ā§ˇ
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻšāĻ˛ āĻ¯ā§ Kubernetes API-āĻ¤ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇ āĻŦāĻ¸ā§āĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§ (āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ - ServiceAccounts
) āĻ¯ā§āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻŦāĻĻā§āĻ§ āĻāĻŦāĻ āĻā§āĻĒāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻāĻĒā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĄā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻāĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž (āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ) āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° Kubernetes API-āĻāĻ° āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ
āĻ§āĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§āĨ¤
āĻ āĻ¨ā§āĻ¯āĻĻāĻŋāĻā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° Kubernetes API-āĻ¤ā§ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻ¨ā§āĻ: āĻ¤āĻžāĻĻā§āĻ° āĻ āĻŦāĻļā§āĻ¯āĻ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻā§āĻ˛āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻŦāĻ¸āĻŦāĻžāĻ¸āĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋ āĻŦāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻā§āĻĻāĻŋāĻˇā§āĻā§ˇ
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ API āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻŦāĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§, āĻ āĻĨāĻŦāĻž āĻŦā§āĻ¨āĻžāĻŽā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§ˇ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĄā§āĻāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤:
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ â āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ (āĻā§āĻ¸ āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛!);
- āĻāĻāĻāĻāĻĄāĻŋ - āĻāĻāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨-āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻ°āĻŖ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¯āĻž "āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻā§āĻ¯āĻŧā§ āĻāĻ°āĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻāĻŦāĻ āĻ āĻ¨āĻ¨ā§āĻ¯";
- āĻā§āĻ°ā§āĻĒ â āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻā§āĻ°ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž;
- āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ - āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¯āĻž āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻĒā§āĻ°āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§: X509 āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°, āĻŦāĻžāĻšāĻ āĻā§āĻā§āĻ¨, āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ, HTTP āĻŦā§āĻ¸āĻŋāĻ āĻĒā§āĻ°āĻŽāĻžāĻŖāĨ¤ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻ¸ā§āĻāĻŋāĻŽ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨: āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ OpenID OAuth2 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤āĨ¤
āĻ āĻ§āĻŋāĻāĻ¨ā§āĻ¤ā§, āĻāĻāĻžāĻ§āĻŋāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻ¸ā§āĻāĻŋāĻŽ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§:
- āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻā§āĻā§āĻ¨ - āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯;
- X509 - āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
ServiceAccounts āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§, āĻāĻŦāĻ āĻ¯āĻžāĻ°āĻž āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻāĻžāĻ¨āĻ¤ā§ āĻāĻā§āĻā§āĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻā§āĻāĻŋ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° (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 āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° CA āĻā§āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ, āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻž (āĻāĻāĻāĻŋ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻā§ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° 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 āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§ āĻ¨āĻž):
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
āĻāĻŋāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§:
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
āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻšāĻāĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°ā§:
-
certificate-authority
-
client-certificate
-
client-key
āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¸ 64 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻāĻ¨āĻā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ -data
, āĻ
āĻ°ā§āĻĨāĻžā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ certificate-authority-data
āĻāĻŦāĻ āĻŽāĻ¤
kubeadm āĻ¸āĻā§āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ
āĻŽā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§
kubeadm alpha kubeconfig user --client-name=mynewuser --apiserver-advertise-address 192.168.100.200
NB: āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦāĻŋāĻā§āĻāĻžāĻĒāĻ¨ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĻā§āĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ /etc/kubernetes/manifests/kube-apiserver.yaml
.
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻāĻŋ stdout āĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻāĻž āĻ°āĻžāĻāĻž āĻāĻŦāĻļā§āĻ¯āĻ ~/.kube/config
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻŦāĻž āĻāĻāĻāĻŋ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§ KUBECONFIG
.
āĻāĻā§āĻ°ā§ āĻāĻ¨āĻ¨
āĻ¯āĻžāĻ°āĻž āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯:
-
āĻĒā§āĻĨāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§; -
Bitnami āĻĨā§āĻā§ āĻāĻžāĻ˛ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ , āĻ¯ā§āĻāĻžāĻ¨ā§ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ -
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ Kubernetes-āĻ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨
āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻ¨ā§āĻā§ˇ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, Kubernetes āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĨ¤
āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.6 āĻāĻ° āĻāĻā§, āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻ§āĻ°āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ āĻāĻŦā§āĻ¯āĻžāĻ (āĻ
ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ)āĨ¤ āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ
āĻ§āĻŋāĻāĻžāĻ° āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ¤ (āĻāĻŦāĻ āĻāĻ°āĻ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧ) āĻāĻĒāĻžāĻ¯āĻŧ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻāĻ°āĻŦāĻŋāĻāĻ¸āĻŋ (
RBAC āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻš Kubernetes api-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ --authorization-mode=RBAC
. āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻĒāĻžāĻĨ āĻŦāĻ°āĻžāĻŦāĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ /etc/kubernetes/manifests/kube-apiserver.yaml
, āĻŦāĻŋāĻāĻžāĻā§ command
. āĻ¯āĻžāĻāĻšā§āĻ, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, RBAC āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻāĻā§, āĻ¤āĻžāĻ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ: āĻāĻĒāĻ¨āĻŋ āĻŽāĻžāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻŋ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ authorization-mode
(āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ kube-apiserver.yaml
) āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ§āĻ°āĻŖā§āĻ° āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ (node
, webhook
, always allow
), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻā§āĻĄāĻŧā§ āĻĻā§āĻŦāĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻāĻŋ
RBAC āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ Kubernetes-āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ API āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
-
Role
иClusterRole
- āĻā§āĻŽāĻŋāĻāĻž āĻ¯āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§: -
Role
āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ§āĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ; -
ClusterRole
- āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¯ā§āĻŽāĻ¨ āĻ¨ā§āĻĄ, āĻ¨āĻ¨-āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻ°āĻāĻ˛ āĻ¸āĻš (āĻ āĻ°ā§āĻĨāĻžā§, āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ - āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,/version
,/logs
,/api*
); -
RoleBinding
иClusterRoleBinding
- āĻŦāĻžāĻāĻ§āĻžāĻ āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤Role
иClusterRole
āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻˇā§āĻ ā§ āĻŦāĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĨ¤
āĻā§āĻŽāĻŋāĻāĻž āĻāĻŦāĻ āĻā§āĻŽāĻŋāĻāĻž āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻŦāĻĻā§āĻ§, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻāĻŋ RoleBinding āĻāĻāĻāĻŋ ClusterRole āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻā§āĻŽāĻŋāĻāĻžāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§āĻ° āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻ§āĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§:
- API āĻā§āĻ°ā§āĻĒ - āĻĻā§āĻā§āĻ¨
āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ apiGroups āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻžkubectl api-resources
; - āĻ¸āĻŽā§āĻĒāĻĻ (āĻ¸āĻŽā§āĻĒāĻĻ:
pod
,namespace
,deployment
āĻāĻŦāĻ āĻ¤āĻžāĻāĨ¤); - āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻĒāĻĻ (āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž:
set
,update
āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤ - āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻ¨āĻžāĻŽ (
resourceNames
) - āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¨āĻ¯āĻŧāĨ¤
Kubernetes-āĻ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
RBAC āĻ¸āĻ¤ā§āĻ¤āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¸āĻšāĻ Role
, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻŦāĻ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒā§āĻ¤ā§ āĻāĻŦāĻ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻ°āĻžāĻāĻ¤ā§ āĻĻā§āĻ¯āĻŧ 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
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻĒāĻĄ "āĻĒāĻĄāĻŧā§āĻ¨" 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
āĻāĻā§āĻ¨ā§āĻ āĻ āĻĄāĻŋāĻ
āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻŋāĻ¤āĻāĻžāĻŦā§, āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻŽā§āĻ˛ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻ˛ â api-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°. āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻāĻāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻ āĻ
āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ "
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ
āĻĄāĻŋāĻāĻŋāĻ āĻšāĻ˛ Kubernetes-āĻ āĻāĻāĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ Kubernetes API āĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ˛ āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻŦāĻŋāĻŦāĻ°āĻŖ (āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§) āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻŦāĻ āĻ¤āĻžāĻ, āĻ āĻĄāĻŋāĻāĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯āĻž āĻ¨ā§āĻā§ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
-
--audit-policy-file=/etc/kubernetes/policies/audit-policy.yaml
-
--audit-log-path=/var/log/kube-audit/audit.log
-
--audit-log-format=json
āĻāĻ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻ āĻĄāĻŋāĻāĻŋāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ āĻ¨ā§āĻ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻ°āĻ¯āĻŧā§āĻā§: āĻ˛āĻ āĻ°ā§āĻā§āĻļāĻ¨ āĻĨā§āĻā§ āĻāĻ¯āĻŧā§āĻŦāĻšā§āĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤āĨ¤ āĻ˛āĻ āĻ°ā§āĻā§āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ:
-
--audit-log-maxbackup=10
-
--audit-log-maxsize=100
-
--audit-log-maxage=7
āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻĨāĻžāĻāĻŦ āĻ¨āĻž - āĻāĻĒāĻ¨āĻŋ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻā§ (āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ /etc/kubernetes/manifests/kube-apiserver.yaml
), āĻŦāĻŋāĻāĻžāĻā§ command
. āĻāĻ¸ā§āĻ¨ 3āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻŋ:
-
audit-policy-file
- āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¨ā§āĻ¤āĻŋ (āĻ¨ā§āĻ¤āĻŋ) āĻāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻš YAML āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻĨāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻŦ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻžāĻ¤āĻ¤ āĻāĻŽāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦ āĻ¯ā§ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ°ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻāĻŋ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻŦāĻŋāĻāĻžāĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:volumeMounts: - mountPath: /etc/kubernetes/policies name: policies readOnly: true volumes: - hostPath: path: /etc/kubernetes/policies type: DirectoryOrCreate name: policies
-
audit-log-path
- āĻ˛āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻĨāĨ¤ āĻĒāĻžāĻĨāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻ° āĻŽāĻžāĻāĻ¨ā§āĻāĻŋāĻāĻā§ āĻāĻāĻāĻāĻžāĻŦā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŋ: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
â āĻ˛āĻ āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¸ā§āĻ āĻŽā§āĻāĻžāĻĄā§āĻāĻž: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§, āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻžāĻ°ā§āĻā§āĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ (āĻĒāĻĄ, āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻāĻžāĻāĻĒ (āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž) āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ; -
Request
- āĻ˛āĻ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻāĻŦāĻ āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¸ā§āĻ āĻŦāĻĄāĻŋ; -
RequestResponse
- āĻ˛āĻ āĻŽā§āĻāĻžāĻĄā§āĻāĻž, āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¸ā§āĻ āĻŦāĻĄāĻŋ āĻāĻŦāĻ āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻŦāĻĄāĻŋāĨ¤
āĻļā§āĻˇ āĻĻā§āĻāĻŋ āĻ¸ā§āĻ¤āĻ°Request
и RequestResponse
) āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¸ā§āĻ āĻ˛āĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž āĻ¯ā§āĻā§āĻ˛āĻŋ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°ā§āĻ¨āĻŋ (āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻ
-āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻ°āĻāĻ˛ā§āĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸)āĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¯ā§āĻ¤ā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ:
-
RequestReceived
- āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻ°ā§āĻ§āĻāĻŋ āĻā§āĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻ¨āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§āĻ° āĻā§āĻāĻ¨ āĻŦāĻ°āĻžāĻŦāĻ° āĻāĻ°āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋ; -
ResponseStarted
- āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻĄāĻŋ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻāĻā§. āĻĻā§āĻ°ā§āĻ āĻāĻ˛āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,watch
); -
ResponseComplete
- āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ° āĻā§āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¨āĻž; -
Panic
- āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧāĨ¤
āĻ¯ā§āĻā§āĻ¨ā§ āĻ§āĻžāĻĒ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ omitStages
.
āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĢāĻžāĻāĻ˛ā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ˛āĻāĻŋāĻ āĻ˛ā§āĻā§āĻ˛ āĻ¸āĻš āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻāĻžāĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ¨ā§āĻ¤āĻŋāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĨāĻŽ āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻā§āĻŦā§āĻ˛ā§āĻ āĻĄā§āĻŽāĻ¨ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ¨ā§ āĻāĻŦāĻ, āĻ¯āĻĻāĻŋ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻā§: āĻ¨ā§āĻ¤āĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻŦā§. āĻ¨ā§āĻ¤āĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻŋāĻāĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§āĻā§ kubectl delete
āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ docker stop
kube-masters-āĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ
āĻĄāĻŋāĻ āĻ¨ā§āĻ¤āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
docker stop $(docker ps | grep k8s_kube-apiserver | awk '{print $1}')
āĻ āĻĄāĻŋāĻāĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻā§āĻŦā§-āĻāĻĒāĻŋāĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻĄ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧ. āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°āĻ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ°ā§āĻ¸āĻĒāĻ¨ā§āĻ¸ āĻšā§āĻĄāĻžāĻ° āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻĒāĻ°āĻ āĻ˛āĻāĻŋāĻ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤ āĻ˛ā§āĻĄ āĻ āĻĄāĻŋāĻ āĻ¨ā§āĻ¤āĻŋāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻĒāĻ°āĻ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤
āĻ¨ā§āĻ¤āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨ā§āĻ¤āĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ āĻ¨ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻĢāĻžāĻāĻ˛ āĻāĻā§ 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
); - āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻĒāĻĻ (āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž:
get
,update
,delete
āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻĻā§āĻ°); - āĻ¸āĻŽā§āĻĒāĻĻ (āĻ¸āĻŽā§āĻĒāĻĻ, āĻ¯āĻĨāĻž:
pod
,configmaps
āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻāĻŦāĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻ°ā§āĻĒ (apiGroups
).
āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻžāĻ! āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻāĻŦāĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻ°ā§āĻĒ (API āĻā§āĻ°ā§āĻĒ, āĻ āĻ°ā§āĻĨāĻžā§ 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
āĻāĻāĻāĻŋ āĻ
āĻĄāĻŋāĻ āĻ¨ā§āĻ¤āĻŋ āĻāĻ°ā§āĻāĻāĻŋ āĻāĻžāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ
āĻĄāĻŋāĻ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻāĻ¯āĻŧā§āĻŦāĻšā§āĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨. āĻāĻ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĢāĻ˛āĻžāĻĢāĻ˛
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻŽā§āĻ˛āĻŋāĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻāĻžāĻ°āĻāĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤āĻā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻ¤āĻžāĻĻā§āĻ° āĻ āĻ§āĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧā§ˇ āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ°āĻž āĻ¤āĻ¤ā§āĻ¤ā§āĻŦā§ āĻŦāĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻŽā§āĻā§āĻŽā§āĻāĻŋ āĻšāĻ¯āĻŧā§āĻā§āĻ¨āĨ¤ āĻāĻŽāĻŋ āĻāĻāĻŋāĻ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻāĻŋ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻ¸ā§āĻ°āĻā§āĻˇāĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻāĻ°āĻŖā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¨āĻŋāĻā§āĻā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨, āĻ¯āĻž "PS" āĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒāĻžāĻŦā§āĻ¨āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- ÂĢ
33+ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻ°āĻā§āĻāĻžāĻŽ "; - ÂĢ
āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻļāĻžāĻĻāĻžāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ Kubernetes āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¨ā§āĻ¤āĻŋāĻ° āĻāĻāĻāĻŋ āĻā§āĻŽāĻŋāĻāĻž "; - ÂĢ
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ RBAC āĻŦā§āĻāĻž "; - ÂĢ
9 Kubernetes āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻ āĻā§āĻ¯āĻžāĻ¸ "; - ÂĢ
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻšā§āĻ¯āĻžāĻ āĻšāĻāĻ¯āĻŧāĻžāĻ° 11āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ (āĻ¨āĻž) Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com