From aac26a77d55e71c667fd41035e40fec21cd004fb Mon Sep 17 00:00:00 2001 From: ddeyo Date: Mon, 26 Nov 2018 11:50:58 -0800 Subject: [PATCH] issue #783 draft --- _data/toc.yaml | 2 + ee/ucp/images/aws-ebs.png | Bin 0 -> 59966 bytes ee/ucp/kubernetes/configure-aws-storage.md | 133 +++++++++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 ee/ucp/images/aws-ebs.png create mode 100644 ee/ucp/kubernetes/configure-aws-storage.md diff --git a/_data/toc.yaml b/_data/toc.yaml index 82dea02647..e1d38cd791 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1729,6 +1729,8 @@ manuals: section: - title: Access Kubernetes Resources path: /ee/ucp/kubernetes/kube-resources/ + - title: Configure AWS EBS Storage for Kubernetes + path: /ee/ucp/kubernetes/configure-aws-storage/ - title: Deploy a workload path: /ee/ucp/kubernetes/ - title: Deploy a Compose-based app diff --git a/ee/ucp/images/aws-ebs.png b/ee/ucp/images/aws-ebs.png new file mode 100644 index 0000000000000000000000000000000000000000..0a37c136e6bf1535b1763f1d934ff9a163ae5d63 GIT binary patch literal 59966 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 Z`HST@=Q(atMCyu!BnMUol}j22{11r~P1OJZ literal 0 HcmV?d00001 diff --git a/ee/ucp/kubernetes/configure-aws-storage.md b/ee/ucp/kubernetes/configure-aws-storage.md new file mode 100644 index 0000000000..ea58a24988 --- /dev/null +++ b/ee/ucp/kubernetes/configure-aws-storage.md @@ -0,0 +1,133 @@ +--- +title: Configure AWS EBS Storage for Kubernetes +description: Learn how configure AWS EBS storage for Kubernetes clusters. +keywords: UCP, Docker Enterprise, Kubernetes, storage, AWS, ELB +--- + +[AWS Elastic Block Store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) (EBS) can be deployed with Kubernetes in Docker Enterprise 2.1 to use AWS volumes as peristent storage for applications. Before using EBS volumes, configure UCP and the AWS infrastructure for storage orchestration to function. + +## Configure AWS Infrastructure for Kubernetes + +Kubernetes [Cloud Providers](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/) provide a method of provisioning cloud resources through Kubernetes via the `--cloud-provider` option. In AWS, this flag allows the [provisioning of EBS volumes](#) and cloud load balancers. + +Configuring a cluster for AWS requires several specific configuration parameters in the infrastructure before installing UCP. + +### AWS IAM Permissions + +Instances must have the following [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) permissions configured to provision EBS volumes through Kubernetes PVCs. + + +| Master | Worker | +|------------|--------| +| ec2:DescribeInstances | ec2:DescribeInstances | +| ec2:AttachVolume | ec2:AttachVolume | +| ec2:DetachVolume | ec2:DetachVolume | +| ec2:DescribeVolumes | ec2:DescribeVolumes | +| ec2:CreateVolume | ec2:DescribeSecurityGroups | +| ec2:DeleteVolume | | +| ec2:CreateTags | | +| ec2:DescribeSecurityGroups | | + + +### Infrastructure Configuration + +- Apply the roles and policies to Kubernetes masters and workers as indicated in the above chart. +- EC2 instances must be set to the private DNS hostname of the instance (will typically end in `.internal`) +- EC2 instances must also be labeled with the key `KubernetesCluster` with a matching value across all nodes. + +### Cluster Configuration + +- In addition to your existing [install flags](https://docs.docker.com/reference/ucp/3.0/cli/install/) the cloud provider flag `--cloud-provider=aws` is required at install time. +- The cloud provider can also be enabled post-install through the UCP config. The `ucp-agent` needs to be updated to propogate the new config, as described in [UCP configuration file](https://docs.docker.com/ee/ucp/admin/configure/ucp-configuration-file/#inspect-and-modify-existing-configuration). + +``` +[cluster_config] + +... + + cloud_provider = "aws" +``` + +## Deploy AWS EBS Volumes + +After configuring UCP for the AWS cloud provider, you can create persistent volumes that deploy EBS volumes attached to hosts and mounted inside pods. The EBS volumes are provisioned dynamically such they are created, attached, destroyed along with the lifecycle of the persistent volumes. This does not require users to directly access to the AWS as you request these resources directly through Kubernetes primitives. + +We recommend you use the `StorageClass` and `PersistentVolumeClaim` resources as these abstraction layers provide more portability as well as control over the storage layer across environments. + +To learn more about storage concepts in Kubernetes, see [Storage - Kubernetes](https://kubernetes.io/docs/concepts/storage/). + +### Creating a Storage Class + +A `StorageClass` lets administrators describe “classes” of storage available in which classes map to quality-of-service levels, or backup policies, or any policies required by cluster administrators. The following `StorageClass` maps a "standard" class of storage to the `gp2` type of storage in AWS EBS. + +``` +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: standard +provisioner: kubernetes.io/aws-ebs +parameters: + type: gp2 +reclaimPolicy: Retain +mountOptions: + - debug +``` + +For descriptions of AWS EBS parameters, see [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/#aws). + +### Creating a Persistent Volume Claim + +A `PersistentVolumeClaim` (PVC) is a claim for storage resources that are bound to a `PersistentVolume` (PV) when storage resources are granted. The following PVC makes a request for `1Gi` of storage from the `standard` storage class. + +``` +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: task-pv-claim +spec: + storageClassName: standard + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + ``` + +### Deploying a Persistent Volume + +The following Pod spec references the PVC `task-pv-claim` from above which references the `standard` storage class in this cluster. + +``` +kind: Pod +apiVersion: v1 +metadata: + name: task-pv-pod +spec: + volumes: + - name: task-pv-storage + persistentVolumeClaim: + claimName: task-pv-claim + containers: + - name: task-pv-container + image: nginx + ports: + - containerPort: 80 + name: "http-server" + volumeMounts: + - mountPath: "/usr/share/nginx/html" + name: task-pv-storage + ``` + +### Inspecting and Using PVs + + Once the pod is deployed, run the following `kubectl` command to verify the PV was created and bound to the PVC. + +``` +kubectl get pv +NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE +pvc-751c006e-a00b-11e8-8007-0242ac110012 1Gi RWO Retain Bound default/task-pv-claim standard 3h +``` + +The AWS console shows a volume has been provisioned having a matching name with type `gp2` and a `1GiB` size. + +![](../images/aws-ebs.png)