Amazon EKS가 왔습니다.
                                            
                                                
                                                
                                                
                                                
                                                
                                                 14779 단어  도커kuberneteseksAWS
                    
현시점에서는 오레곤(us-west-2)과 버지니아(us-east-1)에서 사용할 수 있습니다.
매니지먼트 컨소룰에
EKS 의 문자가!
클릭하면

작성 도중? ?
절차
Getting Started를 보면서 만들어 보았습니다.
 htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 에 ks / ㅁ st / 우세 r 구이로 / 껄껄 g-s r d. HTML
 IAM 역할 만들기
먼저 EKS용 IAM 롤을 만듭니다.
역할 만들기 화면에서 EKS를 선택합니다.
 
우선 정책은 지정한 채로
 
적당히 이름 붙여 작성.
 
 CloudFormation에서 VPC 만들기
Getting Started에서는 CFn의 템플리로 VPC 만들 수 있다는 것이므로・・・
템플릿 URL은 여기
https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-06-05/amazon-eks-vpc-sample.yaml
CFn 화면에서 템플릿 URL을 지정하고,
 
CIDR 지정하여,
 
만들기.
 
어서 오세요 3 서브넷의 VPC였습니다.
 로컬 환경 설정
https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-06-05/amazon-eks-vpc-sample.yaml
EKS 용 kubectl이있는 것 같습니다.
$ curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-06-05/bin/darwin/amd64/kubectl
$ chmod +x ./kubectl
$ ./kubectl version --short --client
Client Version: v1.10.3
인증에 사용하는 것 같습니다.
$ curl -o heptio-authenticator-aws https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-06-05/bin/darwin/amd64/heptio-authenticator-aws
$ chmod +x ./heptio-authenticator-aws
$ ./heptio-authenticator-aws help
A tool to authenticate to Kubernetes using AWS IAM credentials
Usage:
  heptio-authenticator-aws [command]
Available Commands:
  help        Help about any command
  init        Pre-generate certificate, private key, and kubeconfig files for the server.
  server      Run a webhook validation server suitable that validates tokens using AWS IAM
  token       Authenticate using AWS IAM and get token for Kubernetes
  verify      Verify a token for debugging purpose
1.15.32 이상 필요
$ sudo pip install --upgrade awscli 
Cluster 만들기
aws-cli 로 하는 것이 좋을 것 같습니다.이유는 모르겠지만 관리 콘솔에서 만들면 kubectl 연결로 인증에 오류가 발생했습니다.
$ ./kubectl get all
error: the server doesn't have a resource type "cronjobs"
$ ./kubectl get node
error: You must be logged in to the server (Unauthorized)
작성 명령은 이런 느낌입니다.
$ aws eks create-cluster --name test --role-arn arn:aws:iam::XXXXXXXXXXX:role/EKS-Role --resources-vpc-config subnetIds=subnet-XXXXXX,subnet-XXXXXXX,securityGroupIds=XXXXXX --region us-east-1
{
    "cluster": {
        "status": "CREATING",
        "name": "test",
        "certificateAuthority": {},
        "roleArn": "arn:aws:iam::XXXXXXXXX:role/EKS-Role",
        "resourcesVpcConfig": {
            "subnetIds": [
                "subnet-XXXXXXX",
                "subnet-XXXXXXX"
            ],
            "vpcId": "vpc-XXXXXXXX",
            "securityGroupIds": [
                "sg-XXXXXX"
            ]
        },
        "version": "1.10",
        "arn": "arn:aws:eks:us-east-1:XXXXXXXXXXXX:cluster/test",
        "createdAt": 1528253503.404
    }
}
CFn으로 만든 SubnetID, SG를 지정하고 있습니다.
버지니아에서는 1b의 서브넷을 포함하면 ↓의 에러가 나왔으므로, 제외하고 있습니다.
An error occurred (UnsupportedAvailabilityZoneException) when calling the CreateCluster operation: Cannot create cluster 'test' because us-east-1b, the targeted availability zone, does not currently have sufficient capacity to support the cluster. Retry and choose from these availability zones: us-east-1a, us-east-1c, us-east-1d
오레곤에서는 문제 없을 것 같았습니다.
STATUS가
ACTIVE가 될 때까지 기다립니다. (15~20분 정도・・・)
kubectl로 연결
config 파일을 만듭니다.
서버 엔드포인트, 인증서 정보 및 클러스터 이름을 수정합니다.
eks-config
apiVersion: v1
clusters:
- cluster:
    server: (サーバーエンドポイント、DESCRIBE_CLUSTER_CONTAINER_LABEL_API_SERVER_ENDPOINTの部分)
    certificate-authority-data: (証明書情報、DESCRIBE_CLUSTER_CONTAINER_LABEL_CERTIFICATE_AUTHORITYの部分)
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: aws
  name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      command: ./heptio-authenticator-aws
      args:
        - "token"
        - "-i"
        - "(クラスタ名)"
