10 рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкрд░ рдПрд▓рд┐рдпрд╕реНрдЯрд┐рдХреНрд╕ рдХреА рдЦреЛрдЬ


Kubernetes рдЙрд░реНрдл k8s рддреИрдирд╛рддреА, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдореВрд╣ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕ рдкрд░ AWS рдХреЛ рдПрдХ рдПрд▓реЗрд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ GCE рдФрд░ Azure рдкрд░ рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред


AWS рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛


рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд AWS рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: S3, EC2, рдорд╛рд░реНрдЧ 53, IAM рдФрд░ VPC ред


1. рд╕реНрдерд╛рдкрдирд╛: рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд▓рдЖрдИ рдХреА рд╕реНрдерд╛рдкрдирд╛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдУрдПрд╕ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, CWS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ AWS рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП AWS CLI рд╕реЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЬрдЧрд░ рдФрд░ рдкрд╛рдЗрдк рд╣реИрдВ, рддреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:


 pip install awscli --upgrade --user 

рдлрд┐рд░ рд╣рдо рдХреЛрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдЬреЛ рд╣рдореЗрдВ K8S рдЙрддреНрдкрд╛рджрди-рд╕реНрддрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕реЗрдЯрдЕрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
рдЧрд┐рдердм рд╕реЗ рд╕реАрдзреЗ рдХреЛрдкреНрд╕ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред


 wget -O kops https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64 chmod +x ./kops sudo mv ./kops /usr/local/bin/ 

рдЕрдВрдд рдореЗрдВ, рд╣рдо K8ectl - CLI рдХрд╛ рдЙрдкрдпреЛрдЧ K8S рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ (рдпрджрд┐ рдЖрдкрдиреЗ docker рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ docker CLI рдХреЗ рд╕рдорд╛рди рд╣реИ)ред рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:


 wget -O kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl 

рдиреЛрдЯ: рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд┐рдиреАрдХреНрдпреВрдм рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЛрдо рдорд╢реАрди рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


2. рдЖрдИрдПрдПрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдПрдБ : AWS рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо kops рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ IAM рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ kops ред kops рдПрдХ рдПрдкреАрдЖрдИ рдЦрд╛рддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ рдФрд░ AWS рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЦрд╛рддреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред kops рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд IAM рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:


  • AmazonEC2FullAccess
  • AmazonRoute53FullAccess
  • AmazonS3FullAccess
  • IAMFullAccess
  • AmazonVPCFullAccess


рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк CLI рд╕реЗ рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 aws iam create-group --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonRoute53FullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/IAMFullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonVPCFullAccess --group-name kops aws iam create-user --user-name kops aws iam add-user-to-group --user-name kops --group-name kops aws iam create-access-key --user-name kops 

SecretAccessKey рдореЗрдВ SecretAccessKey рдФрд░ AccessKeyID рдзреНрдпрд╛рди рджреЗрдВред


рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AWS CLI рдХреЛ aws configure рд╕рд╛рдеред


рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ aws iam list-users ред


рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ AWS рдЦрд╛рддреЗ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ CLI kops рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред


 export AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id) export AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key) 

рдпрджрд┐ рдЖрдк Kops 1.6.2 рдпрд╛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ DNS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдЖрдк рдПрдХ рдЧрдкрд╢рдк рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛: рдХреНрд▓рд╕реНрдЯрд░ рдирд╛рдо .k8s.local рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдбреАрдПрдирдПрд╕ рд╕реЗрдЯрдЕрдк


рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдкрдиреЗ рдбреЛрдореЗрди рдХреЛ AWS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрд╕реНрдЯ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк: рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдбреЛрдореЗрди рдХреЗ рдПрдХ рдЙрдкрдбреЛрдореЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдЙрдкрдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдПрдВред рдЗрд╕ рдореИрдиреБрдЕрд▓ рдореЗрдВ, рд╣рдо рдПрдХ рдирд┐рдЬреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдХрд┐рд╕реА рднреА рдирд╛рдо рдХреЗ рддрд╣рдд рдЬрд╝реЛрди рд╕реЗрдЯ рдХрд░реЗрдВред рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред DNS рдХреЛ рдпрд╣рд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВ ред


