Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DanielCayer request to merge dev to main #142

Merged
merged 6 commits into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/_static/intro/UDFDocumentationTab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/UDFJoinClass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/account-activated.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/activate-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/create-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/email-invite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/launch-course.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/mfa-setup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/udf-login.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/intro/udf-start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/appendix/appendix7/module2/lab1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ URL: https://10.1.1.245

.. code-block:: bash

# From the CLI:
# Via the CLI:
tmsh create auth partition mesos

# From the UI:
GoTo System --> Users --> Partition List
Browse to System --> Users --> Partition List
- Create a new partition called "mesos" (use default settings)
- Click Finished

Expand Down
4 changes: 2 additions & 2 deletions docs/class1/class1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ We will leverage the following setup to configure the Kubernetes environment.
* - **Hostname**
- **IP-ADDR**
- **Credentials**
* - jumpbox
* - superjump
- 10.1.1.5
- ubuntu/ubuntu
- ubuntu/HelloUDF
* - bigip1
- 10.1.1.4
- admin/admin
Expand Down
Binary file added docs/class1/images/TMUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/TMUILicense.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/TMUILogin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/UDFJoinClass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/WEBSHELL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/WEBSHELLroot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/account-activated.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/activate-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/create-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/email-invite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/class1/images/f5-container-connector-access-app.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/ffhelloworld.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/gitrepo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/launch-course.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/class1/images/mfa-setup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/class1/images/start-term.png
Binary file added docs/class1/images/udf-login.png
Binary file added docs/class1/images/udffirefox.png
72 changes: 43 additions & 29 deletions docs/class1/module1/lab1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@ In this lab we'll use NodePort mode to deploy an application to the BIG-IP.
BIG-IP Setup
------------

Via RDP connect to the UDF lab "jumpbox" host.
#. Browse to the **Deployment** tab of your UDF lab session at https://udf.f5.com
and connect to **BIG-IP1** using the **TMUI** access method.

.. note:: Username and password are: **ubuntu/ubuntu**
.. image:: ../images/TMUI.png

#. Open firefox and connect to bigip1 management console. For your convenience
there's a shortcut on the firefox toolbar.
#. Login with username: **admin** and password: **admin**.

.. note:: Username and password are: **admin/admin**
.. image:: ../images/TMUILogin.png

.. image:: ../images/TMUILicense.png

.. attention::

Expand All @@ -38,19 +40,27 @@ Via RDP connect to the UDF lab "jumpbox" host.

.. image:: ../images/f5-check-partition.png

#. First we need to setup a partition that will be used by F5 Container Ingress
Service.
#. Create a **partition**, which is requiredfor F5 Container Ingress Service.

- Browse to: :menuselection:`System --> Users --> Partition List`

.. attention::

- Be sure to be in the ``Common`` partition before creating the following
objects.

- GoTo: :menuselection:`System --> Users --> Partition List`
- Create a new partition called "kubernetes" (use default settings)
.. image:: ../images/f5-check-partition.png

- Create a new partition called "**kubernetes**" (use default settings)
- Click Finished

.. image:: ../images/f5-container-connector-bigip-partition-setup.png

# Via the CLI:

.. code-block:: bash

# From the CLI:
ssh admin@10.1.1.4 tmsh create auth partition kubernetes
tmsh create auth partition kubernetes

#. Verify AS3 is installed.

Expand All @@ -60,16 +70,16 @@ Via RDP connect to the UDF lab "jumpbox" host.
.. seealso:: For more info click here:
`Application Services 3 Extension Documentation <https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/>`_

- GoTo: :menuselection:`iApps --> Package Management LX` and confirm
"f5-appsvcs" is in the list as shown below.
- Browse to: :menuselection:`iApps --> Package Management LX` and confirm
"*f5-appsvcs*" is in the list as shown below.

.. image:: ../images/confirm-as3-installed.png

#. If AS3 is NOT installed follow these steps:
#. If *AS3* **is NOT** installed follow these steps:

- Click here to: `Download latest AS3 <https://github.com/F5Networks/f5-appsvcs-extension/releases>`_