KUBECONFIG를 설정합니다.
$ export KUBECONFIG=./eks-config
연결!
$./kubectl get all                                                 [12:04:13]
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   6m
할 수 있었습니다.
Worker 노드 만들기
CFn의 템플리가 준비되어 있으므로 이것을 사용합니다.
URL은 이쪽.
https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-06-05/amazon-eks-nodegroup.yaml

AMI는 EKS용 AMI가 있는 것 같습니다.

이 설정은 AZ당 하나씩 인스턴스를 만듭니다.

ConfigMap 에서 Node를 Join시킵니다.표본이 있기 때문에,
$ curl -O https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-06-05/aws-auth-cm.yaml
rolearn 의 부분을 CFn으로 작성된 NodeInstanceRole 의 ARN으로 수정합니다.aws-auth-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: aws-auth
  namespace: kube-system
data:
  mapRoles: |
    - rolearn: arn:aws:iam::XXXXXXXX:role/test-worker-nodes-NodeInstanceRole-XXXXXXXXX
      username: system:node:{{EC2PrivateDNSName}}
      groups:
        - system:bootstrappers
        - system:nodes
Apply합니다.
$ ./kubectl apply -f aws-auth-cm.yaml
configmap "aws-auth" created
$ ./kubectl get nodes
NAME                              STATUS    ROLES     AGE       VERSION
ip-192-168-121-147.ec2.internal   Ready     <none>    52s       v1.10.3
ip-192-168-182-144.ec2.internal   Ready     <none>    55s       v1.10.3
ip-192-168-235-51.ec2.internal    Ready     <none>    53s       v1.10.3
등록되었습니다!
배포
그리고는, k8s의 세계이므로 좋아하게.
우선 샘플 GuestBook을 배포해 보겠습니다.
$ ./kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/examples/guestbook-go/redis-master-controller.json
replicationcontroller "redis-master" created
$ ./kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/examples/guestbook-go/redis-master-service.json
service "redis-master" created
$ ./kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/examples/guestbook-go/redis-slave-controller.json
replicationcontroller "redis-slave" created
$ ./kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/examples/guestbook-go/redis-slave-service.json
service "redis-slave" created
$ ./kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/examples/guestbook-go/guestbook-controller.json
replicationcontroller "guestbook" created
$ ./kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/v1.10.3/examples/guestbook-go/guestbook-service.json
service "guestbook" created
$ ./kubectl get services -o wide
NAME           TYPE           CLUSTER-IP       EXTERNAL-IP                       PORT(S)          AGE       SELECTOR
guestbook      LoadBalancer   10.100.133.245   a22b8aa77693811e883521XXXXXXXXX-XXXXXXXXX.us-east-1.elb.amazonaws.com   3000:32551/TCP   5s        app=guestbook
kubernetes     ClusterIP      10.100.0.1       <none>                       443/TCP          18m       <none>
redis-master   ClusterIP      10.100.141.60    <none>                       6379/TCP         39s       app=redis,role=master
redis-slave    ClusterIP      10.100.252.136   <none>                       6379/TCP         20s       app=redis,role=slave
ELB를 보면 CLB가 가능합니다.

브라우저로 액세스하면 ...

보였다.
요약
마침내 AWS에서 관리되는 k8s 환경을 구축할 수 있습니다.
그냥・・・
대단히 귀찮습니다 ...
아마도 도구 등이 충실해 온다고는 생각합니다만・・・
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Amazon EKS가 왔습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/taishin/items/a32b4ac2c3f73cd02abb
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
Reference
이 문제에 관하여(Amazon EKS가 왔습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taishin/items/a32b4ac2c3f73cd02abb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)