Skip to content

Commit

Permalink
Merge pull request #41 from CiscoCloud/ag-edit
Browse files Browse the repository at this point in the history
Minor edits; have to test still
  • Loading branch information
agentlecisco authored May 17, 2019
2 parents e1e1f37 + 4cc7054 commit fb86df5
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 76 deletions.
66 changes: 33 additions & 33 deletions labs/CiscoContainerPlatform-101/1.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,62 +2,62 @@

## Objectives

This Learning Lab introduces you to the Cisco Container Platform product, it's interface, API's and product benefits.
The lab will use Cisco Container Platform API's to simply create, provision and manage Kubernetes clusters on premise, giving the same "Kubernetes as a Service" user experience as public-cloud Kubernetes offerings.
This Learning Lab introduces you to the Cisco Container Platform product, its interface, APIs and product benefits.
The Lab uses Cisco Container Platform APIs to simply create, provision and manage Kubernetes clusters on premise, giving the same "Kubernetes as a Service" user experience as public-cloud Kubernetes offerings.

We then use your new Kubernetes cluster to deploy a containerized application onto Kubernetes, with storage persistence.

# Audience
## Audience

* DevOps and SRE engineering teams.
* IT Audiences looking to consume containers.
* IT Audiences needing on-premise or multi-cloud Container APIs.
* IT Audience preparing to address their developers need for Docker and Containers.
* IT Audiences needing on-premise or multi-cloud container APIs.
* IT Audience preparing to address their developers need for Docker and containers.

# What is Cisco Container Platform?
## What is Cisco Container Platform?
Cisco Container Platform is a new product, aimed at making the delivery of an on-premise or multi-cloud container platform as simple as the public cloud user experience.

Specifically;
Specifically:

- IT teams should not need to specialize in Kubernetes internals to provide Kubernetes services to their development teams.
- Creation and Maintenance of Kubernetes clusters should be automated and API driven.
- Creation and maintenance of Kubernetes clusters should be automated and API driven.
- The end result should be native Kubernetes access for the end developers, not custom tooling.
- The solution should provide validated, previously tested clusters and configurations, with regular releases and updates.

![](assets/images/adminuser-cpp-admin-clusters-view.png)

With Cisco Container Platform, your IT teams can tie self-service provisioning of multiple Kubernetes clusters into their existing management tooling; or use the Container Platform UI to create a "**Kubernetes as a Service**" layer for your Organization, while benefiting from the known-cost and data sovereignty aspects of on-premise workloads.
With Cisco Container Platform, your IT teams can tie self-service provisioning of multiple Kubernetes clusters into their existing management tooling; or use the Container Platform UI to create a "**Kubernetes as a Service**" layer for your organization. This gives your organization the benefits of the known-cost and data sovereignty aspects of on-premise workloads.

Also, because Cisco Container Platform produces "Vanilla" Kubernetes clusters, your DevOps teams can write truly cross-environment automation utilizing the Kubernetes API, making the consumption of multiple public and private environments a much less daunting task.
Also, because Cisco Container Platform produces "vanilla" Kubernetes clusters, your DevOps teams can write truly cross-environment automation utilizing the Kubernetes API, making the consumption of multiple public and private environments a much less daunting task.

![](assets/images/CCP-SIMPLE-101.png)

# What is HyperFlex?
## What is HyperFlex?

As with any cloud provider, API's are the key to solid automation, making self service for multiple users possible.
As with any cloud provider, APIs are the key to solid automation, making self service for multiple users possible.

Cisco HyperFlex brings this concept on-premise, with a single server SKU that clusters to provide scale-out compute, storage and networking in a single product.

HyperFlex servers, powered by Cisco UCS management give a perfect production-tested base on which to build an on-premise Kubernetes as a Service solution, with all the API's needed to allow Cisco Container Platform to manage the creation and updates of your tenant Kubernetes clusters.
HyperFlex servers, powered by Cisco UCS management give a perfect production-tested base on which to build an on-premise Kubernetes as a Service solution, with all the APIs needed to allow Cisco Container Platform to manage the creation and updates of your tenant Kubernetes clusters.

HyperFlex servers, powered by Cisco UCS Management give a production-tested base on which to build an on-premises **Kubernetes as a Service** solution, with all the APIs needed to allow Cisco Container Platform to manage the creation and updates of your tenant Kubernetes clusters.