3. S3 рдмрд╛рд▓реНрдЯреА рдмрдирд╛рдирд╛: рд╣рдорд╛рд░реЗ K8S рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ kops рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ S3 рдмрд╛рд▓реНрдЯреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдмрдХреЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдбреЗрдЯрд╛ рдХрд╛ рд╕реНрд░реЛрдд рдмрди рдЬрд╛рдПрдЧрд╛ред


 aws s3api create-bucket \ --bucket <your-unique-bucket-name> \ --region us-east-1 

рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдмрдХреЗрдЯ рдХреЛ us-east-1 рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдСрдкрд░реЗрд╢рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕реЗрдЯрд┐рдВрдЧ - region рдЕрд▓рд╛рд╡рд╛ - region рдЗрдЪреНрдЫрд┐рдд рдХреНрд╖реЗрддреНрд░ рдкрд░ рдЬрд╛рдПрдБ рдФрд░ рдЙрд╕реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ LocationConstraint рдЬреЛрдбрд╝реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд us-west-1 рдореЗрдВ рдмрд╛рд▓реНрдЯреА рдирд┐рд░реНрдорд╛рдг рдХрдорд╛рдВрдб рджрд┐рдЦрд╛рддрд╛ us-west-1 ред


 aws s3api create-bucket \ --bucket <your-unique-bucket-name> \ --region us-west-1 \ --create-bucket-configuration LocationConstraint=us-west-1 

рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП S3 рдмрд╛рд▓реНрдЯреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:


 aws s3api put-bucket-versioning \ --bucket <your-unique-bucket-name> \ --versioning-configuration Status=Enabled 

4. рдкрд╣рд▓рд╛ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛: рддреЛ, рдЖрдк рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ! рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдиреЗ DNS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдЪрд░рдг 2 рдХреЗ рдмрд╛рдж) рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рддреЛ NAME рдорд╛рди рдореЗрдВ .k8s.local рдЬреЛрдбрд╝реЗрдВред


 export NAME=myfirstcluster.example.com export KOPS_STATE_STORE=s3://your-bucket-name 

рдЬреЛ рдХреНрд╖реЗрддреНрд░реАрдп рдХреНрд╖реЗрддреНрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЙрди рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рди рднреВрд▓реЗрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо us-East-2 рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдХрд░реЗрдВрдЧреЗред


 aws ec2 describe-availability-zones --region us-east-2 

рдпрджрд┐ рдЖрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдПрдВ:


 kops create cluster \ --zones us-east-2c \ --node-count 3 \ ${NAME} 

рдпрджрд┐ рдЖрдк рдПрдХ рдирд┐рдЬреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд░реЗрдВ:


 kops create cluster \ --zones us-east-2c \ --node-count 3 \ --dns private ${NAME} 

рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЛ K8S рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЙрдЧ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд┐рдирд┐рдпрди рдорд╛рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдирдИ EC2 рдорд╢реАрдиреЗрдВ рдмрдирд╛рддрд╛ рд╣реИред


 [ec2-user@ip-172-31-35-145 test]$ kops create cluster \ > --dns private \ > --zones us-east-2c \ > --node-count 3 \ > ${NAME} --yes I0306 09:45:29.636834 20628 create_cluster.go:439] Inferred --cloud=aws from zone "us-east-2c" I0306 09:45:29.637030 20628 create_cluster.go:971] Using SSH public key: /home/ec2-user/.ssh/id_rsa.pub I0306 09:45:29.850021 20628 subnets.go:184] Assigned CIDR 172.20.32.0/19 to subnet us-east-2c I0306 09:45:31.118837 20628 dns.go:92] Private DNS: skipping DNS validation I0306 09:45:46.986963 20628 executor.go:91] Tasks: 73 done / 73 total; 0 can run I0306 09:45:46.987101 20628 dns.go:153] Pre-creating DNS records I0306 09:45:47.668392 20628 update_cluster.go:248] Exporting kubecfg for cluster kops has set your kubectl context to k8s.appbase Cluster is starting. It should be ready in a few minutes. 

