Skip to content

Commit

Permalink
initial re-import after Tommy's done
Browse files Browse the repository at this point in the history
  • Loading branch information
newgoliath committed Dec 20, 2024
1 parent 54cb06b commit 3faad99
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 47 deletions.
10 changes: 10 additions & 0 deletions content/modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,13 @@ Customers choose this approach because it is the fastest and simplest way to mig
The vision behind *“UpLift and Shift”* is to provide a compelling alternative: Migrate the VMs to OpenShift and once they are running on Kubernetes, allow them to inherit certain features from the platform without making any changes to the VM itself.

This approach allows the customer to maintain the speed and simplicity of Lift and Shift while “uplifting” the feature functionality of the application with modern capabilities that are traditionally reserved for modern containerized applications.

. Viewing the OpenShift Virtualization Operator

This is the operator that creates the “Virtualization” tab in the OpenShift console.
It can be installed simply through the Operator Hub.

. Viewing the Migration Toolkit for Virtualization

This is the operator that creates the “Migration” tab in the OpenShift console.
This is where you connect to the VMware cluster you want to migrate VMs from (providers) and create the migration jobs (plans).
12 changes: 6 additions & 6 deletions content/modules/ROOT/pages/module-01.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
== Migrate VM from VMware to ROSA
== Module 1: Resource Utilization Dashboards

. Viewing the OpenShift Virtualization Operator
It may seem trivial, but capturing utilization metrics from all VMs isn’t simple, particularly in the cloud.
OpenShift makes this easy by automatically generating these dashboards for every VM you run on OpenShift.
The resource metrics are stored in a time series database allowing the user to view utilization at various points in time and is exportable if the Customer wishes to view the metrics in their own dashboards.

This is the operator that creates the “Virtualization” tab in the OpenShift console. It can be installed simply through the Operator Hub.
. Go to your "windowsnetworking" namespace, on the left hand side click the "Virtualization" tab.

. Viewing the Migration Toolkit for Virtualization

This is the operator that creates the “Migration” tab in the OpenShift console. This is where you connect to the VMware cluster you want to migrate VMs from (providers) and create the migration jobs (plans).
. Click "VirtualMachines" and click on the winnetworking1 VM. Show the “Overview” tab and then the "Metrics" tab
18 changes: 12 additions & 6 deletions content/modules/ROOT/pages/module-02.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
== Show Resource Utilization Dashboards
== Module 2: Declarative IaC for Automating VM Resources

It may seem trivial, but capturing utilization metrics from all VMs isn’t simple, particularly in the cloud.
OpenShift makes this easy by automatically generating these dashboards for every VM you run on OpenShift.
The resource metrics are stored in a time series database allowing the user to view utilization at various points in time and is exportable if the Customer wishes to view the metrics in their own dashboards.
Automating the creation of new VM instances or managing the configuration of existing VMs requires an understanding of complex IaC languages.
One of the advantages of k8s is that its configuration is managed with declarative YAML templates and VMs running on OpenShift are the same.

. Go to your “windowsnetworking” namespace, on the left hand side click the “Virtualization” tab
. Go to your “windowsnetworking” namespace, on the left hand side click the “Virtualization” tab.

. Click “VirtualMachines” and click on the winnetworking1 VM. Show the “Overview” tab and then the “Metrics” tab
. Click “VirtualMachines” and click on the winnetworking1 VM.
Notice the CPU | Memory section on the “Overview” tab.

. Click the “YAML” tab and scroll down until you see “cpu”.

. Modify “cores” to increase the core count from 4 to 8.

. Restart the VM if necessary to apply the CPU changes.
23 changes: 9 additions & 14 deletions content/modules/ROOT/pages/module-03.adoc
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
== Live Migrate VM Between Hosts
== Module 3: Declarative IaC for Automating VM Creation

=== Uplift Topic 2: Declarative IaC for Automating VM Resources

Automating the creation of new VM instances or managing the configuration of existing VMs requires an understanding of complex IaC languages.
One of the advantages of k8s is that its configuration is managed with declarative YAML templates and VMs running on OpenShift are the same.
Now let’s show how we can use the YAML tab to automate the creation of a new VM.

. Go to your “windowsnetworking” namespace, on the left hand side click the “Virtualization” tab
. Click “VirtualMachines” and click on the winnetworking1 VM.
Notice the CPU | Memory section on the “Overview” tab.
Click the “YAML” tab and scroll down until you see “cpu”.
Modify “cores” to increase the core count from 4 to 8.
Restart the VM if necessary to apply the CPU changes.

=== Do a VM Migration

if RH1, don't do it. :D
. Click “VirtualMachines” and click on the winnetworking1 VM.
Copy all the YAML in the YAML tab.
. Click “VirtualMachines” then “Create” in the top right corner. Select “With YAML”
. Delete the pre-created YAML and paste the YAML template copied from winnetworking1.
. Search for “macAddress” and change the MAC address
. Search for “name: winnetworking1” (around line 41) and change it to winnetworking3
. Click “Create” and notice the new VM is created
22 changes: 4 additions & 18 deletions content/modules/ROOT/pages/module-04.adoc
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
== Load Balancing
== Module 4: Simplified configuration for load balancing

=== Uplift Topic 3: Simplified configuration for load balancing