HyperFlex storage is also resilient across the servers in the HyperFlex pool, allowing Cisco Container Platform to use this for Kubernetes persistent volumes.

[HyperFlex](https://www.cisco.com/c/en/us/products/hyperconverged-infrastructure/index.html) is a topic all of its own; but knowing that Cisco Container Platform deploys on top of it is all you need here. Existing HyperFlex users can install Cisco Container Platform directly onto their existing installation, it just consumes the HyperFlex APIs!
[HyperFlex](https://www.cisco.com/c/en/us/products/hyperconverged-infrastructure/index.html) is a topic all of its own; but knowing that Cisco Container Platform deploys on top of it is all you need here. Existing HyperFlex users can install Cisco Container Platform directly onto their existing installation; it just consumes the HyperFlex APIs!

![](assets/images/CCP-SIMPLE-101.png)

Let's dig in!

## First - Access the Cisco Container Platform sandbox!
## First - Access the Cisco Container Platform sandbox

Firstly, we'll need a Cisco Container Platform environment, luckily we have plenty of these in the DEVNET sandbox, allowing you to reserve access to a CCP environment for up to 7 days, more than enough time to explore!
First, we'll need a Cisco Container Platform environment, luckily we have plenty of these in the DEVNET sandbox, allowing you to reserve access to a CCP environment for up to 7 days, more than enough time to explore!

### Reserve a Cisco Container Platform sandbox.
For this we will use the "Cisco Container Platform DEVNET Sandbox", this environment will provide access to a pre-installed Cisco Container Platform cluster, serving as our "On premise" setup for this Lab.
### Reserve a Cisco Container Platform sandbox
For this we will use the "Cisco Container Platform DEVNET Sandbox", this environment will provide access to a pre-installed Cisco Container Platform cluster, serving as our "on premise" setup for this Lab.

Go to [https://devnetsandbox.cisco.com](https://devnetsandbox.cisco.com/RM/Diagram/Index/6f419def-1813-481f-a6c6-a469993d4bb0?diagramType=Topology), login and reserve the "Cisco Container Platform v2.2.2" sandbox for 2 hours.
Go to [https://devnetsandbox.cisco.com](https://devnetsandbox.cisco.com/RM/Diagram/Index/6f419def-1813-481f-a6c6-a469993d4bb0?diagramType=Topology), login and reserve the "Cisco Container Platform v2.2.2" sandbox for two hours.

![](assets/images/sandbox-ccp.png)

Expand All @@ -67,39 +67,39 @@ Click `RESERVE`

Click `RESERVE` once more.

### Access Cisco Container Platform.
### Access Cisco Container Platform
The Sandbox environment will take ~8 mins to spin up, it creates a fresh installation of Cisco Container Platform for each user and will email you VPN credentials when ready. Using the VPN lets us remotely access a private on-premise lab environment.

The E-Mail also contains instructions for installing the AnyConnect VPN client if you do not already have it; however the classroom workstations already have this installed.
The email also contains instructions for installing the AnyConnect VPN client if you do not already have it. If you are at a DevNet workshop, typically the workstations already have this installed.

Use the credentials and VPN URL to access the Cisco Container Platform Sandbox.

![](assets/images/sandbox-vpn.png)

![](assets/images/sandbox-anyconnect.png)

# 1. A Kubernetes Cluster provisioned by Cisco Cloud Platform.
# 1. A Kubernetes Cluster provisioned by Cisco Cloud Platform

We said Cisco Cloud Platform provides the API's to enable on-premise Kubernetes as a Service; This is where we prove it and get you hands on!
We said Cisco Cloud Platform provides the APIs to enable on-premise Kubernetes as a Service; This is where we prove it and get you hands on!

But first, lets take our first look at Cisco container platform through the UI, in your browser, just navigate to the following link:
[https://10.10.20.110](https://10.10.20.110)

As this is a throwaway lab environment, you will need to accept the HTTPS certificate warning in your browser.
As this is a throwaway Lab environment, you will need to accept the HTTPS certificate warning in your browser.

## A. Log into Cisco Cloud Platform to view our clusters.
## A. Log into Cisco Cloud Platform to view our clusters

You will be greeted by the login screen, credentials for this lab are `admin` / `Cisco123`
You will be greeted by the login screen, credentials for this lab are `admin` / `Cisco123`.

![](assets/images/ccplogin.png)

Logging in will present you with the "Clusters" screen. Here we can see all the Kubernetes clusters that Cisco Container Platform has previously created for us.
Logging in presents you with the "Clusters" screen. Here we can see all the Kubernetes clusters that Cisco Container Platform has previously created for us.

![](assets/images/ccp-clusters.png)

## B. View your available Clusters.
## B. View your available Clusters

In a new lab environment, you will have a single cluster pre-created `Sandbox-Demo-Cluster-1`. You can click on this cluster to see details of the nodes, IP addresses and links to access the dashboard and download the `kubeconfig` file for authentication.
In a new Lab environment, you will have a single cluster pre-created `Sandbox-Demo-Cluster-1`. You can click on this cluster to see details of the nodes, IP addresses and links to access the dashboard and download the `kubeconfig` file for authentication.

![](assets/images/ccp-cluster-details.png)

Expand All @@ -115,9 +115,9 @@ As you can see, we're directly into a vanilla Kubernetes cluster, we'll see how

There are two types of access currently implemented in Cisco Container Platform, `admin` users can create and view all clusters, and `user` users that can only see the clusters they have been assigned; your sandbox has provided you an 'admin' user, so you are able to create clusters and see the existing `Sandbox-Demo-Cluster-1`.

A "DevOps" style user called `User1234` could be configured to only see a specific cluster or subset of clusters, as in the screenshots below showing an `admin` and a `user` user type viewing the same Cisco Container Platform UI;
A "DevOps" style user called `user1234` could be configured to only see a specific cluster or subset of clusters, as in the screenshots below showing an `admin` and a `user` user type viewing the same Cisco Container Platform UI;

Devops user 1234 logged in:
Devops user1234 logged in:
![](assets/images/1234user-cpp-clusters-view.png)

Admin user logged in will see all clusters:
Expand All @@ -127,7 +127,7 @@ Admin user logged in will see all clusters:

Cisco Container Platform and HyperFlex currently uses VMWare VCenter for its virtual machine management, you can log into the VCenter for this environment to see the Cisco Container Platform virtual machines and observe provisioning actions as we follow this lab.

Open [THIS LINK (https://10.10.20.12/ui/)](https://10.10.20.12/ui/) in a new tab to see the vSphere UI, and log on with the following details:
Open [THIS LINK (https://10.10.20.12/ui/)](https://10.10.20.12/ui/) in a new browser to see the vSphere UI, and log on with the following details:

- Username: administrator@vsphere.local
- Password: Cisco123!
Expand All @@ -140,5 +140,5 @@ At the bottom of the page, you will also be able to see recent events which Cisc

![](assets/images/1234user-vsphere-events.png)

# Next Steps!
# Next Steps
Next, let's have a quick look over some of the other features and configuration options of Cisco Container Platform. Click the right arrow to continue.
31 changes: 16 additions & 15 deletions labs/CiscoContainerPlatform-101/2.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@ Notice in the Cluster details page, a VIP has already been assigned to the Maste

![](assets/images/cpp-vippools.png)

# 3. Cisco Container Platform APIs
Each Cisco Container platform installation comes with integrated Open API documentation, powered by Swagger.
You can access this [HERE (https://10.10.20.110/2/swaggerapi/)](https://10.10.20.110/2/swaggerapi/), where you will see all the currently supported platform APIs.
## Cisco Container Platform APIs
Each Cisco Container platform installation comes with integrated Open API documentation, powered by OpenAPI (Swagger tooling).
You can access this [HERE (https://10.10.20.110/2/swaggerapi/)](https://10.10.20.110/2/swaggerapi/), where you see all the currently supported platform APIs.

Click on `List Operations` to see titles, then `Expand Operations` to expand the subsections ready to use the API's in the next section; in this Lab, we're going to use the `/2/system` and `/2/clusters` sections, so expand those;
Click on `List Operations` to see titles, then `Expand Operations` to expand the subsections ready to use the APIs in the next section; in this Lab, we're going to use the `/2/system` and `/2/clusters` sections, so expand those:

![](assets/images/expand_swagger_1.png)

## Authenticate to the API
The Swagger UI will remember our authentication token once we use the `/2/system/login` API call, so that all other API's on the page will work.
The Swagger UI will remember our authentication token once we use the `/2/system/login` API call, so that all other APIs on the page will work.

Use your Cisco Container Platform credentials `User: admin`, `Password: Cisco123`, expand the `/2/system/login` box and enter the username and password, then click `Try it Out!`.

You should see a response code of 200, if not, check your credentials and try again.
You should see a response code of 200, if not, check your credentials and the error and try again.

![](assets/images/swagger_cluster_login.png)

## Query your clusters
We can use the API to query Cisco Container Platform for available clusters. Remember that only Clusters you have permission to see will be returned.

Expand the blue "GET" API labelled `/2/clusters` and hit `Try it out!`. Because we are querying for all clusters this API call needs no parameters.
Expand the blue "GET" API labelled `/2/clusters` and click `Try it out!`. Because we are querying for all clusters this API call needs no parameters.

![](assets/images/swagger_list_all_clusters.png)

Expand All @@ -40,21 +40,21 @@ We also are given the Cluster's UUID, this can be used for performing API action
## Create a new Kubernetes Cluster with CCP
Okay, let's create two Kubernetes Clusters.

Firstly, from the UI, on the clusters tab, click "New Cluster".
First, from the UI, on the clusters tab, click "New Cluster".

![](assets/images/newclusterbutton.png)

You will be prompted to answer questions about your new cluster, from number of worker nodes, to where in the HyperFlex VM infrastructure it should be placed.

For our sandbox, there are only one set of options for most, selection boxes. Fill in as follows...
For our sandbox, there are only one set of options for most, selection boxes. Fill in as follows:

![](assets/images/new-cluster-ui-1.png)

Click `NEXT`, Fill out page 2 as follows:
Click `NEXT`, and fill out page 2 as follows:

![](assets/images/new-cluster-ui-2.png)

Click `NEXT`
Click `NEXT`.

New cluster page 3, Ensure on the 'Node Configuration' screen you have set `Worker Nodes` to `1`. The sandbox environment has limited resources to enable quality of service for other sandbox users and we want the cluster creation to succeed!

Expand All @@ -68,10 +68,11 @@ For SSH Public Key, you can use your own SSH pubic key or paste in the key below
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAHlSb9ZkXQL5/GI12258c+AIKVhDN1p1VYjvJR5oliqoR/gN/65D04BfsZWE8nk00AtJzvEVbjenwLeWuvIQsFs5AHa5uM4Fpmw3Ylpt1tB/GZHZ5Mg9sh1iLh5agSgNLWkAgCRvySmLO3fSq0IKarnQrMqId2pGUlNZr/YPP4irTvU6w== sandbox@CCP_SANDBOX_NISTP521_KEY
```

Select the `default_network_subnet` subnet in the dropdown. Page three should look like the below image.
In `Number of IP's` field. Choose 4
Select the `default_network_subnet` subnet in the dropdown.

Click `NEXT` through page 4, we wont enable a private docker registry, Istio or AWS integration for this test cluster!
In `Number of IP's` field. Choose 4.

Click `NEXT` through page 4, we won't enable a private Docker registry, Istio or AWS integration for this test cluster.

Next, Click `FINISH` on the summary page!

Expand All @@ -94,7 +95,7 @@ Until the cluster is provisioned and healthy, shortcuts to access the cluster da
Once both master and worker read `PROVISIONED`, we can download the token via the buttons in the screenshot above and also open the Kubernetes Dashboard.

## Access Your Kubernetes Cluster, by UI
Just like our previous cluster we accessed, If you click on your cluster within the Cisco Cloud Platform UI, you will see a number of buttons at the right hand side. Click on `DOWNLOAD KUBECONFIG`, this will provide you a "Kubernetes Environment" file, which provides authentication to access your Kubernetes Cluster.
Just like our previous cluster we accessed, If you click on your cluster within the Cisco Cloud Platform UI, you will see a number of buttons at the right hand side. Click `DOWNLOAD KUBECONFIG`, this provides you a "Kubernetes Environment" file, which provides authentication to access your Kubernetes Cluster.

![](assets/images/1234user-cluster-build-success.png)

Expand Down
Loading

0 comments on commit fb86df5

Please sign in to comment.