- Go back to: :menuselection:`iApps --> Package Management LX`
- Browse back to: :menuselection:`iApps --> Package Management LX`

- Click Import
- Browse and select downloaded AS3 RPM
Expand All @@ -78,22 +88,25 @@ Via RDP connect to the UDF lab "jumpbox" host.
Explore the Kubernetes Cluster
------------------------------

#. On the jumphost open a terminal and start an SSH session with kube-master1.
#. Go back to the **Deployment** tab of your UDF lab session at https://udf.f5.com
and connect to **kube-master1** using the **Web Shell** access method.

.. image:: ../images/start-term.png
.. image:: ../images/WEBSHELL.png

.. code-block:: bash
#. The CLI will appear in a new window or tab.
Switch to the **ubuntu** user account using the following "**su**" command.

# If directed to, accept the authenticity of the host by typing "yes" and hitting Enter to continue.
.. image:: ../images/WEBSHELLroot.png

.. code-block:: bash

ssh kube-master1
su ubuntu

.. image:: ../images/sshtokubemaster1.png
#. "**git**" the lab files and set the working directy with the "**cd**" command.

#. "git" the demo files
.. note:: These files should already be there and automatically updated upon login of the ubuntu user account.

.. note:: These files should already be there and upon login updated. If not
use the following command to clone the repo.
.. image:: ../images/gitrepo.png

.. code-block:: bash

Expand All @@ -109,12 +122,12 @@ Explore the Kubernetes Cluster

To list all nodes that are known to the master:

.. image:: ../images/kube-get-nodes.png

.. code-block:: bash

kubectl get nodes

.. image:: ../images/kube-get-nodes.png

.. attention::
If the node STATUS shows **NotReady** or **SchedulingDisabled** contact
the lab proctor. The node is not passing the health checks performed from
Expand Down Expand Up @@ -235,9 +248,10 @@ check the logs, kubectl command or docker command.
#. Using ``kubectl`` command: you need to use the full name of your pod as
shown in the previous image.

# For example:

.. code-block:: bash

# For example:
kubectl logs k8s-bigip-ctlr-7469c978f9-6hvbv -n kube-system

.. image:: ../images/f5-container-connector-check-logs-kubectl.png
Expand All @@ -248,9 +262,9 @@ check the logs, kubectl command or docker command.

.. important:: Be sure to check which Node your "connector" is running on.

.. code-block:: bash
# If directed to, accept the authenticity of the host by typing "yes" and hitting Enter to continue.

# If directed to, accept the authenticity of the host by typing "yes" and hitting Enter to continue.
.. code-block:: bash

ssh kube-node2

Expand Down
71 changes: 51 additions & 20 deletions docs/class1/module1/lab2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ To deploy our application, we will need the following definitions:
in a container.

- Define the **Service** resource: this is an abstraction which defines a
logical set of pods and a policy by which to access them. Expose the service
logical set of pods and a policy by which to access them, and exposes the service
on a port on each node of the cluster (the same port on each node). You’ll
be able to contact the service on any <NodeIP>:NodePort address. When you set
the type field to "NodePort", the master will allocate a port from a
Expand All @@ -29,9 +29,23 @@ To deploy our application, we will need the following definitions:
App Deployment
--------------

Back to the terminal and SSH session on **kube-master1** we will create all the
We will use the command line on **kube-master1** to create all the
required files and launch them.

#. Go back to the Web Shell session you opened in the previous task. If you need to open a new
session go back to the **Deployment** tab of your UDF lab session at https://udf.f5.com
to connect to **kube-master1** using the **Web Shell** access method, then switch to the **ubuntu**
user account using the "**su**" command:

.. image:: ../images/WEBSHELL.png

.. image:: ../images/WEBSHELLroot.png

.. code-block:: bash

su ubuntu


#. Create a file called ``deployment-hello-world.yaml``

.. tip:: Use the file in ~/agilitydocs/docs/class1/kubernetes
Expand Down Expand Up @@ -94,58 +108,75 @@ required files and launch them.
from the outside. In this example it's "32722", highlighted above.