рджреЗрдЦрд╛! K8s рдХреНрд▓рд╕реНрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


5. рдХреНрд▓рд╕реНрдЯрд░ рдЬрд╛рдВрдЪ: kops рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рднреА рдЙрджрд╛рд╣рд░рдг ASG (рдСрдЯреЛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЧреНрд░реБрдк) рдореЗрдВ рд╣реИрдВ ред рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдПрд╕рдЬреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:


 kops edit cluster ${NAME} 

рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛:


 kops update cluster ${NAME} --yes 

рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


 [ec2-user@ip-172-31-35-145 examples]$ kops update cluster --yes Using cluster from kubectl context: k8s.appbase I0216 05:09:06.074467 2158 dns.go:92] Private DNS: skipping DNS validation I0216 05:09:07.699380 2158 executor.go:91] Tasks: 73 done / 73 total; 0 can run I0216 05:09:07.699486 2158 dns.go:153] Pre-creating DNS records I0216 05:09:07.961703 2158 update_cluster.go:248] Exporting kubecfg for cluster kops has set your kubectl context to k8s.appbase Cluster changes have been applied to the cloud. 

рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред


 kops validate cluster 

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдКрдкрд░ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред


 Using cluster from kubectl context: k8s.appbase Validating cluster k8s.appbase INSTANCE GROUPS NAME ROLE MACHINETYPE MIN MAX SUBNETS master-us-east-2c Master t2.large 1 1 us-east-2c nodes Node t2.medium 3 3 us-east-2c NODE STATUS NAME ROLE READY ip-172-20-44-33.us-east-2.compute.internal master True ip-172-20-52-48.us-east-2.compute.internal node True ip-172-20-62-30.us-east-2.compute.internal node True ip-172-20-64-53.us-east-2.compute.internal node True Your cluster k8s.appbase is ready 

рдЕрдкрдиреЗ рдирдП k8s рджреЗрдЦреЗрдВ!


рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреАрдЖрдИ рдСрдирд▓рд╛рдЗрди рд╣реИ рдФрд░ рд╕реБрди рд░рд╣рд╛ рд╣реИред рдиреЛрдбреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП kubectl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


 kubectl get nodes 

рдпрд╣ рдЖрдкрдХреЗ рдиреЛрдбреНрд╕ рдФрд░ рдЙрдирдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЧрд╛ред


 [ec2-user@ip-172-31-35-145 elasticsearch]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ip-172-20-44-33.us-east-2.compute.internal Ready master 1m v1.8.6 ip-172-20-52-48.us-east-2.compute.internal Ready node 3m v1.8.6 ip-172-20-62-30.us-east-2.compute.internal Ready node 2m v1.8.6 ip-172-20-64-53.us-east-2.compute.internal Ready node 4m v1.8.6 

рдПрдХ рдХреБрдмреЗрд░рдиреЗрдЯ рдЙрдк рдПрдХ рдЕрдореВрд░реНрдд рд╣реИ рдЬреЛ рдЗрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрдВрдЯреЗрдирд░реЛрдВ (рдЬреИрд╕реЗ рдбреЛрдХрд░) рдФрд░ рдХрдИ рд╕рд╛рдЭрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдиреЛрдб рдкрд░ рдЦреБрд▓рд╛рд╕рд╛ рдХреЗ рддрд╣рддред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рддреИрдирд╛рдд K8S рдореЗрдВ рдиреЛрдбреНрд╕ рдЬреЛрдбрд╝реЗрдВред


рдЙрдкрд▓рдмреНрдз рдлрд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП:


 kubectl get pods 

рдпрд╣ рдХрдорд╛рдВрдб рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЪреВрд▓реНрд╣реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛ред


 [ec2-user@ip-172-31-35-145 ~]$ kubectl get pods NAME READY STATUS RESTARTS AGE es-5967f5d99c-5vcpb 1/1 Running 0 3h es-5967f5d99c-cqk88 1/1 Running 0 3h es-5967f5d99c-lp789 1/1 Running 0 3h 

K8S рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрд▓рд┐рдпрд╕реНрдЯрд┐рдХреНрд╕ рдХреА рддреИрдирд╛рддреА