Load balancing VMs typically requires multiple different tools and configurations to work properly.
Load balancing VMs typically requires multiple different tools and configurations to work properly.
For example, to load balance two VMs internally and externally you might:

. Create a private internal load balancer
. Create an internet facing endpoint and route it to the internal load balancer
. Create private DNS records for the internal load balancer
Expand All @@ -16,26 +13,15 @@ For example, to load balance two VMs internally and externally you might:

Networking and load balancing within OpenShift has been trivialized - let’s walk through the steps to setup internal and external load balancing within OpenShift.

=== Setting Up Load Balancing

. Go to your “windowsnetworking” namespace, on the left hand side click the “Virtualization” tab
. Click “VirtualMachines” and click on the winnetworking1 VM. Click the “YAML” tab and search for “app: winnetworking”. This is an arbitrary label assigned to both VMs.
. On the left side of the console, click to expand “Networking”. Click “Services”.
. In the top right corner, click “Create Service”. On line 4, change the name to “windowsnetworking”.
. Modify line 8 to read “app: winnetworking”
. Change the “targetPort:” value on line 12 to 80 then click “Create” in the bottom left corner
. Click the “Pods” tab and notice that the two winnetworking VMs have already registered with the service object.
This will allow applications within the OpenShift cluster to access these VMs through the windowsnetworking “load balancer”.
. Click the “Pods” tab and notice that the two winnetworking VMs have already registered with the service object. This will allow applications within the OpenShift cluster to access these VMs through the windowsnetworking “load balancer”.
. On the left side, under “Services”, click “Routes” then click “Create Route”.
. In the “Name” field put windowsnetworking
. Click the drop down box below “Service” and select the windowsnetworking service you just created.
. Click the drop down box below “Target port” and select port 80 then click “Create” in the bottom left corner.
. In the middle right, see the “Location” section.
. Click the link to view your load balanced virtual machines.

NOTE: if this step fails, check to see if your browser redirected the http connection to https

=== Add VMs to service object


=== Create route
. In the middle right, see the “Location” section. Click the link to view your load balanced virtual machines. Note: if this step fails, check to see if your browser redirected the http connection to https
23 changes: 22 additions & 1 deletion content/modules/ROOT/pages/module-05.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,22 @@
== Egress Network Policy
== Module 5: Network Egress Firewall

Security is important to every customer.
The least privilege principle is a common security practice that limits an application's access to only those resources it needs to operate.
For example, if we know an application does not need access to the internet, we should create a policy to block that application’s access to the internet.

In the real world, customers will solve this challenge with outbound proxies/VLANs/firewalls, but those solutions can be expensive and complex to implement.
Now we will show OpenShift Virtualization allows us to add an additional layer of security with just a few button clicks.

. Click “VirtualMachines”, click “winnetworking1” then click the “Console” tab.
Login to the Windows VM
. Click the start menu, then type “powershell”.
Run “curl google.com” and notice that the connection succeeds
. On the left side, click “Networking”.
Click “NetworkPolicies”.
Click “Create NetworkPolicy”.
. Name the policy “no-egress” then click “Add pod selector”.
The label is App and the Selector is winnetworking
. Click the link that says “affected pods” to see the pods that will be affected by this networking policy.
Click “Deny all egress traffic” and click “Create”.
. Go back to the powershell window and run “curl google.com” again.
Notice that the network connection hangs indicating internet access is blocked.
26 changes: 25 additions & 1 deletion content/modules/ROOT/pages/module-06.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,25 @@
== Advanced Network Telemetry for VMs
== Module 6: Istio Traffic Management

In the world of containers, service mesh (or Isitio more specifically) is considered one of the most desirable and transformational k8s features.
Whenever we talk about service mesh, it’s in the context of words like “modernized”, “12 factor”, “SOA” and containerized apps - never with legacy VMs.

“Uplift and Shift” is about giving additional feature functionality without requiring rewriting or replatforming your applications.

Imagine the situation where a web application is running in Windows IIS and customers are reporting intermittent errors/latency.
What tooling exists for those legacy VMs to troubleshoot?
In this final section, we’ll show how we can use the advanced network telemetry from Istio and Kiali to easily troubleshoot these issues with our legacy windows VMs.

. Switch to the “istio-system” project, click “Networking” on the left and click “Routes”. Find the route for Kiali, browse and login to Kiali.
. Within Kiali, click “Services” on the left. Notice that we have a service called winmesh. Click the winmesh service - notice that there are two VMs, windowsmesh1 and windowsmesh2.
. In the top right corner, click “Actions” and “Request Routing”
. Click “Route To” and notice the two VMs are listed. Click “Add Route Rule” to do 50/50 load balancing.
. Click “Show Advanced Options” at the bottom. Input “*” for VirtualService Hosts.
. Click “Gateways” and click “Add Gateway”. Click “Create Gateway” then click “Preview”.
. Click “Create” or “Update”
. Now that the request routing is created, click “Graph” on the left side.
. Click “Display” and select “Response Time” to see request latency.
. Click “Throughput” to see data transfer rate
. Click “Traffic Distribution” to view load balancing percentage
. Click “Traffic Rate” to see how many requests per second are being sent
. Notice the panel on the right side that shows request response code (200, 300, 400, 500s)
1 change: 0 additions & 1 deletion content/modules/ROOT/pages/module-07.adoc

This file was deleted.

0 comments on commit 3faad99

Please sign in to comment.