#. Now that we have deployed our application sucessfully, we can check the
configuration on bigip1. Switch back to the open management session on
firefox.
configuration on BIG-IP1.
Go back to the TMUI session you opened in a previous task. If you need to open a new
session go back to the **Deployment** tab of your UDF lab session at https://udf.f5.com
and connect to **BIG-IP1** using the **TMUI** access method (*username*: **admin** and *password*: **admin**)

.. image:: ../images/TMUI.png

.. image:: ../images/TMUILogin.png

#. Browse to: :menuselection:`Local Traffic --> Virtual Servers` and select the **kubernetes** partition.

.. warning:: Don't forget to select the "kubernetes" partition or you'll
see nothing.

GoTo: :menuselection:`Local Traffic --> Virtual Servers`

Here you can see a new Virtual Server, "ingress_10.1.1.4_80" was created,
listening on 10.1.1.4:80 in partition "kubernetes".

.. image:: ../images/f5-container-connector-check-app-ingress.png

#. Check the Pools to see a new pool and the associated pool members.

GoTo: :menuselection:`Local Traffic --> Pools` and select the
Browse to: :menuselection:`Local Traffic --> Pools` and select the
"ingress_default_f5-hello-world-web" pool. Click the Members tab.

.. image:: ../images/f5-container-connector-check-app-ingress-pool.png

.. note:: You can see that the pool members listed are all the cluster
node IPs on port 32722. (**NodePort mode**)

#. Access your web application via firefox on the jumpbox.
#. Now let's test access to the new web application "*through*"" **Firefox** on **superjump**.
To do this, browse back to the **Deployment** tab of your UDF lab session at
https://udf.f5.com and connect to **superjump** using the **Firefox** access method.

.. note:: The web application is not directly accessible from the public Internet.
But since the **superjump** system is connected to the same internal virtual lab network
we can use the **Firefox** access method because it provides *browser-in-a-browser*
functionality that allows remote browsing to this new private web site.

.. image:: ../images/udffirefox.png

#. The *Firefox* application installed on the superjump system's will appear in your browser (i.e., a *browser-in-a-browser*).
Find and click on the "**Hello, World**" bookmark/shortcut, or type http://10.1.1.4 in the appropriate URL field.

.. note:: Open a new tab and select the "Hello, World" shortcut or type
http://10.1.1.4 in the URL field.
.. image:: ../images/ffhelloworld.png

.. image:: ../images/f5-container-connector-access-app.png

#. To check traffic distribution, hit Refresh many times on your open browser
session. Then go back to the management console open on firefox.
#. To check traffic distribution, hit *Refresh* many times on your open browser
session. Then go back to the BIG-IP TMUI management console.

GoTo: :menuselection:`Local Traffic --> Pools --> Pool list -->
Browse to: :menuselection:`Local Traffic --> Pools --> Pool list -->
ingress_default_f5-hello-world-web --> Statistics`

.. image:: ../images/f5-container-connector-check-app-ingress-stats.png

.. note:: Are you seeing traffic distribution as shown in the image above?
If not why? (HINT: Check the virtual server settings.)
If not why? (**HINT**: *Check the virtual server settings... Resources tab...*)

#. Delete Hello-World

.. important:: Do not skip this step. Instead of reusing some of these
objects, the next lab we will re-deploy them to avoid conflicts and
errors.
#. Delete Hello-World with the following commands in the **kube-master1** Web Shell window:

.. code-block:: bash

kubectl delete -f ingress-hello-world.yaml
kubectl delete -f nodeport-service-hello-world.yaml
kubectl delete -f deployment-hello-world.yaml

.. attention:: Validate the objects are removed via the management console.
.. important:: **Do not skip this step. Instead of reusing some of these
objects, the next lab we will re-deploy them to avoid conflicts and
errors.**

#. Validate the objects are removed via the BIG-IP TMUI management console:
:menuselection:`Local Traffic --> Virtual Servers`
Loading
Loading