рдпрджрд┐ рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдореИрдВ k8 рдСрдирд▓рд╛рдЗрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ ред


рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдордиреЗ K8S рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИ: рдореБрдЦреНрдп рдиреЛрдб рдФрд░ рджреЛ рдПрдЬреЗрдВрдЯ рдиреЛрдбреНрд╕ред рдиреЛрдб рдПрдЬреЗрдВрдЯреЛрдВ рдХреА рдлрд▓реА рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рддреИрдирд╛рддреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдиреЛрдб рдХреА рднреВрдорд┐рдХрд╛ рд╣реИред


K8S рдЖрд╡реЗрджрди рддреИрдирд╛рддреА рдШреЛрд╖рдгрд╛рдкрддреНрд░ рд╣реИрдВ рдФрд░ JSON / YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдЪреБрдиреЗрдВред рдЪреВрдВрдХрд┐ рдПрд▓реАрд╕реНрдЯреЗрдХрд░реНрдЪ рдПрдХ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рд╣рдо рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


6. рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреИрдирд╛рддреАред рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рд╕рдорд╛рди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд▓реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЪреВрд▓реНрд╣рд╛ рд╕реЗрдЯ рдХреА рддреИрдирд╛рддреА рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрди рдЪреВрд▓реНрд╣реЛрдВ рдХрд╛ рдХреНрд░рдо рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрд▓реАрдЯреЗрд╕рд░реНрдЪ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред


рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдЬрд┐рд╕реЗ es-stateful set. yaml рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрд▓реАрд╕реНрдЯреЗрдХрд░реНрдЪ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдХреА рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдЫрд╡рд┐ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ ред


7. рд╕реЗрд╡рд╛рдПрдВ: Service рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ - рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рдЬреЛ рдХрд┐ рдФрд░ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдпрд╛ рдХрд┐рд╕реА рдЕрд▓рдЧ рдЪреВрд▓реНрд╣рд╛ рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред



LoadBalancer рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреЙрдбреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдФрд░ рд▓реЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рднреА рдПрд▓реАрдЯреЗрд╕рд░реНрдЪ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдПрдХ рджреВрд╕рд░реЗ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдИрдПрд╕ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


es-svc.yaml рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реЗрд╡рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред


 apiVersion: v1 #API Version of the resource kind: Service #Type of resource metadata: #Contains metadata of this resource. name: elasticsearch #Name of this resource labels: #Additional identifier to put on pods component: elasticsearch #puts component = elasticsearch spec: #Specifications of this resource type: LoadBalancer #type of service selector: #will distribute load on pods which component: elasticsearch #have label `component = elasticsearch` ports: #Port on which LoadBalancer will listen - name: http #Name given to port port: 9200 #Port number protocol: TCP #Protocol supported - name: transport #Name given to port port: 9300 #Port number protocol: TCP #Protocol supported 

8. рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛: рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП K8S рдкрд░ рд╣рдорд╛рд░реЗ рдПрд▓рд┐рдЯрд┐рдХреНрд╕рдЦреЛрдЬ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВред


 kubectl create -f es-statefulset.yaml kubectl create -f es-svc.yaml 

'рдХреНрд░рд┐рдПрдЯ' K8S рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХрдорд╛рдВрдб рд╣реИред


рд╣рдорд╛рд░реЗ 3-рдиреЛрдб (рд╕реНрдЯреЗрдЯрд┐рдХрд╕реЗрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ replicas = 3 рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ?) рдПрд▓реАрдЯреЗрд╕рд░реНрдЪ рдХреНрд▓рд╕реНрдЯрд░ рддреБрд░рдВрдд рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рд╣рдо рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрд▓реЗрд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдкреЙрдбреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 kubectl get pods 

 [ec2-user@ip-172-31-35-145 test]$ kubectl get pods,svc,deployment NAME READY STATUS RESTARTS AGE es-0 1/1 Running 0 23m es-1 1/1 Running 0 17m es-2 1/1 Running 0 23m 

9. рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕рдЦреЛрдЬ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг: рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдПрд▓реАрд╕реНрдЯреЗрдХрд░реНрдЪ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред Elasticsearch рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА IP рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ LoadBalancer рд╕реЗрд╡рд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред LoadBalancer рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:


 kubectl describe service elasticsearch 

 [ec2-user@ip-172-31-35-145 examples]$ kubectl describe service elasticsearch Name: elasticsearch Namespace: default Labels: component=elasticsearch Annotations: <none> Selector: component=elasticsearch Type: LoadBalancer IP: 100.70.114.146 LoadBalancer Ingress: http://a4d0c157d212811e898430af47d23da1-952261901.us-east-2.elb.amazonaws.com Port: http 9200/TCP TargetPort: 9200/TCP NodePort: http 31358/TCP Endpoints: 100.96.4.28:9200 Port: transport 9300/TCP TargetPort: 9300/TCP NodePort: transport 31767/TCP Endpoints: 100.96.4.28:9300 Session Affinity: None External Traffic Policy: Cluster Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal EnsuringLoadBalancer 1m service-controller Ensuring load balancer Normal EnsuredLoadBalancer 1m service-controller Ensured load balancer [ec2-user@ip-172-31-35-145 examples]$ 

LoadBalancer Ingress рдХреЗ рдореВрд▓реНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдПрдХ рдпреВрдЖрд░рдЖрдИ рдФрд░ рдПрд▓рд┐рдЯрд┐рдХреНрд╕рдЦреЛрдЬ рдмрд╛рд╣рд░реА рдкреЛрд░реНрдЯ рдХреЗ рдкреНрд░рддреНрдпрдп рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓реЗрдВ: 9200 ред рдЖрдк рдЗрд╕реЗ рджреЗрдЦреЗрдВрдЧреЗ:



рдЖрдк 9200/_cluster /health?pretty рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ: 9200/_cluster /health?pretty рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд▓рд┐рдП 9200/_cluster /health?pretty ред



10. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╣реАрд▓рд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдг: рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕ рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ ред рдЗрд╕ рддрд░рд╣, рдпрджрд┐ рдХреЛрдИ рдЙрдк рдЧрд┐рд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдирдпрд╛ рдЙрдк рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред


рд╣рдо рдПрдХ рдЕрд╕рдлрд▓рддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ (рдЙрди рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рд╣рдЯрд╛рдХрд░, рдЬрд┐рди рдкрд░ рд╣рдорд╛рд░реЗ ES рдЙрджрд╛рд╣рд░рдг рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ) рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░рд╛ ES рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрд╡рддрдГ рдЕрдХреНрд╖реБрдгреНрдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред



рдЪреВрдВрдХрд┐ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдЪреВрд▓реНрд╣рд╛ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред


рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЪреВрд▓реНрд╣реЛрдВ рдХреА рд╡рд╕реВрд▓реА рдХреЗ рдмрд╛рдж, рдИрдПрд╕ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдкрд╣рд▓реЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд░рд┐рдХреЙрд░реНрдб рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрд▓рдмреНрдз рд╣реИред


рдЕрдЧрд▓реЗ рдЪрд░рдгреЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА


рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ:


  1. рдмреИрдХрдЕрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдЦреЛрдП рд╣реБрдП рдбреЗрдЯрд╛ рдХреЛ рд░рд┐рдХрд╡рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИред
  2. рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрдЯрдЕрдкред рд╣рдо рдПрд▓реАрдЯреЗрд╕рд░реНрдЪ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореАрдбрд┐рдпрд╛ рдЯреЛрдХрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
  3. рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдг рдкрддреНрд░ред рд╣рдорд╛рд░реЗ ES рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЛрдореЗрди рдорд╛рдирдЪрд┐рддреНрд░рдг рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ LetsEncrypt / рдЕрдиреНрдп TLS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рднреЗрдЬреЗ рдЧрдП рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХрд░реЗрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓реЗрдЦ рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рдирддреЗ рд╣реИрдВ: рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдпрд╣ рд╕рдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдореВрд▓: 10 рдЪрд░рдгреЛрдВ рдореЗрдВ AWS рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрд▓реЗрд╕реНрдЯрд┐рдХреНрд╕ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ

Source: https://habr.com/ru/post/hi416643/


All Articles