diff --git a/ci/check-links.py b/ci/check-links.py index 264670471c1..617c685b874 100644 --- a/ci/check-links.py +++ b/ci/check-links.py @@ -84,7 +84,6 @@ def add_issue(self, issue): DOCS_DIR = [ "docs/guides", - "docs/products", "docs/bundles", "docs/assets", "docs/api", @@ -156,7 +155,6 @@ def get_guides(): # Add top level guides guides.append(Guide("docs/","docs/_index.md", "Docs Home", "/docs/")) - guides.append(Guide("docs/products/","docs/products/_index.md", "Product Docs", "/docs/products/")) guides.append(Guide("docs/marketplace/", "", "Marketplace", "/docs/marketplace/")) guides.append(Guide("docs/marketplace-docs/", "", "Marketplace Docs", "/docs/marketplace-docs/")) guides.append(Guide("docs/resources/", "", "Resources", "/docs/resources/")) diff --git a/docs/products/_index.md b/docs/products/_index.md deleted file mode 100644 index b651ec6ae3b..00000000000 --- a/docs/products/_index.md +++ /dev/null @@ -1,19 +0,0 @@ -+++ -title = "All Products" -linkTitle = "Products" -title_meta = "Linode Product Documentation" -description = "Get started using Cloud Manager, CLI, and API to deploy Linode services and manage your account." - -[[cascade]] -weightAge = 0 -weightSearchBoost = true - -[[cascade]] -layout = "tabbed-section-layout" -[cascade._target] -# The section rendering for individual product pages uses the tabbed layout -kind = "section" -path = "/products/*/**" -+++ - - \ No newline at end of file diff --git a/docs/products/_shortguides/new-data-center-notice/index.md b/docs/products/_shortguides/new-data-center-notice/index.md deleted file mode 100644 index c1cfc50cdf0..00000000000 --- a/docs/products/_shortguides/new-data-center-notice/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: Note for the new data center launch. - -headless: true -show_on_rss_feed: false ---- - -{{< note >}} -On July 5th 2023, Akamai released three additional data centers: Chicago (USA), Paris (France), and Washington, DC (USA). Customers can leverage these data centers to deploy the full suite of Akamai's cloud computing services. In addition, Premium plans and higher capacity Object Storage clusters are currently only available in these new data centers. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/_shortguides/password-requirements-shortguide/index.md b/docs/products/_shortguides/password-requirements-shortguide/index.md deleted file mode 100644 index 266b6ce563e..00000000000 --- a/docs/products/_shortguides/password-requirements-shortguide/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Shortguide: Password requirements and recommendations - -headless: true -show_on_rss_feed: false ---- - -{{< note type="warning" title="Password requirements and recommendations" isCollapsible=true >}} -Account passwords must be a minimum of 11 characters in length and be sufficiently complex. Each password is individually analyzed by an algorithmic tool to determine it's strength. When creating a password, follow the recommendations listed below: - -- Password should be _at least_ 11 characters in length (though longer passwords are considered stronger). -- Avoid using simple passwords based on dictionary words. -- Use a mixture of unpredictable uppercase letters, lowercase letters, numbers, and symbols. -- Avoid repeating characters (`aaa`), sequences (`abcd`), and keyboard patterns (`qwerty`). -{{< /note >}} \ No newline at end of file diff --git a/docs/products/compute/_index.md b/docs/products/compute/_index.md deleted file mode 100644 index 5ebad537f6a..00000000000 --- a/docs/products/compute/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Compute -title_meta: Compute Products and Services -description: "Linode compute instances allow you to build, release, and scale faster with virtual machines and tools for every workload." ---- diff --git a/docs/products/compute/_shortguides/gpu-deposit-shortguide/index.md b/docs/products/compute/_shortguides/gpu-deposit-shortguide/index.md deleted file mode 100644 index f6c8b9b94cb..00000000000 --- a/docs/products/compute/_shortguides/gpu-deposit-shortguide/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: Notice regarding deposits for GPU instances - -headless: true -show_on_rss_feed: false ---- - -{{< note >}} -In some cases, a $100 deposit may be required to deploy GPU Compute Instances. This may include new accounts that have been active for less than 90 days and accounts that have spent less than $100 on Linode services. If you are unable to deploy GPU instances, contact [Support](https://www.linode.com/support/) for assistance. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/compute/_shortguides/instance-comparison-shortguide/index.md b/docs/products/compute/_shortguides/instance-comparison-shortguide/index.md deleted file mode 100644 index be5e2785b4d..00000000000 --- a/docs/products/compute/_shortguides/instance-comparison-shortguide/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Shortguide: Table comparing Compute Instance types, featured on overview pages within product documentation - -headless: true -show_on_rss_feed: false ---- - -|
Instance Type
| CPU | Overview | -| -- | -- | -- | -| [**Shared CPU**](/docs/products/compute/compute-instances/plans/shared-cpu/) | Shared | **1 GB - 192 GB Memory, 1 - 32 vCPUs, 25 GB - 3840 GB Storage**
[Starting at $5/mo ($0.0075/hour)](https://www.linode.com/pricing/#compute-shared)

Offers a balanced array of resources coupled with shared CPUs, which keeps costs down while still supporting a wide variety of cloud applications.

*Best for development servers, staging servers, and low traffic web applications.* | -| [**Dedicated CPU**](/docs/products/compute/compute-instances/plans/dedicated-cpu/) | Dedicated | **4 GB - 512 GB\* Memory, 2 - 64 vCPUs, 80 GB - 7200 GB Storage**
[Starting at $36/mo ($0.05/hour)](https://www.linode.com/pricing/#compute-dedicated)

Equipped with Dedicated CPUs, which provide competition-free guaranteed CPU resources. Perfectly balanced for most production applications.

*Best for production websites, high traffic databases, and any application that requires 100% sustained CPU usage.* | -| [**Premium**](/docs/products/compute/compute-instances/plans/premium/) | Dedicated | **4 GB - 512 GB\* Memory, 2 - 64 vCPUs, 80 GB - 7200 GB Storage**
[Starting at $43/mo ($0.06/hour)](https://www.linode.com/pricing/#compute-premium)

Provides the best available AMD EPYC™ CPUs on dedicated resources. Consistent performance for CPU-intensive workloads.

*Best for enterprise-grade, business-critical, and latency-sensitive applications.* | -| [**High Memory**](/docs/products/compute/compute-instances/plans/high-memory/) | Dedicated | **24 GB - 300 GB Memory, 2 - 16 vCPUs, 20 GB - 340 GB Storage**
[Starting at $60/mo ($0.09/hour)](https://www.linode.com/pricing/#compute-high-memory)

Optimized for memory-intensive applications and equipped with Dedicated CPUs, which provide competition free guaranteed CPU resources.

*Best for in-memory databases, in-memory caching systems, big data processing, and any production application that requires a large amount of memory while keeping costs down.* | -| [**GPU - NVIDIA RTX 4000 Ada (Beta)**](/docs/products/compute/compute-instances/plans/gpu/) | Dedicated | **1 - 8 cards, 20 - 160 GB Video Memory, 64 GB - 512 GB Memory, 20 - 60 vCPUs, 1.5 TB - 25 TB Storage**
Starting at $600/mo ($0.83/hour)

The only Compute Instance type that's equipped with NVIDIA RTX 4000 Ada GPUs (up to 8) for on demand execution of complex processing workloads.

*Best for applications that require massive amounts of parallel processing power including machine learning, AI inferencing, graphics processing, and big data analysis.* | -| [**GPU - NVIDIA Quadro RTX 6000**](/docs/products/compute/compute-instances/plans/gpu/)
(limited deployment availability) | Dedicated | **1 - 4 cards, 24 - 96 GB Video Memory, 32 GB - 128 GB Memory, 8 - 24 vCPUs, 640 GB - 2560 GB Storage**
[Starting at $1000/mo ($1.50/hour)](https://www.linode.com/pricing/#compute-gpu)

The only Compute Instance type that's equipped with NVIDIA Quadro RTX 6000 GPUs (up to 4) for on demand execution of complex processing workloads.

*Best for applications that require massive amounts of parallel processing power, including machine learning, AI, graphics processing, and big data analysis.* | - -\*512 GB Dedicated CPU and Premium plans are in limited availability. - -See [Choosing a Compute Instance Type and Plan](/docs/products/compute/compute-instances/plans/choosing-a-plan/) to compare plans. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/_index.md b/docs/products/compute/compute-instances/_index.md deleted file mode 100644 index c5b80b54308..00000000000 --- a/docs/products/compute/compute-instances/_index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Compute Instances -title_meta: "Compute Instance Product Documentation" -description: "Host your workloads on Linode's secure and reliable cloud infrastructure using Compute Instances, versatile Linux-based virtual machines." -published: 2023-01-18 -modified: 2024-05-21 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "Linux virtual machines equipped with a tailored set of resources designed to run any cloud-based workload." ---- - -Compute Instances are virtual machines that run on Linode's secure and reliable cloud infrastructure. To support a variety of workloads, Compute Instance plans are organized under several basic plan types, each with their own set of resources, unique value propositions, and technical specifications (see [Plan Types](/docs/products/compute/compute-instances/plans/)). Each Compute Instance can run a variety of [supported Linux distributions](/docs/products/compute/compute-instances/guides/distributions/), including the latest versions of Ubuntu, CentOS Stream, Debian, and more. - -## Availability - -Compute Instances are available across [all regions](https://www.linode.com/global-infrastructure/). - -## Plans and Pricing - -Below is a table with specifications and prices for each type of Compute plan. Note that pricing and plan availability may vary between regions. See our [Pricing](https://www.linode.com/pricing/) page for a full list of pricing options. - -{{% content "instance-comparison-shortguide" %}} - -## Technical Specifications - -In addition to the resources allocated to each available plan (outlined above), Compute Instances have the following specifications: - -- Shared or Dedicated vCPU cores (dependent on the chosen plan) -- 100% SSD (Solid State Disk) storage -- 40 Gbps inbound network bandwidth -- Free inbound network transfer (ingress) -- Metered outbound network transfer (egress) that includes 1 TB - 20 TB of prorated* network transfer allowance -- Dedicated IPv4 and IPv6 addresses (additional addresses available on request) -- Deploy using the many available [Linux Distributions](https://www.linode.com/distributions/), [Marketplace Apps](https://www.linode.com/marketplace/), or Community [StackScripts](https://www.linode.com/products/stackscripts/) -- Direct console access through [Lish](/docs/products/compute/compute-instances/guides/lish/) -- Provisioning and management through [Cloud Manager](https://cloud.linode.com/), [Linode CLI](https://www.linode.com/products/cli/), or programmatically through the [Linode API](https://www.linode.com/products/linode-api/) -- [Multi-queue NIC](/docs/products/compute/compute-instances/guides/multiqueue-nic/) support on plans with 2 or more vCPU cores. - -\**If a service is not active for the entire month, the amount of network transfer allowance is prorated based on the number of hours the service is active.* - -## Services Included at No Extra Cost - -Linode bundles the following services with all Compute Instances: - -- Always-on [DDoS Protection](https://www.linode.com/products/ddos/) -- Domain management through our [DNS Manager](https://www.linode.com/products/dns-manager/) -- Seamless firewall management with [Cloud Firewalls](https://www.linode.com/products/cloud-firewall/) -- Private Layer 2 networks with [VLANs](https://www.linode.com/products/vlan/) -- Physical placement of your Compute Instances in a data center with [Placement Groups](/docs/products/compute/compute-instances/guides/placement-groups/) -- Metrics and monitoring through [Cloud Manager](https://www.linode.com/products/monitoring/) and [Longview](/docs/products/tools/longview/) (free plan) -- Reusable deployment scripts through [StackScripts](https://www.linode.com/products/stackscripts/) - -## Complementary Paid Services - -To help build and manage your applications, consider complementing your Compute Instance with the following compatible services: - -- Automated daily and weekly backups with our [Backups service](https://www.linode.com/products/backups/) -- Add additional storage drives with [Block Storage](https://www.linode.com/products/block-storage/) -- Create and store reusable images with [Custom Images](https://www.linode.com/products/images/) -- Advanced metrics and monitoring through [Longview Pro](/docs/products/tools/longview/get-started/) -- Automated service deployments with [LKE (Linode Kubernetes Engine)](https://www.linode.com/products/kubernetes/) -- Incident response (and more) with [Managed Services](https://www.linode.com/products/managed/) -- Enable load balancing and horizontal scaling with [NodeBalancers](https://www.linode.com/products/nodebalancers/) -- Add scalable storage to your application with [Object Storage](https://www.linode.com/products/object-storage/) \ No newline at end of file diff --git a/docs/products/compute/compute-instances/developers/index.md b/docs/products/compute/compute-instances/developers/index.md deleted file mode 100644 index 517d75f4232..00000000000 --- a/docs/products/compute/compute-instances/developers/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Compute Instances" -description: "Easily manage Compute Instances with developer tools like the Linode API or CLI as well as third party tools and integrations." -published: 2023-01-18 -tab_group_main: - weight: 50 -aliases: ['/products/compute/shared-linodes/developers/','/products/compute/shared-cpu/developers/','/products/compute/gpu/developers/','/products/compute/dedicated-cpu/developers/','/products/compute/high-memory/developers/'] ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [Linode Instances Endpoint Collection](/docs/api/linode-instances) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [create and manage Linode Instances](/docs/products/tools/cli/guides/linode-instances/). - -## Third Party Tools & Integrations - -**Terraform**: Terraform is an Infrastructure-as-code tool that includes management features for various types of Linode resources. Use Linode’s [official Terraform Provider](https://registry.terraform.io/providers/linode/linode/latest/docs) to [provision Linode Environments](/docs/guides/how-to-build-your-infrastructure-using-terraform-and-linode/). To learn more about Terraform see our documentation library’s [Terraform section](/docs/applications/configuration-management/terraform/). - -**Pulumi**: Pulumi is a development tool that lets you write computer programs which deploy cloud resources. With [Pulumi’s Linode integration](https://github.com/pulumi/pulumi-linode), you can manage your Linode resources in several programming languages, like JavaScript, Go, Python, and TypeScript. Pulumi manages your resources in the same way as Linode's API or CLI. See [Pulumi’s documentation](https://www.pulumi.com/docs/intro/cloud-providers/linode/) to get started. - -- [Getting Started with Pulumi](/docs/guides/deploy-in-code-with-pulumi/) diff --git a/docs/products/compute/compute-instances/faqs/_index.md b/docs/products/compute/compute-instances/faqs/_index.md deleted file mode 100644 index 6ec47a522cb..00000000000 --- a/docs/products/compute/compute-instances/faqs/_index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "FAQs" -title_meta: "FAQs for Compute Instances" -description: "Find quick answers to some of the most commonly asked questions about Compute Instances." -published: 2009-11-16 -modified: 2023-01-18 -tab_group_main: - weight: 60 -aliases: ['/beginners-guide/','/platform/linode-beginners-guide/','/platform/billing-and-support/linode-beginners-guide/','/guides/linode-beginners-guide/'] ---- - -If you're relatively new to Linux system administration, or just new to our platform, this guide will help address some of the most common questions we receive. If you've just created your first Linode account, please first refer to our [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) guide and return here once your Compute Instance has been deployed. - -## How do I log in to my Compute Instance? - -All Compute Instances can be accessed through [Lish](/docs/products/compute/compute-instances/guides/lish/) and [SSH](/docs/guides/connect-to-server-over-ssh/) (if properly configured). Both methods provide you with command line access to your system. You can learn more about connecting to your Linode for the first time in the [connecting to your Linode with SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) section of our [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) guide. - -## How do I host websites on my Compute Instance? - -Since you have full root access to your Compute Instance's system, you're free to choose between a number of popular web servers to host your websites. If you'd like to install a full LAMP stack (including support for PHP/Perl/Python scripting and databases), our [LAMP guides](/docs/lamp-guides/) will explain each step of the process. If you'd just like to host a site that consists of static pages, these guides explain the installation of a few popular web server packages: - -- [Hosting Websites with Apache](/docs/websites/apache/): Apache is the most popular web server software on the Internet. -- [Hosting Websites with Nginx](/docs/websites/nginx): Nginx is a fast, scalable web server that is well suited for both static and dynamic content. -- [Hosting Websites with Lighttpd](/docs/websites/lighttpd/): Lighttpd is popular with users who want a very small, lightweight web server. - -## How can I send and receive email with my Compute Instance? - -{{% content "email-warning-shortguide" %}} - -If you'd prefer to leave the management of your email to a third party, you may follow our [Google Workspace](/docs/guides/using-google-workspace-for-email/) guide. Those desiring to operate their own mail server will find these guides helpful: - -- [Postfix Guides](/docs/email/postfix/): Information on using the highly popular Postfix MTA (mail transfer agent). -- [Zimbra Guides](/docs/email/zimbra/): Instructions for deploying Zimbra, a unified messaging system that includes email and calendar. -- [Citadel Groupware](/docs/email/citadel/): An easy to use "all in one" email system with a web-based administration panel. - -## Does my Compute Instance have a control panel? - -We provide a base system install of the Linux distribution of your choice. Although there isn't a control panel installed by default, you're welcome to obtain and install one if you like. You may wish to try an open-source control panel; we have numerous [control panel guides](/docs/websites/cms/) available to assist you with getting one installed. - -Please note that we do *not* sell control panel licenses. If you decide you'd like to use a commercial product, you'll need to obtain a license for it separately. - -## How do I upload files to my Compute Instance? - -By default, SSH is enabled on all newly deployed Compute Instances. You may use any file transfer program that supports the SFTP standard to upload files. We've created guides for some commonly used programs: - -- [WinSCP](/docs/guides/transfer-files-with-winscp-on-windows/): Windows 95 through Windows 10 -- [Cyberduck](/docs/guides/transfer-files-with-cyberduck-on-mac-os-x/): Mac OS X -- [Filezilla](/docs/guides/filezilla/): Available on all major desktop platforms, including Linux-based operating systems - -## How can I download a backup of my Compute Instance? - -First, you might want to give the [Linode Backup Service](http://www.linode.com/backups/) a try. It's a fast, flexible and cost-effective way to make extra copies of your data. That said, the old saying "you can never have too many backups" is certainly true. In case you'd like to "roll your own" solution, we've created guides that explain various ways of creating backups of your Compute Instance's filesystems: - -- [Introduction to Rsync](/docs/guides/introduction-to-rsync/): Using `rsync` to mirror files to another server. -- [Using Rdiff-backup with SSHFS](/docs/guides/using-rdiff-backup-with-sshfs/): An easy approach to using the `rdiff-backup` utility to maintain differential backups. -- [Cloning a Disk](/docs/products/compute/compute-instances/guides/clone-instance/#clone-to-an-existing-compute-instance): Creating an exact copy of a disk in Cloud Manager. -- [Copying a Disk Over SSH](/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/): How to download an exact binary image of your Compute Instance's disk over SSH. - -## How can I install software on my Compute Instance? - -Please refer to our guide on [Linux package management](/docs/guides/linux-package-management-overview/) for distribution-specific instructions on getting software installed on your Compute Instance. Since you have full root access to your system, you're allowed to install anything that complies with our [terms of service](http://www.linode.com/tos). - -## How do I add another IP address? - -You may add an [additional public IP address](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#adding-an-ip-address) from the **Networking** tab for each Compute Instance in Cloud Manager. After you've added a new IP address, you must [configure static networking](/docs/products/compute/compute-instances/guides/manual-network-configuration/) or enable [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting) and reboot your instance before it can be used. - -{{< note >}} -We require technical justification for the issuance of new IP addresses; you may need to open a ticket from the [Support Tickets](https://cloud.linode.com/support/tickets) section of Cloud Manager explaining the reason for the new IP. -{{< /note >}} - -If you'd like to take advantage of our private networking feature, you may add a private IP to your Compute Instance from the **Networking** tab for each instance in Cloud Manager. Private IP addresses are not publicly accessible, although they are accessible from other Compute Instances in the same data center. Although we take measures to prevent others from intercepting your private IP traffic, you may still wish to configure a firewall to allow access from only the Compute Instances that you operate. - -## How do I set the reverse DNS for an IP address? - -To [set rDNS](/docs/products/compute/compute-instances/guides/configure-rdns/), you can use the **More Options** ellipsis next to your Compute Instance's IPv4 address from the **Networking** tab in Cloud Manager. Please note that the value you specify needs to match an A record or CNAME in DNS pointing to your Compute Instance's IP address. It may take up to 48 hours for reverse DNS updates to take effect. - -## Why does my Compute Instance keep crashing? - -You may be running out of memory, disk space, or other resources. Have a look at our [troubleshooting guide](/docs/troubleshooting/) for tips on diagnosing problems and easy steps for fixing common issues. - -If an application is crashing, be sure to check its error logs. These are typically located within an application-specific directory under `/var/log`. - -## Why is my connection to my Compute Instance slow or broken? - -First, check to be sure that the service (SSH, HTTP, etc.) you're trying to access is running. If your Compute Instance runs a firewall, [check your firewall rules](/docs/guides/control-network-traffic-with-iptables/#view-your-current-iptables-rules) to ensure that you're allowing traffic to the desired destination. If this doesn't help, generate [MTR reports](/docs/guides/diagnosing-network-issues-with-mtr/) to and from your Compute Instance, and [submit them](/docs/products/platform/get-started/guides/support/#contact-customer-support) via the [Support Tickets](https://cloud.linode.com/support/tickets) section in Cloud Manager. You may need to use [Lish](/docs/products/compute/compute-instances/guides/lish/) if you're having problems reaching your Compute Instance via normal networking. - -## How can I upgrade or downgrade my Compute Instance? - -You can change your Compute Instance's plan by using the Resize feature in Cloud Manager. If you're downgrading, please make sure you've resized your disk images to fit within your desired plan's disk space allocation before issuing the resize job. For instructions, refer to our guide on [Resizing a Compute Instance](/docs/products/compute/compute-instances/guides/resize/). - -## How can I test downloads speeds from different data centers? - -You may use our [speed test](http://www.linode.com/speedtest/) page to check latency and download speeds from your location to each of our data centers. Many customers with a large Asia-Pacific presence find that our Singapore and Tokyo facilities work best, while those with a visitor base in Europe tend to prefer our London or Frankfurt data centers. - -## Can I transfer my Compute Instance to another data center? - -Yes. Any time you'd like to transfer your Compute Instance, you can proceed with a migration from the **Disks/Configs** tab for any instance within [Cloud Manager](https://cloud.linode.com). For more information, see our [Data Center Migration Guide](/docs/products/compute/compute-instances/guides/migrate-to-different-dc/). - -A migration will result in some changes that will be displayed in a caution message for your review before officially beginning the migration process. Your disks and configuration profiles will move with your Compute Instance, although your IP addresses will need to change. We strongly recommend reviewing this caution message carefully before proceeding for a list of all changes that you can expect. - -## Where can I learn about Linux basics? - -For those just getting started with Linux systems, we've created a series of guides that will help explain basic concepts: - -- [Introduction to Linux Concepts](/docs/guides/introduction-to-linux-concepts/): An introduction to Linux and Unix-like systems. -- [Linux Users and Groups](/docs/guides/linux-users-and-groups/): An introduction to the principal concepts and use of the users and groups system. -- [Using the Terminal](/docs/guides/using-the-terminal/): Introducing the command line interface known as the shell or terminal. -- [Linux Package Management](/docs/guides/linux-package-management-overview/): How to install software on your Compute Instance. -- [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/): Keeping your Linode safe from unauthorized access or abuse. - -## Where can I get help with something not covered here? - -We always recommend consulting our excellent [user community](https://www.linode.com/community/questions/) first when faced with a question that doesn't seem to be addressed in our documentation. There is also an active community of users available to help on [IRC](https://www.linode.com/chat). If you get stuck you may also open a [support](https://www.linode.com/contact) ticket from the "Get Help" sidebar in Cloud Manager. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/faqs/tab.svg b/docs/products/compute/compute-instances/faqs/tab.svg deleted file mode 100644 index 24b2df1f82a..00000000000 --- a/docs/products/compute/compute-instances/faqs/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/compute/compute-instances/feature.png b/docs/products/compute/compute-instances/feature.png deleted file mode 100644 index 77ba869c522..00000000000 Binary files a/docs/products/compute/compute-instances/feature.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/feature.svg b/docs/products/compute/compute-instances/feature.svg deleted file mode 100644 index 293a08adbdb..00000000000 --- a/docs/products/compute/compute-instances/feature.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/products/compute/compute-instances/get-started/index.md b/docs/products/compute/compute-instances/get-started/index.md deleted file mode 100644 index fa87716ccd9..00000000000 --- a/docs/products/compute/compute-instances/get-started/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with Compute Instances" -description: "Learn how to quickly start using Compute Instances on the Linode Platform." -published: 2023-01-18 -tab_group_main: - weight: 20 -aliases: ['/products/compute/shared-linodes/get-started/','/products/compute/shared-cpu/get-started/','/products/compute/dedicated-cpu/get-started/','/products/compute/gpu/get-started/','/products/compute/high-memory/get-started/'] ---- - -Compute Instances (cloud-based virtual machines) are the foundational infrastructure components for most applications and workloads running on Linode. They offer a fully virtualized Linux system with root access. As such, you can install whatever software you need and configure to be perfectly tuned for your use cases. Compute Instances can host anything from a personal blog or small business website all the way up to enterprise applications serving millions of people a day. - -## Create a Compute Instance - -Compute Instances can be deployed using Cloud Manager, the Linode API, or the Linode CLI. For instructions on deploying one through Cloud Manager, see the following guides: - -- [Create a Compute Instance](/docs/products/compute/compute-instances/guides/create/) -- [Choosing a Compute Instance Type and Plan](/docs/products/compute/compute-instances/plans/choosing-a-plan/) - -{{< note >}} -Consider deploying an app from the [Linode Marketplace](https://www.linode.com/marketplace/apps/) to quickly get up and running with many popular applications, including [Wordpress](https://www.linode.com/marketplace/apps/linode/wordpress/), [WooCommerce](https://www.linode.com/marketplace/apps/linode/woocommerce/), [LEMP](https://www.linode.com/marketplace/apps/linode/lemp/), [cPanel](https://www.linode.com/marketplace/apps/cpanel/cpanel/), [Plesk](https://www.linode.com/marketplace/apps/plesk/plesk/), and [Nextcloud](https://www.linode.com/marketplace/apps/linode/nextcloud/). See [How to Use Linode's Marketplace Apps](/docs/marketplace-docs/get-started/). -{{< /note >}} - -## Connect to the Instance - -After the Compute Instance is finished provisioning and has fully booted up, you can connect to it through the built-in Lish Console in Cloud Manager (or via the SSH Lish Gateway) or SSH directly to your new system. - -- **Weblish (via Cloud Manager):** Click the **Launch LISH Console** link at the top right corner of the Compute Instance's detail page. See [Using the Lish Console > Through a Browser](/docs/products/compute/compute-instances/guides/lish/#through-cloud-manager-weblish). - -- **SSH:** Copy the command from the *SSH Access* field that is available in Cloud Manager under the **Access** section on the Compute Instance's detail page. Paste the command into your local computer's terminal. The command should look similar to the following, only with the IP address of your newly created instance. - - ```command - ssh root@192.0.2.1 - ``` - - - **Windows:** Windows 10 and 11 users can connect to their Compute Instance using the [Command Prompt (or PowerShell)](/docs/guides/connect-to-server-over-ssh-on-windows/#command-prompt-or-powershell---windows-10-or-11) application, provided their system is fully updated. For users of Windows 8 and earlier, [Secure Shell on Chrome](/docs/guides/connect-to-server-over-ssh-on-chrome/), [PuTTY](/docs/guides/connect-to-server-over-ssh-using-putty/), or many other third party tools can be used instead. See [Connecting to a Remote Server Over SSH on Windows](/docs/guides/connect-to-server-over-ssh-on-windows/). - - **macOS:** The *Terminal* application is pre-installed on macOS. See [Connecting to a Remote Server Over SSH on a Mac](/docs/guides/connect-to-server-over-ssh-on-mac/). - - **Linux:** You can use a terminal window, regardless of desktop environment or window manager. See [Connecting to a Remote Server Over SSH on Linux](/docs/guides/connect-to-server-over-ssh-on-linux/) - -- **Lish (via SSH):** Copy the command from the *LISH Console via SSH* field that is available in Cloud Manager under the **Access** section on the Compute Instance's detail page. Paste the command into your local computer's terminal. The command should look similar to the one below, only with your username, data center, and Compute Instance label. Review [Using the Lish Console > Through SSH](/docs/products/compute/compute-instances/guides/lish/#through-ssh-using-a-terminal) for more instructions. - - ```command - ssh -t user@lish-newark.linode.com example-instance - ``` - -## Migrate Existing Workloads - -Linode's Compute Instances (and other products and services) can run almost any workload you may have on other hosting providers. Review the [migration guides](/docs/guides/platform/migrate-to-linode/) for instructions. - -## Deploy New Applications - -Now you can start using your Compute Instance. Whether you're just here to test things out or are looking to host a specific application with us, we may have a guide that can help you get up and running. Open the [Guides](/docs/guides/) section and start browsing or use the search tool at the top of the page to find any guides related to your use case. - -{{% content "email-warning-shortguide" %}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/_index.md b/docs/products/compute/compute-instances/guides/_index.md deleted file mode 100644 index 15df95b925f..00000000000 --- a/docs/products/compute/compute-instances/guides/_index.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Compute Instances" -description: "A collection of guides to help you start deploying Compute Instances and using them to host your web applications and Cloud workloads" -published: 2023-01-18 -modified: 2024-06-20 -tab_group_main: - weight: 30 -aliases: ['/products/compute/shared-linodes/guides/','/products/compute/shared-cpu/guides/','/products/compute/gpu/guides/','/products/compute/dedicated-cpu/guides/','/products/compute/high-memory/guides/'] ---- - -## Basics - -- [Get Started with Compute Instances](/docs/products/compute/compute-instances/get-started/) -- [Create a Compute Instance](/docs/products/compute/compute-instances/guides/create/) -- [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) -- [Monitor and Maintain a Compute Instance](/docs/products/compute/compute-instances/guides/monitor-and-maintain/) -- [Resize a Compute Instance](/docs/products/compute/compute-instances/guides/resize/) - -## Management Tasks - -- [Access Your System Console Using Lish (Linode Shell)](/docs/products/compute/compute-instances/guides/lish/) -- [Access Your Desktop Environment Using Glish (Linode Graphical Shell)](/docs/products/compute/compute-instances/guides/glish/) -- [Reset Root Password](/docs/products/compute/compute-instances/guides/reset-root-password/) -- [Clone a Compute Instance](/docs/products/compute/compute-instances/guides/clone-instance/) -- [Physically Group Compute Instances to Meet Your Needs](/docs/products/compute/compute-instances/guides/placement-groups) -- [Initiate a Cross Data Center Migration](/docs/products/compute/compute-instances/guides/migrate-to-different-dc/) -- [Configure Email Alerts for Resource Usage on Compute Instances](/docs/products/compute/compute-instances/guides/resource-usage-email-alerts/) - -## Linux Distributions - -- [Choosing a Linux Distribution](/docs/products/compute/compute-instances/guides/distributions/) -- [Packages Included on Linode Distribution Images](/docs/products/compute/compute-instances/guides/default-packages/) -- [Linode Packages Mirrors for Various Distributions](/docs/products/compute/compute-instances/guides/package-mirrors/) -- [Install a Custom Linux Distribution](/docs/guides/install-a-custom-distribution/) - -## Disks and Configurations - -- [Manage Disks and Storage](/docs/products/compute/compute-instances/guides/disks-and-storage/) -- [Configuration Profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) -- [Managing the Kernel](/docs/products/compute/compute-instances/guides/manage-the-kernel/) -- [Copy a Disk Over SSH](/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/) -- [Copying a Disk to a Different Account](/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/) - -## Networking - -- [Manage IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) -- [Configure rDNS (Reverse DNS)](/docs/products/compute/compute-instances/guides/configure-rdns/) -- [Automatically Configure Networking with Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) -- [Manual Network Configuration](/docs/products/compute/compute-instances/guides/manual-network-configuration/) -- [Configure Failover](/docs/products/compute/compute-instances/guides/failover/) -- [An Overview of IPv6 on Linode](/docs/products/compute/compute-instances/guides/ipv6/) -- [DHCP IP Address Reference](/docs/products/compute/compute-instances/guides/dhcp-ip-address-reference/) - -## Metadata (Automated System Configuration with Cloud-Init) - -- [Overview of the Metadata Service](/docs/products/compute/compute-instances/guides/metadata/) -- [Cloud-Config Usage and Examples](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) -- [How to Use the Metadata Service API](/docs/products/compute/compute-instances/guides/metadata-api/) - -## Recovery and Troubleshooting - -- [Recover from Unexpected Shutdowns with Lassie (Shutdown Watchdog)](/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/) -- [Rescue and Rebuild](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/) -- [Troubleshooting General Issues](/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/) -- [Troubleshooting Connection Issues](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/) -- [Troubleshooting SSH Issues](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) -- [Troubleshooting Memory Issues](/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/) -- [Troubleshooting Firewall Issues](/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/) -- [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/) - -## GPU Instances - -- [Installing the NVIDIA CUDA Toolkit](/docs/products/compute/compute-instances/guides/install-nvidia-cuda/): Details on installing the NVIDIA CUDA Toolkit, required to make full use of your GPU instance. - -### NVIDIA Documentation - -- [CUDA FAQ](https://developer.nvidia.com/cuda-faq): NVIDIA's FAQ resource for the CUDA platform. - -- [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html): The main installation guide for installing the CUDA Toolkit. - -- [CUDA Samples](https://github.com/nvidia/cuda-samples): Code samples demonstrating features found within the CUDA Toolkit. - -- [CUDA C++ Best Practices Guide](https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html): Discusses the best practices that developers can implement to get the most out of GPU instances. - -- [CUDA C++ Programming Guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html): Provides details on how to develop programs that target GPUs. - -## Going Further - -### Hosting a Website - -- [Host a Website on Ubuntu 18.04](/docs/guides/hosting-a-website-ubuntu-18-04/) - -- [How to Choose a Static Site Generator](/docs/guides/how-to-choose-static-site-generator/) - -- [Host a Website with High Availability](/docs/guides/host-a-website-with-high-availability/) - -### Set Up a Web Server - -- [Web Server Guides](/docs/web-servers/) - -### Migrate to Linode - -- [Migrate from Shared Hosting to Linode](/docs/guides/migrate-from-shared-hosting-to-linode/) - -- [Best Practices when Migrating to Linode](/docs/guides/best-practices-when-migrating-to-linode/) \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/clone-instance/clone-disk.png b/docs/products/compute/compute-instances/guides/clone-instance/clone-disk.png deleted file mode 100644 index 3077048e914..00000000000 Binary files a/docs/products/compute/compute-instances/guides/clone-instance/clone-disk.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/clone-instance/clone-instance-tab.png b/docs/products/compute/compute-instances/guides/clone-instance/clone-instance-tab.png deleted file mode 100644 index 59211712230..00000000000 Binary files a/docs/products/compute/compute-instances/guides/clone-instance/clone-instance-tab.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/clone-instance/clone-select-instance.png b/docs/products/compute/compute-instances/guides/clone-instance/clone-select-instance.png deleted file mode 100644 index db840282246..00000000000 Binary files a/docs/products/compute/compute-instances/guides/clone-instance/clone-select-instance.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/clone-instance/clone-your-linode.png b/docs/products/compute/compute-instances/guides/clone-instance/clone-your-linode.png deleted file mode 100644 index 81ea70efa36..00000000000 Binary files a/docs/products/compute/compute-instances/guides/clone-instance/clone-your-linode.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/clone-instance/configuration-profile-menu-clone.png b/docs/products/compute/compute-instances/guides/clone-instance/configuration-profile-menu-clone.png deleted file mode 100644 index 055090c7ab9..00000000000 Binary files a/docs/products/compute/compute-instances/guides/clone-instance/configuration-profile-menu-clone.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/clone-instance/disk-menu-clone.png b/docs/products/compute/compute-instances/guides/clone-instance/disk-menu-clone.png deleted file mode 100644 index 085a8c408ca..00000000000 Binary files a/docs/products/compute/compute-instances/guides/clone-instance/disk-menu-clone.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/clone-instance/index.md b/docs/products/compute/compute-instances/guides/clone-instance/index.md deleted file mode 100644 index 3fd5c7e9aeb..00000000000 --- a/docs/products/compute/compute-instances/guides/clone-instance/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Cloning a Compute Instance" -title_meta: "How to Clone a Compute Instance" -description: "This guide provides you with step-by-step instructions for making additional copies of your Compute Instance." -published: 2019-03-18 -modified: 2024-04-11 -keywords: ["clone", " cloning", "cloud manager"] -tags: ["linode platform","cloud manager"] -aliases: ['/migrate-to-linode/disk-images/clone-your-linode/','/platform/disk-images/clone-your-linode/','/platform/disk-images/clone-your-linode-classic-manager/','/guides/clone-your-linode/'] ---- - -Linode's cloning feature lets you duplicate a Compute Instance's disks (and configuration profiles) to a new or existing instance. - -## Clone to a New Compute Instance - -This process copies all disks and configuration profiles to a newly created Compute Instance on your account. - -{{< note >}} -Before continuing, you should power off the instance you want to clone. This helps prevent data corruption. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click the **Create** dropdown menu on the top left and select **Linode**. - -1. In the **Create New Linode** form, navigate to the **Clone Linode** tab. - - ![Screenshot of the Clone Linode tab.](clone-instance-tab.png) - -1. Under **Select Linode to Clone From**, search for and select the instance you wish to clone. If the selected instance is running, **Power Off** appears to the right. - -1. To help prevent data corruption during cloning, click **Power Off**. - - {{< note >}} - If you're using a mobile device, available instances appear as cards without the Power Off option. To power off an instance from a mobile device, go to the instance's details page. - {{< /note >}} - -1. Complete the remainder of the form. Enter a label and select the region, the plan, and other options for the new Compute Instance. - - {{< note >}} - - The plan's storage must be greater than the combined disk size of the original instance. If you wish to select a plan with less storage, you may need to [resize your disks](/docs/products/compute/compute-instances/guides/disks-and-storage/) before cloning. - - - If the target Compute Instance is in a [placement group](/docs/products/compute/compute-instances/guides/placement-groups/), the clone isn't automatically included in the same placement group. You need to specify a placement group to include it in. The target placement group needs to have capacity to include a cloned Compute Instance and it needs to be in the same data center as the clone. - {{< /note >}} - -1. Click the **Create Linode** button to start the cloning process. Cloning a Compute Instance can be much longer than creating a new instance based on a distribution image or custom image. The length of time depends on the size of the disks, among other factors. To keep track of the cloning progress, a status bar is displayed above the original Compute Instance with the percentage of completion. - -1. Once the cloning process is complete, you need to power on the new Compute Instance to begin using it. - -{{< note >}} -The new instance's IP address will be different than the original instance. If desired, you can transfer the IP address from the original Compute Instance to the new one. Swapping the IP address can prevent additional changes from being required, such as changing DNS records or the internal configuration of the new instance. See [Transferring IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#transferring-ip-addresses). -{{< /note >}} - -## Clone to an Existing Compute Instance - -This process lets you select specific disks or configuration profiles and duplicate them to an existing Compute Instance. When cloning a configuration profile, all disks assigned to that profile are also cloned. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and select the **Linodes** link in the left sidebar menu. - -1. Locate the Compute Instance you wish to clone and click its corresponding label, which displays the instance's detail page. - -1. To help prevent data corruption, click the **Power Off** link in the top right. - -1. **To clone a disk:** Navigate to the **Storage** tab, locate the disk you wish to clone within the **Disks** table, click the **more options ellipsis** dropdown menu, and select **Clone**. - - ![Screenshot of the Storage tab](disk-menu-clone.png) - - **To clone a configuration profile:** Navigate to the **Configurations** tab, locate the profile you wish to clone within the **Config** table, click the **more options ellipsis** dropdown menu, and select **Clone**. - - ![Screenshot of the Configurations tab](configuration-profile-menu-clone.png) - -1. A **Clone** form appears with either the **Disks** or **Configuration Profiles** tab displayed, depending on the previous step. From here, select the exact disks and configuration profiles you wish to clone. When a configuration profile is selected, all disks assigned to it (through **Block Device Assignments**) are also selected. - - ![The Clone form in Cloud Manager](clone-disk.png) - -1. In the **Destination** dropdown menu, select the destination Compute Instance. - - {{< note >}} - The destination instance must have enough free storage to accommodate the disks that are to be cloned. If there's not enough free storage space, you'll need to either [resize the disks](/docs/products/compute/compute-instances/guides/disks-and-storage/) (either on the original or destination Compute Instance) or [upgrade the destination instance to a larger plan](/docs/products/compute/compute-instances/guides/resize/). - {{< /note >}} - -1. Click the **Clone** button to start the cloning process. The length of time this takes depends on the size of the Compute Instance's disks (among other factors). To keep track of the cloning progress, a status bar is displayed above the original instance with the percentage of completion. - -1. Once the cloning process is complete, you may need to make changes to the destination Compute Instance in order to begin using the disks. This involves either booting the instance using the cloned configuration profile or adjusting the existing configuration profile to assign the cloned disks. See [Configuration Profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/compute-migrations/index.md b/docs/products/compute/compute-instances/guides/compute-migrations/index.md deleted file mode 100644 index c551c170fce..00000000000 --- a/docs/products/compute/compute-instances/guides/compute-migrations/index.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -slug: compute-migrations -title: "Compute Migrations on Akamai Cloud" -description: 'This guide reviews the various types of compute migrations available on the Akamai Cloud platform.' -published: 2023-11-14 -keywords: ['migrate','migration','host'] -tags: ["linode platform","cloud manager"] ---- - -A migration occurs when a Compute Instance is moved from one physical host machine to another. This can happen within the same data center or across data centers. Migrations across data centers can be configured by customers in Cloud Manager. All other types of migrations must be configured by a Linode or Akamai administrator. - -## Types of Migrations - -There are three types of migrations that can occur: **cold**, **live**, or **warm**. - -### Cold Migrations - -During a cold migration, your Compute Instance is automatically shut down (if it's not powered off already), moved to another physical host machine, and then returned to its previous state (booted or powered down) once it has fully migrated. - -- **Advantages:** Can occur within the same data center and across data centers, generally the most available type of migration option -- **Disadvantages:** Requires the most downtime of all migration types - -### Live Migrations - -During a live migration, your Compute Instance remains up and running while it is moved from one host to another within the same data center. - -- **Advantages:** No downtime -- **Disadvantages:** Not always an option depending on the scenario (i.e. host hardware compatibility, plan resizing, etc.) - -### Warm Migrations - -During a warm migration, your Compute Instance remains up and running while it is synced from one host to another within the same data center. Once synced, the instance is automatically powered down and is booted back up on the new host to complete the migration process. - -- **Advantages:** Significantly less downtime than a cold migration, alternative to live migrations if they are not available -- **Disadvantages:** Requires a reboot to complete the process - -## When Migrations Occur - -Compute Instances can be migrated between hosts within the same data center and across data centers. Some of the reason for these migrations are detailed below. The type of migration that occurs (warm, live, or cold) depends on the situation as well as the host hardware on the origin and destination machine. - -**Within the same data center:** - -- Scheduled or emergency maintenance -- By customer request via [Support ticket](/docs/products/platform/get-started/guides/support/) while troubleshooting performance issues -- During the [resize process](/docs/products/compute/compute-instances/guides/resize/) - -Migrations within the same data center can be achieved via any migration type (cold, live, and warm). - -**Across data centers:** - -- Customer initiated for personal or business reasons (see our guide on [Initiating a Cross Data Center Migration](/docs/products/compute/compute-instances/guides/migrate-to-different-dc/)) -- By customer request via [Support ticket](/docs/products/platform/get-started/guides/support/) -- When an old data center is retired. If this is the case, you will be notified ahead of any anticipated migrations or maintenance. - -Migrations across data centers can only be achieved using cold migrations. - -## Troubleshooting Migrations and FAQ - -### What if my cold migration fails? - -Should a cold migration fail for any reason, the Support team is notified and will configure a new cold migration. - -### Why would a live migration not be available? - -In order for a live migration to occur, a host compatible with the host your instance currently resides on must be available. Not all host hardware is alike or available to accept a live migration, so live migrations are not always a viable option. - -### What could cause a warm migration to fail? - -- Your instance is not configured to respect ACPI shutdowns: - - This applies to warm migrations initiated by customers, including warm migrations taking place during the warm resize process. - - This also applies if you are running a custom distribution (i.e. Windows) or unsupported disk image that is not configured for ACPI shutdowns. -- If a Linode or Akamai administrator cancels the warm migration. -- If the sources Linode stops responding, is shut down before the cross-host sync, or if the process is disturbed in any way. - -### What should I do if my warm migration fails? - -- If your warm migration fails to complete after an early initiation is triggered via Cloud Manager, the Support team is notified. There are two options that are used at the discretion of the Support team. - - A new warm migration can be configured to be performed at a scheduled time. - - A cold migration can be configured. You can then initiate the cold migration via Cloud Manager or allow it to proceed as otherwise scheduled. - -### What should I do if my warm resize fails? - -- If a warm resize fails, you can either proceed with a cold resize (recommended) or troubleshoot your instance's configuration to respect ACPI shutdowns. - -### What if my cross data center migration fails? - -- Should a cross data center migration fail, you may reattempt the migration. If it fails again, open a [Support ticket](/docs/products/platform/get-started/guides/support/) for further assistance. - -## Next Steps - -If you want to learn more about migrations or need additional troubleshooting tips, see the following resources for additional information: - -- [Guides - Change Plans (Resize)](/docs/products/compute/compute-instances/guides/resize/) -- [Guides - Reboot Survival Guide](/docs/guides/reboot-survival-guide/) -- [Linode Community - How should I handle a Scheduled Migration for my Linode?](https://www.linode.com/community/questions/23075/how-should-i-handle-a-scheduled-migration-for-my-linode) -- [Linode Community - My Linode is unreachable after maintenance](https://www.linode.com/community/questions/323/my-linode-is-unreachable-after-maintenance) -- [Linode Blog - Live Migrations at Linode](https://www.linode.com/blog/linode/live-migrations-at-linode/) diff --git a/docs/products/compute/compute-instances/guides/configuration-profiles/Linode-Configuration-Profiles.jpg b/docs/products/compute/compute-instances/guides/configuration-profiles/Linode-Configuration-Profiles.jpg deleted file mode 100644 index fe0562d9006..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configuration-profiles/Linode-Configuration-Profiles.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/configuration-profiles/activity-feed-booted-configuration-profile.png b/docs/products/compute/compute-instances/guides/configuration-profiles/activity-feed-booted-configuration-profile.png deleted file mode 100644 index 86a208df791..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configuration-profiles/activity-feed-booted-configuration-profile.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/configuration-profiles/index.md b/docs/products/compute/compute-instances/guides/configuration-profiles/index.md deleted file mode 100644 index 124f00c4e54..00000000000 --- a/docs/products/compute/compute-instances/guides/configuration-profiles/index.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: "Manage Configuration Profiles on a Compute Instance" -title_meta: "How to Manage Configuration Profiles on a Compute Instance" -description: "Learn how to create and manage configuration profiles for a Compute Instance, including details on each setting and its recommended value." -published: 2021-04-30 -modified: 2024-01-30 -keywords: ["configuration profiles"] -tags: ["linode platform","cloud manager"] -image: Linode-Configuration-Profiles.jpg -aliases: ['/platform/disk-images/disk-images-and-configuration-profiles-classic-manager/','/disk-images-config-profiles/','/platform/disk-images/disk-images-and-configuration-profiles/','/migrate-to-linode/disk-images/disk-images-and-configuration-profiles/','/guides/linode-configuration-profiles/','/guides/disk-images-and-configuration-profiles/','/platform/disk-images/kvm-reference/','/platform/kvm-reference/','/platform/kvm/','/guides/kvm-reference/'] ---- - -A **configuration profile** functions as a boot loader for a Compute Instance. It controls general boot settings, including the disk the instance will boot from, the disks that will be mounted, the kernel that will be used, and the network interfaces on the instance. Multiple configuration profiles can be created, each one booting from different disks with different settings. This can allow you to try out new Linux distributions without paying for additional Compute Instances (see [Deploy an Image to a Disk on an Existing Compute Instance](/docs/products/tools/images/guides/deploy-image-to-existing-linode/)) or to create custom software testing environments. - -## View Configuration Profiles - -The configuration profiles for a Compute Instance can be viewed and managed from [Cloud Manager](https://cloud.linode.com). - -1. Log in to [Cloud Manager](https://cloud.linode.com), click the **Linodes** link in the sidebar, and select a Compute Instance from the list. - -1. Navigate to the **Configurations** tab to view the configuration profiles on a Compute Instance. - - ![Viewing configuration profiles](linode-config-profiles.png) - -From here, a [configuration profile can be created](#creating-a-configuration-profile) using the **Add Configuration** button. To take action on an certain configuration, locate it within the **Configurations** table and select from the list of actions, some or all of which may appear within the **ellipsis** menu: - -- **Boot:** Boots the Compute Instance using the settings defined within the selected configuration profile. See [Booting from a Configuration Profile](#booting-from-a-configuration-profile). -- **Edit:** Modify the settings within a configuration profile. See [Editing a Configuration Profile](#editing-a-configuration-profile). -- **Clone:** Clones the configuration profile and the attached disks to any Compute Instance on the same account. See [Cloning a Configuration Profile and the Attached Disks](#cloning-a-configuration-profile-and-the-attached-disks). -- **Delete:** Deletes the configuration profile. See [Deleting a Configuration Profile](#deleting-a-configuration-profile). - -## Settings - -When adding or editing a configuration profile on a Compute Instance, the following settings are available: - -- **Virtual Machine:** VM mode determines whether devices inside your virtual machine are *paravirtualized* or *fully virtualized*. Here are the drivers used for various devices in each mode: - - | Device | Paravirtualization | Full virtualization | - | -- | -- | -- | - | Block | VirtIO SCSI | IDE | - | Network | VirtIO Net | e1000 | - | Serial | ttyS0 | ttyS0 | - - Since paravirtualization offers more performant networking and disk IO, it is the recommended mode. All Linux distributions provided by Linode support paravirtualization. When installing an operating system not offered by Linode, full virtualization may be required if that OS does not include virtualization-aware drivers. - -- **Boot Settings:** - - **Kernel:** Select the version of the Linux kernel that will be used. The options include Grub 2 (for upstream or custom-compiled kernels), a specific Linode supplied kernel, or Direct Disk. For most distributions, its recommended to set this option to *Grub 2*. See [Manage the Kernel on a Compute Instance](/docs/products/compute/compute-instances/guides/manage-the-kernel/). - - **Run Level:** Adjust the [run level](https://en.wikipedia.org/wiki/Runlevel) of the OS to allow for advanced diagnostics. Recommended setting: *Run Default Level*. - - **Memory Limit:** Limits the amount of memory that the Compute Instance can use. Recommended setting: *Do not set any limits on memory usage*. - -- **Block Device Assignment:** Assigns the Compute Instance's disks to the disk devices in Linux, making them accessible once the instance has booted up. Up to 8 disks can be assigned (`/dev/sda` through `/dev/sdg`), though it's common to only use the first two devices: `/dev/sda` as the main disk and `/dev/sdb` as the swap disk. The **Root Device** is used to select the primary disk device (commonly `/dev/sda`), though another predefined device or custom device path can be used. - - {{< note >}} - In some Linode distribution images, block devices are assigned using [UUIDs](https://en.wikipedia.org/wiki/Universally_unique_identifier) in the `/etc/fstab` file to support proper disk mounting. In order to see the UUID assigned to each block device, you can use the `lsblk` command: - - ```command - lsblk -f - ``` - - This displays block devices for your booted configuration and their current mount points: - - ```output - NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS - sda ext4 1.0 linode-root cfa3834a-c6ec-0c85-1b68-6345a69f3759 14.3G 20% / - sdb swap 1 208b24eb-47fe-4e6b-907a-d70d24af0cf0 [SWAP] - sdc ext4 1.0 linode-root 72a6eb6d-941c-bf66-c5e7-636242a1efbe - ``` - {{< /note >}} - -- **Network Interfaces:** Configures network interfaces for the Public Internet, a [VPC](/docs/products/networking/vpc/), or a [VLAN](/docs/products/networking/vlans/). There are a total of 3 available network interfaces, which correspond to the devices assigned within the Linux system: `eth0`, `eth1`, and `eth2`. If no VLANs or VPCs are in use, the recommended setting is _Public Internet_ for `eth0` and _None_ for all other interfaces. When assigning an instance to a VPC, it's recommended to use `eth0` for the VPC interface. If public internet is required along with a VPC, configure the VPC interface as a 1:1 NAT with internet access (the _Assign a public IPv4 address for this Linode_ option under the VPC interface) instead of designating a separate network interface as _Public Intenet_. For more details on assigning a Compute Instance to a VPC or VLAN, review the appropriate documentation: - - - [Assign a Compute Instance to a VPC](/docs/products/networking/vpc/guides/assign-services/) - - [Attach a VLAN to a Compute Instance](/docs/products/networking/vlans/guides/attach-to-compute-instance/) - -- **Filesystem / Boot Helpers:** Various helper tasks that run when the Compute Instance is booted up. Recommended setting for all helpers: _Enabled_. - - **Enable distro helper:** Helps maintain correct inittab/upstart console device. - - **Disable `updatedb`:** Disables `updatedb` cron job to avoid disk thrashing. - - **Enable modules.dep helper:** Creates a module dependency file for the kernel you run. - - **Auto-mount devtmpfs:** Controls if `pv_ops` kernels auto-mount devtmpfs at boot. - - **Auto-configure networking:** Automatically configures static networking. See [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/). - -## Create a Configuration Profile - -Making a new configuration profile lets you create a new and separate boot configuration for your system. You can specify boot settings and disks to mount. Here's how to create a new configuration profile: - -1. Within [Cloud Manager](https://cloud.linode.com), view the Configuration Profiles for your desired Compute Instance. See [View Configuration Profiles](#view-configuration-profiles). - -1. Select the **Add a Configuration** link. The **Add Configuration** form appears: - -1. Enter the *Label* for the new configuration, as well as an optional *Comment*. - -1. Complete the remainder of the form, referencing the [Settings](#settings) section above for additional details and recommended values. For most basic configurations, it's recommended to adjust the following settings: - - **Kernel:** Select *Grub 2*. - - **Block Device Assignments:** Set `/dev/sda` to the disk you want to use as the primary disk (and boot disk) and set `/dev/sdb` to the swap disk. - -1. Click **Add Configuration** to create the new configuration profile. - -## Edit a Configuration Profile - -You can edit existing configuration profiles to change boot settings, set other disks to mount, and more. Here's how to edit a configuration profile: - -1. Within [Cloud Manager](https://cloud.linode.com), view the Configuration Profiles for your desired Compute Instance. See [View Configuration Profiles](#view-configuration-profiles). - -1. Within the **Configurations** table, locate the configuration profile you wish to modify and click the corresponding **Edit** button, which may also appear within the **ellipsis** menu. This displays the **Edit Configuration** form. - -1. Adjust any settings as needed, referencing the [Settings](#settings) section above for additional details and recommended values. - -1. Once finished, click **Save Changes**. - -The changes to the configuration profile have been saved. You may need to reboot your Compute Instance to activate the changes. - -## Boot from a Configuration Profile - -You can create and store many different configuration profiles in Cloud Manager, but you can only boot your Compute Instance from one configuration profile at a time. Here's how to select a configuration profile and boot your instance from it: - -1. Within [Cloud Manager](https://cloud.linode.com), view the Configuration Profiles for your desired Compute Instance. See [View Configuration Profiles](#view-configuration-profiles). - -1. Within the **Configurations** table, locate the configuration profile you wish to modify and click the corresponding **Boot** button, which may also appear within the **ellipsis** menu. - -1. A confirmation dialog window will appear. Click **Boot** to confirm. - -1. The Compute Instance will boot (or reboot) using the selected configuration profile. The progress of the boot can be viewed from the instance's status. - -You have successfully selected and booted your Compute Instance from a configuration profile. - -## Determine Which Configuration Profile Was Used - -When a Compute Instance is powered on or rebooted, it uses the settings stored within a configuration profile. You can determine which configuration profile was used by looking at the event history. Events are visible within the **Activity Feed** tab for a particular Compute Instance or within the main [Events](https://cloud.linode.com/events) page for the account. - -1. Log in to [Cloud Manager](https://cloud.linode.com), click the **Linodes** link in the sidebar, and select a Compute Instance from the list. - -1. Navigate to the **Activity Feed** tab to view all events for the instance. - -1. Locate the particular boot or reboot event and review the text. The configuration profile used during that boot will be mentioned here. - - ![Viewing the boot history within the Activity Feed](activity-feed-booted-configuration-profile.png) - - Sometimes the boot or reboot event doesn't list a configuration profile, such as when the [Lassie Shutdown Watchdog](/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/) initiates the event. In this case, look at the most recent reboot or boot event which does include the configuration profile that was used. - -## Clone a Configuration Profile and the Attached Disks - -A configuration profile, along with any attached disks, can be duplicated to any *other* Compute Instance on the account. See [Cloning to an Existing Compute Instance](/docs/products/compute/compute-instances/guides/clone-instance/#clone-to-an-existing-compute-instance) for instructions. - -## Delete a Configuration Profile - -You can remove a configuration profile from Cloud Manager at any time. Here's how: - -1. Within [Cloud Manager](https://cloud.linode.com), view the Configuration Profiles for your desired Compute Instance. See [View Configuration Profiles](#view-configuration-profiles). - -1. Within the **Configurations** table, locate the configuration profile you wish to modify and click the corresponding **Delete** button, which may also appear within the **ellipsis** menu. - -1. A confirmation dialog window will appear. Click **Delete** to confirm. - -1. The Compute Instance will boot (or reboot) using the selected configuration profile. The progress of the boot can be viewed from the instance's status. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/configuration-profiles/linode-config-profiles.png b/docs/products/compute/compute-instances/guides/configuration-profiles/linode-config-profiles.png deleted file mode 100644 index 648626eac2c..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configuration-profiles/linode-config-profiles.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/configure-rdns/configure-your-linode-reverse-dns.jpg b/docs/products/compute/compute-instances/guides/configure-rdns/configure-your-linode-reverse-dns.jpg deleted file mode 100644 index f18755438a2..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configure-rdns/configure-your-linode-reverse-dns.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/configure-rdns/edit-rdns-button.png b/docs/products/compute/compute-instances/guides/configure-rdns/edit-rdns-button.png deleted file mode 100644 index 6ff90ff9ba1..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configure-rdns/edit-rdns-button.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/configure-rdns/edit-rdns-form.png b/docs/products/compute/compute-instances/guides/configure-rdns/edit-rdns-form.png deleted file mode 100644 index dd64a33bbbb..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configure-rdns/edit-rdns-form.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/configure-rdns/index.md b/docs/products/compute/compute-instances/guides/configure-rdns/index.md deleted file mode 100644 index 606d1e38bce..00000000000 --- a/docs/products/compute/compute-instances/guides/configure-rdns/index.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "Configure rDNS (Reverse DNS) on a Compute Instance" -title_meta: "How To Configure rDNS (Reverse DNS) on a Compute Instance" -description: "Reverse DNS (rDNS) resolves an IP address to the designated domain name. This guide will teach you how to set it up." -published: 2015-07-09 -modified: 2023-01-18 -keywords: ["reverse", "dns", "PTR"] -tags: ["dns","networking","cloud manager","linode platform"] -image: configure-your-linode-reverse-dns.jpg -aliases: ['/networking/configure-your-linode-for-reverse-dns/','/networking/dns/setting-reverse-dns/','/networking/dns/configure-your-linode-for-reverse-dns/','/networking/setting-up-reverse-dns-lookup/','/networking/dns/configure-your-linode-for-reverse-dns-classic-manager/','/guides/configure-your-linode-for-reverse-dns/','/guides/configure-rdns/'] ---- - -The ability to point a domain name to an IP address is referred to as *forward* DNS resolution. *Reverse* DNS (rDNS) lookup is the inverse process, where an IP address resolves to a domain name. Reverse DNS uses a *pointer record* (*PTR*) to match an IP address with a domain or subdomain. PTR records are generally set with a hosting provider. As such, rDNS can be set directly on Linode. Official Internet documents state that "every Internet-reachable host should have a name," and that the name should match a reverse pointer record (see [RFC 1033](http://tools.ietf.org/html/rfc1033) and [RFC 1912](http://tools.ietf.org/html/rfc1912)). - -{{< note >}} -By default, every IP Addresses has a default rDNS value of `x.ip.linodeusercontent.com`, where *x* is the IP address with dashes (`-`) replacing periods. This default value should be replaced before using the IP Address in a production environment. -{{< /note >}} - -## Determine the Domain Name to Use for rDNS - -First, decide the FQDN (full qualified domain name) you wish to use as your rDNS value. The structure of an FQDN is `[subdomain].[domain].[tld]`. For instance, this could be `web-01-prod.example.com` if you're hosting a website or `mail.example.com` for a mail server. Commonly, your rDNS domain should match the FQDN hostname of your Compute Instance. If you haven't yet configured your hostname, see [Configure a Custom Hostname](/docs/products/compute/compute-instances/guides/set-up-and-secure/#configure-a-custom-hostname) for example hostnames and instructions. - -## Configure DNS Records - -Before setting the rDNS value for your Compute Instance's IP address, you must first add an *A Record* on your domain's DNS provider that maps your full domain (including subdomain) to the IP. To do this, log in to whichever service you use to manage your domain's DNS records. This may be the Linode [DNS Manager](/docs/products/networking/dns-manager/), your domain's registrar, or a third-party DNS service. The instructions below assume you are using Linode's DNS Manager, though most DNS services work in a similar fashion. - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Domains** from the main navigation menu. - -1. Within the list of domains that appears, click the **Edit** link corresponding with the domain you wish to use for rDNS. If your domain is not listed, you may be using a different DNS service. - -1. Add the following two records by following the instructions within the [Add DNS Records](/docs/products/networking/dns-manager/guides/manage-dns-records/) guide. - - - *A Record*: Enter the subdomain you wish to use in the **Hostname** field and the public IPv4 address of your Compute Instance in the **IP Address** field. - - *AAAA Record*: Enter the subdomain you wish to use in the **Hostname** field and the public IPv6 address of your instance in the **IP Address** field. - -See our [Introduction to DNS Records](/docs/guides/dns-overview/) and [Common DNS Configurations](/docs/products/networking/dns-manager/guides/common-dns-configurations/) guides for more information about PTR and DNS records. - -## Setting Reverse DNS - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and click on the **Linodes** link in the sidebar to access a list of all your Compute Instances. - -1. Select the Compute Instance whose reverse DNS you would like to set up and navigate to the **Network** tab. - -1. Find the IP address whose reverse DNS you would like to configure and click on the **Edit rDNS** button, which may be available within the **more options** ellipsis menu on smaller screen sizes. - - ![Select 'Edit RDNS' option from the IP address menu.](edit-rdns-button.png) - -1. The *Edit Reverse DNS* menu appears. Enter the FQDN you've configured in a previous step. If you wish to reset the rDNS back to its original `*.members.linode.com` (or `*.ip.linodeusercontent.com`) domain, make sure this field is empty. - - ![Adding the domain name for reverse DNS](edit-rdns-form.png) - -1. Click **Save** to make the change. - - {{< note >}} - If you did not previously set up an A record for your domain that matches your Compute Instance's IP address, you will see an error like the following: - - > We were unable to perform a lookup for 'example.com' at this time. - - You may also see this error if you very recently created your A record, as it can take some time for your DNS changes to propagate. - {{< /note >}} - -You can verify the reverse DNS entry was properly submitted within the *IP addresses* table under the Reverse DNS column. - -Perform these steps for each IP address whose rDNS value you'd like to change. - -### IPv6 Pools and Routed Ranges - -While single IPv6 addresses can be configured following the same process as IPv4 addresses, reverse DNS for IPv6 pools (/116) and routed ranges (/64, /56) are configured a little differently. - -1. Follow the steps for [Setting Reverse DNS](#setting-reverse-dns), clicking the **Edit rDNS** button next to an IPv6 pool or range (instead of an individual address). - -2. In the **Edit Reverse DNS** form, enter the IPv6 address you'd like to use as well as the fully qualified domain name for that address. The IPv6 address needs to be a valid address within the selected IPv6 pool or range. Click on the **Save** button. - -3. You can add or edit the rDNS values for other IPv6 addresses within that IPv6 pool or range by repeating this process. Once more than one rDNS entry is added, the **Reverse DNS** column of the IPv6 table will show you exactly how many IP addresses have been given rDNS entries. - - ![Viewing rDNS for an IPv6 Pool or Range](rdns-ipv6-pool.png "Viewing rDNS for an IPv6 Pool or Range") - -4. To see each rDNS entry in more detail, click on the addresses entry in the rDNS column for your IPv6 pool or range. A new window will appear listing the IPv6 addresses you've configured along with their associated domain names. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/configure-rdns/rdns-ipv6-pool.png b/docs/products/compute/compute-instances/guides/configure-rdns/rdns-ipv6-pool.png deleted file mode 100644 index 75dc83f58b9..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configure-rdns/rdns-ipv6-pool.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/configure-rdns/view-rdns.png b/docs/products/compute/compute-instances/guides/configure-rdns/view-rdns.png deleted file mode 100644 index 54f18aed309..00000000000 Binary files a/docs/products/compute/compute-instances/guides/configure-rdns/view-rdns.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/1064-migration6.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/1064-migration6.png deleted file mode 100644 index 3bff78eb97a..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/1064-migration6.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/1065-migration6-small.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/1065-migration6-small.png deleted file mode 100644 index 3b959d53101..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/1065-migration6-small.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copydisk-create-disk-full.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copydisk-create-disk-full.png deleted file mode 100644 index 8eff3ad9c73..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copydisk-create-disk-full.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copydisk-create-disk.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copydisk-create-disk.png deleted file mode 100644 index f8e3a13b3b2..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copydisk-create-disk.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copying_a_disk_over_ssh_smg.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copying_a_disk_over_ssh_smg.png deleted file mode 100644 index d04b1a2a04b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/copying_a_disk_over_ssh_smg.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/index.md b/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/index.md deleted file mode 100644 index 21b83f5c5f5..00000000000 --- a/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/index.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -title: "Copy a Disk Over SSH" -description: "Create a disk image using dd and download it to another machine over SSH." -published: 2012-06-04 -modified: 2020-12-04 -keywords: ["copy", "disk", "ssh", "dd"] -tags: ["linode platform","ssh"] -image: copying_a_disk_over_ssh_smg.png -aliases: ['/migration/ssh-copy/','/migrate-to-linode/disk-images/copying-a-disk-image-over-ssh/','/platform/disk-images/copying-a-disk-image-over-ssh/','/guides/copying-a-disk-image-over-ssh/'] ---- - -Piping SSH commands to utilities such as `dd`, `gzip`, or `rsync` is an easy way to copy a Compute Instance's data into a single file for later extraction. This can effectively back up your Compute Instance's disk or migrate your installed system to other instances. - -This guide demonstrates how to download a `.img` file to your computer over SSH containing a block-level copy of your Compute Instance's disk device created with `dd`. - -{{< note >}} -If the amount of data on your disk is much less than the size of the disk, then downloading a copy with `dd` can take longer than just downloading your files. If you're interested in downloading individual files or directories, review the options listed in our [Download Files from Your Compute Instance](/docs/guides/download-files-from-a-compute-instance/) and [Backing Up Your Data](/docs/guides/backing-up-your-data/) guides. -{{< /note >}} - -## Download a Disk over SSH - -This guide shows you how to download a Compute Instance's disk image over SSH to a separate receiving system, like a personal computer or another Compute Instance. This is done by executing commands on both the **origin** system (the Compute Instance where your disk is stored) and the **destination** system which will receive a copy of this image. - -While this guide has been written to accommodate computers running Linux as their operating system, if the receiving system is instead running Microsoft Windows, there are multiple SSH solutions available such as [Cygwin and PuTTY](/docs/guides/connect-to-server-over-ssh-on-windows/) which can alternatively be used to complete this process. - -### Boot into Rescue Mode - -1. Boot the *origin* Compute Instance into [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#boot-into-rescue-mode) and connect to it using [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Set a root password for the rescue system and start the SSH server: - - ```command - passwd - service ssh start - ``` - -### Copy and Download the Disk - -1. Prepare the *destination* system to download the disk image by verifying that SSH is installed. Most Linux/Unix-like systems include OpenSSH in their package base by default. - -1. Copy the disk over SSH from the origin system to the destination system. Run the following command on the destination system, replacing `192.0.2.9` with the origin Compute Instance's IP address and `/home/archive/linode.img` with the path where you want to store the disk. - - ```command - ssh root@192.0.2.9 "dd if=/dev/sda " | dd of=/home/archive/linode.img status=progress - ``` - -1. The destination system is now connected to the Compute Instance, prompting you to verify that the SSH key fingerprints are valid. If valid, type `yes` and press **Enter** to continue: - - ```output - The authenticity of host '192.0.2.9 (192.0.2.9)' can't be established. - RSA key fingerprint is 39:6b:eb:05:f1:28:95:f0:da:63:17:9e:6b:6b:11:4a. - Are you sure you want to continue connecting (yes/no)? - ``` - -1. The destination system is prompted to enter the root password you [created for the origin Compute Instance in rescue mode](#boot-linode-into-rescue-mode). Enter this password now: - - ```output - Warning: Permanently added '192.0.2.9' (RSA) to the list of known hosts. - root@192.0.2.9's password: - ``` - - When the transfer completes, you see a summary output similar to the output below: - - ```output - 4096000+0 records in - 4096000+0 records out - 2097152000 bytes (2.1 GB) copied, 371.632 seconds, 5.6 MB/s - ``` - - Copying your disk can take a while. If you have a slow internet connection, add the `-C` option to the SSH command to enable gzip compression of the disk image. If you receive a `Write failed: Broken pipe` error, repeat this process. - -### Verify the Disk - -Once the copy has completed, verify it by mounting the image on the receiving system with the following commands. - -1. Switch to the `root` user: - - ```command - su - ``` - -1. Make a directory to mount the disk: - - ```command - mkdir linode - ``` - -1. Mount the disk in the directory created in the previous step. Replace `linode.img` with the name of your Compute Instance's disk. - - ```command - mount -o loop linode.img linode - ``` - -1. List the directories on the disk to indicate if everything has transferred. Your output of `ls` is similar to below: - - ```command - ls linode - ``` - - ```output - bin dev home lost+found mnt proc sbin srv tmp var - boot etc lib media opt root selinux sys usr - ``` - -## Upload a Disk over SSH - -In some cases, it is necessary to upload your disk image to a new server. For example, if you previously downloaded your Compute Instance's disk and deleted the instance to halt billing on it, you can create a new Compute Instance at a later date and upload the disk to resume your services. This section of the guide assumes that you are creating a new Compute Instance with the default primary and swap disk as outlined in the [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) guide. - -1. Once you've created a Compute Instance with enough disk space available to accommodate your disk image, prepare the new instance to receive this image. This is completed by first deleting the primary disk created by default, and keeping the swap disk. A swap disk typically starts at 256 MB or 512 MB in size, but can be larger or smaller depending upon your needs. - -1. Access your Compute Instance through Cloud Manager. Click the **Storage** tab to navigate to the *Disks* section. - -1. On the following page in the **Disks** menu, select the ellipsis next to any primary disks you are replacing and select **Delete**. - -1. Next, select **Add a Disk**. - -1. The **Add a Disk** panel appears. Select the **Create Empty Disk** option, enter a **Label** that you can use as a personal identifier, select the file system that matches the format of the disk that was downloaded over SSH, and enter a Size that is large enough to hold the contents of the disk you are uploading. Click **Save Changes**. - -1. Reboot Your Compute Instance into [Rescue Mode](#boot-linode-into-rescue-mode) and start the secure SSH server using the following commands: - - ```command - passwd - service ssh start - ``` - -1. Upload the disk image you have saved remotely over SSH to the new Compute Instance. Replace `192.0.2.9` with the Compute Instance's IP address and `/home/archive/linode.img` with the disk images's path. - - ```command - dd if=/home/archive/linode.img | ssh root@192.0.2.9 "dd of=/dev/sda" - ``` - - When the transfer completes, you see a summary output similar to below: - - ```output - 49807360+0 records in - 49807360+0 records out - 25501368320 bytes (26 GB) copied, 9462.12 s, 2.7 MB/s - ``` - - Copying your disk can take a while. If you receive a `Write failed: Broken pipe` error, repeat this process. - -### Expand the Filesystem - -If the disk you created on the new server is larger than the source disk (for example you're transferring a disk from a smaller Compute Instance to a larger Compute Instance), you have to resize the file system to make use of the new space. - -You can check if this is necessary by comparing the space of the file system to the space of the new disk: - -```command -df -h -``` - -```output -Filesystem Size Used Avail Use% Mounted on -/dev/sda 24G 19G 4.0G 83% / -``` - -```command -lsblk -``` - -```output -NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT -sda 8:0 0 30G 0 disk / -``` - -In the above example, the values in the **Size** column don't match. Although the disk is 30 GB, the file system can only see 24 GB. - -To use all available space on the new disk, execute the following from Rescue Mode. Replace `/dev/sdx` with your system disk's device identifier (/dev/sda, /dev/sdb, etc.). - -```command -e2fsck -f /dev/sdx -resize2fs /dev/sdx -``` - -### Boot from the Disk - -You now need to create a new configuration profile on the destination Compute Instance. - -1. Select your Compute Instance, click the **Configurations** tab, then select **Add a Configuration**. - -1. The **Add Configuration** panel appears. - - ![Selecting the configuration profile](1064-migration6.png "Selecting the configuration profile") - -1. Enter a name for the configuration profile in the **Label** field, and in the **Block Device Assignment** section set the `/dev/sda` to the new system disk you created earlier in this section of the guide. Set `/dev/sdb` to the swap image. - -1. The Compute Instance is now ready to reboot using the new system disk. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/add_disk.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/add_disk.png deleted file mode 100644 index 7f444695eff..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/add_disk.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/block-device-assignment.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/block-device-assignment.png deleted file mode 100644 index 917affa51e5..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/block-device-assignment.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/boot-this-config.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/boot-this-config.png deleted file mode 100644 index 82d3262e2b3..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/boot-this-config.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/copying_a_disk_to_a_differnet_account_smg.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/copying_a_disk_to_a_differnet_account_smg.png deleted file mode 100644 index 8cdc9d45fc3..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/copying_a_disk_to_a_differnet_account_smg.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/image-selection.png b/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/image-selection.png deleted file mode 100644 index 15193f7bba9..00000000000 Binary files a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/image-selection.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/index.md b/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/index.md deleted file mode 100644 index b98a222ef92..00000000000 --- a/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/index.md +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: "Copying a Disk to a Different Account" -title_meta: "How to Copy a Disk to a Different Account" -description: "Review this guide to find out how to copy a disk of a Linode from one Linode account to another." -published: 2020-06-01 -modified: 2024-06-20 -keywords: ["disk", "migration", "moving to different accounts"] -tags: ["linode platform","cloud manager"] -image: copying_a_disk_to_a_differnet_account_smg.png -aliases: ['/migration/copy-disk-image-different-account/','/linode-platform/manager/managing-disk-images/','/platform/disk-images/copying-a-disk-image-to-a-different-account/','/migrate-to-linode/disk-images/copying-a-disk-image-to-a-different-account/','/guides/copying-a-disk-image-to-a-different-account/'] ---- - -You can copy a disk of a Linode from one Linode account to another. This is a great way to prepare a disk for another Linode customer and transfer it from one individual account to another individual account. Or if you have multiple Linode accounts, this guide provides instructions to consolidate all the disks in one account. - -{{< note >}} -If you're copying a disk from a Linode that hosts applications, then ensure that you complete the backup and migrate steps for the respective applications. -{{< /note >}} - -## Preparing the Receiving Linode - -You need to prepare the *receiving* Linode before initiating the transfer. First, create a Linode with a new disks to hold the files from the other Linode. - -### Creating a New Receiving Linode - -1. Log in to [Cloud Manager](https://cloud.linode.com) with the username and password you created when signing up. - -1. Click **Create** at the top of the page and select **Linode**. - -1. Click **X** to not choose any **Image** in the **Choose a Distribution** section of the [Distributions](/docs/products/compute/compute-instances/guides/distributions/) tab. - - ![Creating a receiving Linode](image-selection.png) - -1. Choose the region where you would like the Linode to reside. If you're not sure which to select, see our [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) guide. You can also generate [MTR reports](/docs/guides/diagnosing-network-issues-with-mtr/) for a deeper look at the route path between you and a data center in each specific region. - -1. Select a Linode plan. - -1. Give the Linode a label. This is a name to help you easily identify it within Cloud Manager's Dashboard. If desired, assign a tag to the Linode in the **Add Tags** field. - -1. Skip the **Root Password** and **SSH Keys** fields, as they are disabled when creating an empty Linode. - -1. Click **Create Linode**. The system directs you to the *Linodes* page that reports the status of the Linode as it boots up. - -### Creating New Disks - -To hold the files transferred from the other Linode, create two new disks labeled `copy` and `swap`: - -1. Select the Linode that is receiving the disk. The Linode's dashboard appears. - -1. Go to the **Storage** tab and click **Add a Disk** in the **Disks** section. The **Add Disk** window appears. - - ![Creating a receiving Linode](add_disk.png) - -1. Type a descriptive name such as `copy` for the disk in the **Label** field. - -1. Select `ext4` in the **Filesystem** dropdown field. - -1. Set the size of the disk in the **Size** field. The size of the disk must be large enough to hold the contents of the disk that you want to copy. - -1. Click **Add** to create the disk. - -1. Repeat the steps to create a disk labeled `swap` and select `swap` in the **Filesystem** dropdown field. Ensure that the size of the `swap` disk is the same as that of the `swap` disk of the disk that you want to copy. - -The system creates disks to hold the files from the disk of other account. - -### Booting into Rescue Mode - -Start the receiving Linode in rescue mode: - -1. Select the Linode that is receiving the disk. The Linode's dashboard appears. - -1. Select the **More Options Ellipsis** and click the **Rescue** button. - -1. Set the **/dev/sda** field to `copy` and **/dev/sdb** to `swap`. - -1. Click **Reboot into Rescue Mode**. - -### Access the Linode in Rescue Mode - -After the Linode has booted, connect to the Linode through [LISH](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#connecting-to-a-compute-instance-running-in-rescue-mode). - -1. Select the Linode that is receiving the disk. The Linode's dashboard appears. -1. Click **Launch Lish Console** . A new window appears that displays the Lish console, a `Welcome to Finnix!` message, and a root prompt. -1. Set the `root` password for the Finnix rescue environment by entering the following command: - - ```command - passwd - ``` - - {{< note >}} - This root password is separate from the root password of the disk that you normally boot from. Setting the root password for Finnix does not affect the root account of the distribution. - {{< /note >}} - -1. Type the new password for the `root` user. -1. Start the SSH server: - - ```command - service ssh start - ``` - -You can now connect to the server as root with the SSH client on the local computer. -The Linode is now ready to receive the files from the other Linode account. - -## Copying the Disk - -To start copying the files on the disk from one account to another, initiate the file transfer: - -1. Connect to the *source* Linode through an SSH client. - -1. Type the following command to start copying the disk, replace `192.0.2.0` with the IP address of the *receiving* Linode: - - ```command - dd if=/dev/sda | ssh -C 192.0.2.0 "dd of=/dev/sda" status=progress - ``` - -1. The following output appears. Enter `yes` to continue connecting: - - ```output - The authenticity of host '192.0.2.0 (192.0.2.0)' can't be established. - RSA key fingerprint is 20:f4:de:4d:5c:6e:a9:c7:e6:1f:8a:ad:60:62:96:3f. - Are you sure you want to continue connecting (yes/no)? - ``` - -1. The system prompts you for the `root` password. Enter the password you created in the last section when you started the SSH server: - - ```output - root@192.0.2.0's password: - ``` - -1. The file transfer starts, as shown below: - - ```output - 2048000+0 records in - 2048000+0 records out - 1048576000 bytes (1.0 GB) copied, 391.504 seconds, 2.7 MB/s - 2048000+0 records in - 2048000+0 records out - 1048576000 bytes (1.0 GB) copied, 387.843 seconds, 2.7 MB/s - ``` - -Wait for the transfer to complete. Note that this process can take a while, depending on the size of your disk. - -## Verifying the Disk - -After the file transfer has completed, you should verify the disk by mounting it on the *receiving* Linode. Ensure that the [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) is on for the *receiving* Linode or the [Static IP](/docs/products/compute/compute-instances/guides/manual-network-configuration/) is configured to enable networking with the new IP addresses. - -1. Connect to the *receiving* Linode through SSH as `root`. - -1. To check that the disks are transferred successfully make a new directory for the disk by typing the following command: - - ```command - mkdir linode - ``` - -1. Mount the disk by typing the following command: - - ```command - mount /dev/sda linode - ``` - -1. View the directories in the disk by typing the following command: - - ```command - ls linode/ - ``` - - The output is similar to: - - ```output - bin dev home lost+found mnt proc sbin srv tmp var - boot etc lib media opt root selinux sys usr - ``` - -{{< note >}} -If the system displays any disk errors, then perform the [Copying the Disk](/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/#copying-the-disk) steps again. -{{< /note >}} - -Now the Linode is ready to boot from the disk. - -## Booting from the Disk - -Boot the *receiving* Linode from the disk. First, create a configuration profile on the *receiving* Linode, and then boot the *receiving* Linode with the disk that you just transferred. - -### Creating the Configuration Profile - -To boot the *receiving* Linode from the transferred disk, create a new configuration profile: - -1. Click the **Linodes** tab. -1. Select the Linode that received the disk. The Linode's dashboard appears. -1. Select the **Configurations** tab followed by the **Add a Configuration** button. The **Add a Linode Configuration** window appears. -1. Enter a name for the configuration profile in the **Label** field, such as *Received disk*. -1. In the *Block Device Assignment* section, set **/dev/sda** to `copy` and **/dev/sdb** to `swap` disk. - ![Assigning the Block Device](block-device-assignment.png) -1. Click **Submit**. - -You have successfully created the configuration profile. - -### Booting the Receiving Linode - -Now to start the *receiving* Linode from the transferred disk, select the configuration profile that you created: - -1. From the **Configurations** tab of the Linode's dashboard, find the *Received disk* configuration profile that you created. - -1. Click the **Boot** button to restart the Linode using the selected configuration profile, and boot from the transferred disk. - - ![Booting the Receiving Linode](boot-this-config.png) - -The Linode boots using the disk you transferred. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-addons.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-addons.jpg deleted file mode 100644 index b7baa0cc85a..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-addons.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-choose-a-plan.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-choose-a-plan.jpg deleted file mode 100644 index 26a48bee221..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-choose-a-plan.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-cloud-firewall.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-cloud-firewall.jpg deleted file mode 100644 index 4f01102b978..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-cloud-firewall.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-create.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-create.jpg deleted file mode 100644 index ef094f52927..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-create.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-details.png b/docs/products/compute/compute-instances/guides/create/create-instance-details.png deleted file mode 100644 index 8b20a1cb1de..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-details.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-distribution.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-distribution.jpg deleted file mode 100644 index c89404c99e1..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-distribution.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-label.png b/docs/products/compute/compute-instances/guides/create/create-instance-label.png deleted file mode 100644 index c0ff8c5e9d8..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-label.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-password.png b/docs/products/compute/compute-instances/guides/create/create-instance-password.png deleted file mode 100644 index c8e4a879103..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-password.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-pg.png b/docs/products/compute/compute-instances/guides/create/create-instance-pg.png deleted file mode 100644 index 7c574f94ebc..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-pg.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-plan.png b/docs/products/compute/compute-instances/guides/create/create-instance-plan.png deleted file mode 100644 index 774b31751c0..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-plan.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-region.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-region.jpg deleted file mode 100644 index c313969913c..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-region.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-summary.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-summary.jpg deleted file mode 100644 index 1ce5502054a..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-summary.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-vlan.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-vlan.jpg deleted file mode 100644 index 193d6f9a56b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-vlan.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/create-instance-vpc.jpg b/docs/products/compute/compute-instances/guides/create/create-instance-vpc.jpg deleted file mode 100644 index de2679a55dc..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/create-instance-vpc.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/getting-started.jpg b/docs/products/compute/compute-instances/guides/create/getting-started.jpg deleted file mode 100644 index be5bf3d2826..00000000000 Binary files a/docs/products/compute/compute-instances/guides/create/getting-started.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/create/index.md b/docs/products/compute/compute-instances/guides/create/index.md deleted file mode 100644 index 9c9a8eed16d..00000000000 --- a/docs/products/compute/compute-instances/guides/create/index.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: "Create a Compute Instance" -title_meta: "Create a Compute Instance on the Linode Platform" -description: "Learn how to create a new Compute Instance, including choosing a distribution, region, and plan size." -published: 2022-04-19 -modified: 2024-07-22 -keywords: ["getting started", "deploy", "linode", "linux"] -aliases: ['/guides/creating-a-compute-instance/','/products/compute/dedicated-cpu/guides/deploy/'] ---- - -This guide walks you through creating a Compute Instance (also frequently called a *Linode*) through Cloud Manager. Whether this is your first time using Linode or if you're a long time user, you should carefully consider each step in the process to make sure you're getting the most of your Linode services. - -- [Open the Create Form in Cloud Manager](#open-the-create-form-in-cloud-manager) -- [Choose a Distribution, App, or Image](#choose-a-distribution-app-or-image) -- [Select a Region](#select-a-region) -- [Choose an Instance Type and Plan](#choose-an-instance-type-and-plan) -- [Set the Label and Add Tags](#set-the-label-and-add-tags) -- [Create a Password and Add SSH Keys](#create-a-password-and-add-ssh-keys) -- [Assign to a VPC (Optional) {#assign-to-a-vpc}](#assign-to-a-vpc-optional-assign-to-a-vpc) -- [Assign to a Cloud Firewall (Optional) {#assign-to-a-cloud-firewall}](#assign-to-a-cloud-firewall-optional-assign-to-a-cloud-firewall) -- [Assign to a VLAN (Optional) {#assign-to-a-vlan}](#assign-to-a-vlan-optional-assign-to-a-vlan) -- [Assign to a Placement Group (Optional) {#assign-to-a-placement-group}](#assign-to-a-placement-group-optional-assign-to-a-placement-group) -- [Configure Additional Options](#configure-additional-options) -- [Add User Data](#add-user-data) -- [Deploy the Instance](#deploy-the-instance) -- [Getting Started After Deployment](#getting-started-after-deployment) - -## Open the Create Form in Cloud Manager - -Log in to [Cloud Manager](https://cloud.linode.com/), click the **Create** dropdown menu on the top bar, and select *Linode*. This opens the **Create Linode** form. - -![Open Create form in Cloud Manager](create-instance-create.jpg) - -## Choose a Distribution, App, or Image - -![Distribution selection in Cloud Manager](create-instance-distribution.jpg) - -One of the first steps to deploy a Compute Instance is to decide *what* you actually wish to deploy. You're able to select a Linux distribution for a barebones install, a Marketplace App with your desired software, and a few other options. - -- **Distributions:** Select from any [supported Linux distribution](https://www.linode.com/distributions/). This option lets you start with a stable Linux operating system and build your own software stack from scratch. Popular distributions include the latest LTS releases of Ubuntu, Debian, CentOS Stream, RHEL-derivitates (such AlmaLinux and Rocky Linux), and more. Each distribution comes with its own set of preinstalled software and commands. See [Choosing a Linux Distribution](/docs/products/compute/compute-instances/guides/distributions/) for a full list of distributions. - -- **Marketplace**: Select from the many [Apps](https://www.linode.com/marketplace/apps/) currently featured in the [Linode Marketplace](https://www.linode.com/marketplace/). This installs and configures your desired software, allowing you to start using your applications right away. Popular apps include [Wordpress](https://www.linode.com/marketplace/apps/linode/wordpress/), [WooCommerce](https://www.linode.com/marketplace/apps/linode/woocommerce/), [LEMP](https://www.linode.com/marketplace/apps/linode/lemp/), [cPanel](https://www.linode.com/marketplace/apps/cpanel/cpanel/), [Plesk](https://www.linode.com/marketplace/apps/plesk/plesk/), and [Nextcloud](https://www.linode.com/marketplace/apps/linode/nextcloud/). See [How to Use Linode's Marketplace Apps](/docs/marketplace-docs/get-started/). - -- **StackScripts:** Select from any StackScripts previously created on your account or from a community StackScript. StackScripts automate the deployment of software and configuration by executing commands within your system after the first boot. See [How to Deploy a New Linode Using a StackScript](/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/). - -- **Images:** Select from any Custom Image or Recovery Image stored on your account. *Recovery Images* are generated after a Compute Instance has been deleted and *Custom Images* can be created based on existing instances or image files. See [Images - Get Started](/docs/products/tools/images/get-started/). - -- **Backups:** If you have the Backups service enabled on an existing Compute Instance, you can select any available backup snapshot to deploy from. See [Restore a Backup to a New Linode](/docs/products/storage/backups/guides/restore-to-a-new-instance/). - -- **Clone Linode:** Creates a new Compute Instance from the disks and configuration on an existing instance. See [Cloning a Linode](/docs/products/compute/compute-instances/guides/clone-instance/). - -This guide assumes you are creating a Compute Instance from a **Distribution**. If you select a different option, you may wish to follow the specific instructions within their own corresponding guides. - -## Select a Region - -![Region selection in Cloud Manager](create-instance-region.jpg) - -Next, you must select the **region** where the Compute Instance will reside. Regions correspond with individual data centers, each located in a different geographical area. You should likely select the region closest to you and/or your customers. This helps reduce latency and can make a significant impact in connection speeds and quality. If you wish to make use of a particular Linode product or service, you may also wish to verify that the product is available within your desired data center. - -You need to select a region before selecting your plan type. [Pricing](https://www.linode.com/pricing/) may vary between data centers. - -- [Global Infrastructure](https://www.linode.com/global-infrastructure/) -- [Speed Tests for Data Centers](https://www.linode.com/speed-test/) -- [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) - -## Choose an Instance Type and Plan - -![Plan selection in Cloud Manager](create-instance-choose-a-plan.jpg) - -Linode offers a few different instance types and plan sizes, each with a preset amount of hardware resources (such as vCPU cores, memory, and storage space). The table below displays a list of instance types along with their plan sizes and use cases. - -Since every workload is different, you may wish to review the [Choosing a Compute Instance Type and Plan](/docs/products/compute/compute-instances/plans/choosing-a-plan/) guide for advice on selecting the best plan for your needs, application’s requirements, and pricing considerations. Note that [pricing and plan](https://www.linode.com/pricing/) options may vary between data centers. - -{{< note >}} -You can resize to a different plan size or instance type at any time. This means your aren't locked in to whichever plan you select here. See [Resizing a Compute Instance](/docs/products/compute/compute-instances/guides/resize/) for instructions. -{{< /note >}} - -{{% content "instance-comparison-shortguide" %}} - -## Set the Label and Add Tags - -![Label selection in Cloud Manager](create-instance-label.png) - -- **Label:** The label is the name of the Compute Instance, allowing you to easily identify it from other instances. A good label should provide some indication as to what the instance is used for. As an example, a label of `acme-web-prod` may indicate that the instance is the production website for the company Acme. If you have already implemented your own naming conventions for your cloud infrastructure, follow those conventions. Labels must only use letters, numbers, underscores, dashes, and periods. - -- **Tags:** Adding tags gives you the ability to categorize your Linode services however you wish. If you're a web development agency, you could add a tag for each client you have. You could also add tags for which services are for development, staging, or production. - -## Create a Password and Add SSH Keys - -![Enter root password in Cloud Manager](create-instance-password.png) - -- **Root Password:** The password used to log in to the system as the root user. The root user is the main account and has access to the entire system, including files and commands. This password should be extremely strong to prevent attackers from gaining access to your system. By default, the root user can log in over Lish and SSH using this password, though we do recommend disabling this within the [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) guide. - - {{% content "password-requirements-shortguide" %}} - -- **SSH Keys:** Add any SSH Keys to the root user account on the server. This enables you to log in through SSH without needing a password. SSH keys are created as a pair: a *private key* stored on your local computer and a *public key* that you can upload to remote systems and services. Since you only share your public key and your private key is kept safe and secure, this is a much more secure method for authentication than passwords. Learn more about uploading SSH keys through Cloud Manager on the [Manage SSH Keys](/docs/products/platform/accounts/guides/manage-ssh-keys/) guide. - -## Assign to a VPC (Optional) {#assign-to-a-vpc} - -![Screenshot of the VPC assignment section](create-instance-vpc.jpg) - -Consider using a [VPC](/docs/products/networking/vpc/) (Virtual Private Network) to isolate your new Compute Instance from other systems on the Akamai cloud computing platform and the internet. This adds an additional layer of privacy and can be used alongside Cloud Firewalls. If you are not sure you need a VPC, you can skip this step. You can add this new Compute Instance to a VPC at any time in the future by following the steps within the [Assign (and Remove) Services to a VPC](/docs/products/networking/vpc/guides/assign-services/) guide. - -- **Select VPC:** To assign this instance to a VPC, select the VPC from the **Assign VPC** dropdown menu. If you do not yet have a VPC in the selected data center, click the **Create a VPC** button and follow the instructions on the [Create a VPC](/docs/products/networking/vpc/guides/create/) guide. - -- **Select Subnet:** An instance can be assigned to a single subnet, which lets you further segment traffic and services within a VPC. Select the desired subnet within the **Subnet** dropdown menu. - -- **Auto-Assign IPv4 address:** By default, an IPv4 address will be automatically generated for the instance on the subnet’s defined CIDR range. If you want to manually assign an IP address, uncheck the **Auto-assign a VPC IPv4 address for this Linode** option and enter your custom IPv4 address. This address must still be within the subnet’s IP range. - -- **Public IPv4 address:** If you wish to enable public internet access on this new instance, check the **Assign a public IPv4 address for this Linode** option. By default, this is unchecked and you will not be able to access the internet from this instance. - -- **Additional IPv4 ranges:** You can assign additional IPv4 ranges that can be used to reach this Compute Instance and/or the services running on it. For example, you may wish to assign additional IPv4 ranges to directly expose Docker containers to the VPC. - -For additional information and considerations, review the [Assign (and Remove) Services](/docs/products/networking/vpc/guides/assign-services/) guide. - -## Assign to a Cloud Firewall (Optional) {#assign-to-a-cloud-firewall} - -![Screenshot of the Assign Cloud Firewall section](create-instance-cloud-firewall.jpg) - -To protect your new Compute Instance from unwanted traffic, consider using a [Cloud Firewall](/docs/products/networking/cloud-firewall/). This lets you cascade firewall rules across multiple services and manage those rules within Cloud Manager, Linode CLI, and Linode API. - -To assign your instance to a Cloud Firewall, select the firewall from the **Assign Firewall** dropdown menu. If you do not have a firewall or wish to create a new one, click the **Create Firewall** link and follow the instructions within the [Create a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/) guide. You can always skip this step and assign a firewall at a later time by following the instructions in the [Apply Firewall Rules to a Service](/docs/products/networking/cloud-firewall/guides/apply-to-service/) guide. - -## Assign to a VLAN (Optional) {#assign-to-a-vlan} - -![Screenshot of the VLAN assignment section](create-instance-vlan.jpg) - -Add this Compute Instance to a secure private network. VLANs are available at no additional cost, though not all data centers currently support this feature. See [VLANs](/docs/products/networking/vlans/) to learn more. - -{{< note type="warning" title="Consider using a VPC instead of a VLAN" isCollapsible=true >}} -In most cases, it's recommended to use a VPC over a VLAN. VPCs operate on a higher network layer and come with more IP addressing and IP routing functionality. Additionally, you can further segment out network traffic through subnets, each of which has its own CIDR range. Review [these differences](/docs/products/networking/vpc/#difference-between-private-network-options-vpcs-vlans-and-private-ips) to learn more. -{{< /note >}} - -## Assign to a Placement Group (Optional) {#assign-to-a-placement-group} - -![Creating a receiving Linode](create-instance-pg.png) - -Add this Compute Instance to a Placement Group to manage its physical location in a data center ("region"). Placement Groups can be set up to group your compute instances close together to help with performance, or further apart to support high availability. Placement Groups are available at no additional cost, but they're not available in all regions. See [Work with Placement Groups](/docs/products/compute/compute-instances/guides/placement-groups/) to learn more. - -{{< note >}} -If you don't have an existing Placement Group, you can click **Create Placement Group** to create a new one. This takes you to a separate interface, outside creating your compute instance. For ease of use, create your compute instances in a supported region, then later create a Placement Group and assign your compute instances to it. -{{< /note >}} - -## Configure Additional Options - -The following features and services can be configured during the Compute Instance's creation or at any point after. - -- **Add the Backups service:** Safeguard your data with Linode’s Backups service, enabling automatic backups of the disks on your Compute Instances. Up to four backups are stored as part of this service, including automated daily, weekly, and biweekly backups in addition to a manual backup snapshot. See [Backups](/docs/products/storage/backups/) to learn more and view pricing. - -- **Add a private IP:** A private IP gives you access to the data center's private network. This enables you to communicate with other Compute Instances with private IPs in the same region without using a public IPv4 address. Private IPs are needed to configure your instance as a NodeBalancer back end. The private IP feature requires a _Public Internet_ network interface. As such, Compute Instances configured with both VPCs _and_ a private IP address are configured with the _VPC_ network interface on `eth0` and the _Public Internet_ interface on `eth1`. - - {{< note type="warning" title="Consider using a VPC instead of the private IP address feature" isCollapsible=true >}} - Private IP addresses are accessible by any other instance in the same data center, provided that instance also has a private IP. To further isolate your instance, consider using a VPC instead. Review [these differences](/docs/products/networking/vpc/#difference-between-private-network-options-vpcs-vlans-and-private-ips) to learn more. - {{< /note >}} - -## Add User Data - -User data can be provided to the Metadata service, which is then consumed by cloud-init when your Compute Instance boots up for the first time. For information on the Metadata service, user data formats, and our cloud-init integration, review [Overview of the Metadata Service](/docs/products/compute/compute-instances/guides/metadata/). - -## Deploy the Instance - -![Summary section in Cloud Manager](create-instance-summary.jpg) - -Confirm the details for this Compute Instance within the *Linode Summary* section. Once you are satisfied, click **Create Linode** to start the deployment process. This process can take anywhere from 3 minutes for Distribution Images to up to 30 minutes for some Marketplace Apps. After the creation process has started, you are automatically redirected to the detail page for this instance. From here, you can follow the status as the instance is deployed as well as see information about the new instance, such as the IP addresses. - -![Details page in Cloud Manager](create-instance-details.png) - -## Getting Started After Deployment - -Once the Compute Instance has been created and is done initializing, you can start configuring and using it. The next recommendation is to follow the guide linked below, which assists you in connecting to your instance, performing any initial configuration steps on your Linux system, and securing your server. - -- [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) - -{{% content "email-warning-shortguide" %}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/default-packages/index.md b/docs/products/compute/compute-instances/guides/default-packages/index.md deleted file mode 100644 index a65c8dd9960..00000000000 --- a/docs/products/compute/compute-instances/guides/default-packages/index.md +++ /dev/null @@ -1,266 +0,0 @@ ---- -title: Default Distro Packages on Linode -description: "This guide contains a list of all default packages on Linode's Distribution Images." -published: 2021-08-27 -keywords: ["linux", "linode manager", "image", "cloud manager"] -aliases: ['/guides/platform/disk-images/','/guides/platform/disk-images/default-packages-on-linode-images/','/guides/default-packages-on-linode-images/'] -tags: ["linode platform","cloud manager"] ---- - -Linode installs base Linux images to all distributions. This includes all of the packages included by the base image by default. However, this also includes images added by Linode to nearly all Distros which provide access to common tools and functionalities. The packages are tailored to help with systems administration in the cloud, and ensure that all Linode images work with all Linode products and services. Below is a list of the additional packages installed for all of our distributions. - -{{< note >}} -Gentoo and Slackware do not use any packages not provided by the distribution. -{{< /note >}} - -## Alma Linux - - 'authconfig' - 'authselect-compat' - 'chrony' - 'cloud-init' - 'file' - 'grub2' - 'grub2-pc' - 'iotop' - 'kernel' - 'langpacks-en' - 'lsof' - 'mtr' - 'nano' - 'net-tools' - 'qemu-guest-agent' - 'sysstat' - 'vim-enhanced' - 'whois' - -## Alpine - 'acct' - 'blkid' - 'chrony' - 'curl' - 'docs' - 'e2fsprogs' - 'grub-bios' - 'haveged' - 'iotop' - 'linux-virt' - 'mtools' - 'mtr' - 'nano' - 'openssh' - 'openssh-client' - 'openssh-server' - 'openssh-sftp-server' - 'openssl' - 'sudo' - 'sysstat' - 'vim' - -## Arch - - 'cloud-init' - 'grub' - 'haveged' - 'inetutils' - 'iotop' - 'linux' - 'linux-firmware' - 'lsof' - 'man-db' - 'man-pages' - 'mtr' - 'nano' - 'net-tools' - 'openssh' - 'sudo' - 'sysstat' - 'vim' - 'whois' - -## CentOS Stream - - 'authconfig' - 'authselect-compat' - 'cloud-init' - 'file' - 'grub2' - 'grub2-pc' - 'iotop' - 'kernel' - 'langpacks-en' - 'lsof' - 'mtr' - 'nano' - 'net-tools' - 'qemu-guest-agent' - 'sysstat' - 'vim-enhanced' - -## CentOS - - 'authconfig' - 'authselect-compat' - 'chrony' - 'cloud-init' - 'file' - 'grub2' - 'grub2-pc' - 'iotop' - 'kernel' - 'langpacks-en' - 'lsof' - 'mtr' - 'nano' - 'net-tools' - 'qemu-guest-agent' - 'sysstat' - 'vim-enhanced' - 'whois' - -## Debian - - 'apt-listchanges' - 'bash-completion' - 'bind9-host' - 'cloud-init' - 'console-setup' - 'curl' - 'dnsutils' - 'grub-pc' - 'haveged' - 'hdparm' - 'iotop' - 'irqbalance-' - 'keyboard-configuration' - 'less' - 'liblockfile-bin' - 'libnss-systemd' - 'linux-image-amd64' - 'locales' - 'lsb-release' - 'lsof' - 'man-db' - 'manpages' - 'mtr-tiny' - 'netcat-traditional' - 'openssh-server' - 'pciutils' - 'perl' - 'pigz-' - 'python-minimal' - 'reportbug' - 'sudo' - 'sysstat' - 'task-english' - 'telnet' - 'traceroute' - 'vim' - 'wget' - 'whois' - -## Fedora - - '@server-product-environment' - 'authselect-compat' - 'chrony' - 'cloud-init' - 'fedora-release-server' - 'fedora-release-identity-server' - 'grub2' - 'grub2-pc' - 'iotop' - 'kernel' - 'langpacks-en' - 'python2.7' - 'sysstat' - 'vim-enhanced' - 'whois' - -## openSUSE - - 'pattern:basesystem' - 'pattern:console' - 'pattern:enhanced_base' - 'pattern:minimal_base' - 'pattern:yast2_basis' - 'acl' - 'at' - 'attr' - 'bash-completion' - 'bind-utils' - 'bzip2' - 'ca-certificates-mozilla' - 'chrony' - 'chrony-pool-openSUSE' - 'cloud-init' - 'cronie' - 'e2fsprogs' - 'grub2-i386-pc' - 'haveged' - 'iotop' - 'iputils' - 'issue-generator' - 'kernel-default' - 'kexec-tools' - 'logrotate' - 'man' - 'man-pages' - 'mosh' - 'mtr' - 'nano' - 'netcat-openbsd' - 'qemu-guest-agent' - 'rsync' - 'rsyslog' - 'screen' - 'sharutils' - 'sudo' - 'terminfo' - 'time' - 'tmux' - 'vim' - 'vim-data' - 'wget' - 'which' - 'whois' - -## Rocky - - 'authconfig' - 'authselect-compat' - 'chrony' - 'cloud-init' - 'file' - 'grub2' - 'grub2-pc' - 'iotop' - 'kernel' - 'langpacks-en' - 'lsof' - 'mtr' - 'nano' - 'net-tools' - 'qemu-guest-agent' - 'sysstat' - 'vim-enhanced' - 'whois' - -## Ubuntu - - 'gcc-10-base' - 'grub-pc' - 'haveged' - 'iotop' - 'libnss-nis' - 'libnss-nisplus' - 'linux-generic' - 'linux-headers-generic' - 'mime-support' - 'sysstat' - 'ubuntu-advantage-tools' - 'ubuntu-standard' - 'whois' - 'openssh-server^' - 'cloud-image^' - 'server^' \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/dhcp-ip-address-reference/index.md b/docs/products/compute/compute-instances/guides/dhcp-ip-address-reference/index.md deleted file mode 100644 index 7098e1291a4..00000000000 --- a/docs/products/compute/compute-instances/guides/dhcp-ip-address-reference/index.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -slug: dhcp-ip-address-reference -title: DHCP IP Address Reference -description: 'A list of all IP addresses used for configurations that rely on DHCP by their data center.' -published: 2021-09-10 -keywords: [dhcp", "cloud firewall", "firewall", "networking"] -tags: ["linode platform","cloud manager"] -aliases: ['/quick-answers/linode-platform/dhcp-ip-address-reference/','/guides/dhcp-ip-address-reference/'] ---- - -In some cases, such as when configuring a firewall, you may need to know the IP addresses that Linode uses for our DHCP servers. Below is a list of all DHCP IP addresses categorized by their data center, to assist in any configuration you may need. - -## Fremont - -``` -173.255.254.129 -50.116.6.33 -66.175.222.121 -50.116.1.128 -173.255.245.39 -66.175.223.241 -``` - -## Dallas - -``` -50.116.29.9 -72.14.182.149 -50.116.18.11 -72.14.189.93 -66.228.55.26 -173.255.199.165 -``` - -## Atlanta - -``` -198.74.55.159 -50.116.46.210 -173.230.139.221 -192.155.93.9 -173.230.139.4 -74.207.234.190 -``` - -## Newark - -``` -97.107.131.49 -69.164.219.39 -66.228.42.172 -66.175.213.64 -97.107.132.48 -96.126.108.78 -``` - -## London - -``` -176.58.106.63 -151.236.222.62 -151.236.218.42 -176.58.111.6 -178.79.152.230 -178.79.187.246 -``` - -## Singapore - -``` -103.3.60.28 -103.3.60.29 -103.3.60.30 -103.3.60.31 -103.3.60.32 -103.3.60.33 -``` - -## Frankfurt - -``` -139.162.128.28 -139.162.128.29 -139.162.128.30 -139.162.128.31 -139.162.128.32 -139.162.128.33 -``` - -## Tokyo - -``` -139.162.65.28 -139.162.65.29 -139.162.65.30 -139.162.65.31 -139.162.65.32 -139.162.65.33 -``` - -## Toronto - -``` -172.105.0.50 -172.105.0.53 -172.105.0.52 -172.105.0.54 -172.105.0.51 -172.105.0.55 -``` - -## Mumbai - -``` -172.105.33.16 -172.105.33.17 -172.105.33.12 -172.105.33.13 -172.105.33.14 -172.105.33.15 -``` - -## Sydney - -``` -172.105.176.4 -172.105.166.4 -172.105.180.4 -172.105.170.4 -172.105.181.4 -172.105.171.4 -``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/disks-and-storage/add-disk.png b/docs/products/compute/compute-instances/guides/disks-and-storage/add-disk.png deleted file mode 100644 index 6a753aff37c..00000000000 Binary files a/docs/products/compute/compute-instances/guides/disks-and-storage/add-disk.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/disks-and-storage/compute-instance-power-off.png b/docs/products/compute/compute-instances/guides/disks-and-storage/compute-instance-power-off.png deleted file mode 100644 index a03ab71d6b5..00000000000 Binary files a/docs/products/compute/compute-instances/guides/disks-and-storage/compute-instance-power-off.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/disks-and-storage/compute-instance-summary-storage.png b/docs/products/compute/compute-instances/guides/disks-and-storage/compute-instance-summary-storage.png deleted file mode 100644 index b95e204e0a3..00000000000 Binary files a/docs/products/compute/compute-instances/guides/disks-and-storage/compute-instance-summary-storage.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/disks-and-storage/delete-disk.png b/docs/products/compute/compute-instances/guides/disks-and-storage/delete-disk.png deleted file mode 100644 index b0e09ba4d16..00000000000 Binary files a/docs/products/compute/compute-instances/guides/disks-and-storage/delete-disk.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/disks-and-storage/disk-resize.png b/docs/products/compute/compute-instances/guides/disks-and-storage/disk-resize.png deleted file mode 100644 index 77d9f85921b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/disks-and-storage/disk-resize.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/disks-and-storage/index.md b/docs/products/compute/compute-instances/guides/disks-and-storage/index.md deleted file mode 100644 index bb1ff03fa5b..00000000000 --- a/docs/products/compute/compute-instances/guides/disks-and-storage/index.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: "Manage Disks and Storage on a Compute Instance" -title_meta: "How to Manage Disks and Storage on a Compute Instance" -description: "A guide for understanding how local storage works on a Linode and for help performing common tasks on a Linode's disks." -published: 2021-04-30 -modified: 2023-01-18 -keywords: ["disks", "storage", "disk space"] -tags: ["linode platform","cloud manager"] -aliases: ['/guides/linode-disks/','/guides/disks-and-storage/','/guides/resize-a-linode-disk/','/products/tools/cloud-manager/guides/cloud-find-disks/'] ---- - -## Understanding Storage - -Every Compute Instance is equipped with persistent storage, the amount of which varies based on size and type of the instance's plan. This local storage is built entirely on enterprise-grade SSDs (solid state disks) and is extremely performant and reliable. - -### Disks - -The storage space on a Compute Instance can be allocated to individual *disks*. Disks are be used to store any data, including the operating system, applications, and files. Most instances are deployed with two disks. A large primary disk is used to store the Linux distribution, software, and data. There's also a much smaller swap disk, which is used if your instance runs out of memory. - -While two disks may be the default, a Compute Instance can be configured to have many more disks. These additional disks can serve a variety of purposes, including dedicated file storage or switching between entirely different Linux distributions. When multiple disks are added, [configuration profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) are used to determine the disks that are accessible when the instance is powered on, as well as which of those disks serves as the primary root disk. - -### Add Additional Storage - -The local storage capacity of a Compute Instance can only be increased by upgrading to a larger plan. This lets you increase the size of existing disks or add additional disks. [Block Storage](/docs/products/storage/block-storage/) Volumes can also be used to add additional storage, though these Volumes are separate from a Compute Instance's local disks and, for some use cases, may be less performant. - -## View Disks - -A Compute Instance's total storage space and disks can be viewed and managed from [Cloud Manager](https://cloud.linode.com). - -1. Log in to [Cloud Manager](https://cloud.linode.com), click the **Linodes** link in the sidebar, and select a Compute Instance from the list. - -1. Look within the **Summary** section of the instance's dashboard to view the total storage. - - ![Screenshot of a Compute Instance's total storage](compute-instance-summary-storage.png) - -1. Navigate to the **Storage** tab and find the **Disks** section, which lists all disks on the Compute Instance. - - ![Screenshot of a Compute Instance's list of disks](storage-tab.png) - -From here, a [disk can be created](#creating-a-disk) using the **Add a Disk** button. To take action on an disk, locate the disk within the **Disks** table and select from the list of actions, some or all of which may appear within the **ellipsis** menu: - -- **Rename:** Change the name of the disk. -- **Resize:** Increase or decrease the size of the disk. See [Resize a Disk](#resize-a-disk). -- **Imagize:** Create a Custom Image based on the disk. See [Capture an Image](/docs/products/tools/images/guides/capture-an-image/). -- **Clone:** Duplicate the disk, adding it to any Linode on your account. See [Clone a Disk](#clone-a-disk). -- **Delete:** Permanently delete's the disk and all of its data (cannot be undone). See [Delete a Disk](#delete-a-disk). - -## Create a Disk - -Each Compute Instance can have multiple disks. To create a new disk, follow the instructions below. - -{{< note >}} -If you wish to deploy an Image to a new disk, see the [Deploy an Image to a Disk on an Existing Compute Instance](/docs/products/tools/images/guides/deploy-image-to-existing-linode/) guide for complete instructions on creating the main disk, an optional swap disk, and a configuration profile. -{{< /note >}} - -1. Navigate to the **Storage** tab on the Compute Instance you wish to edit. See [View Disks](#view-disks). - -1. Click the **Add a Disk** button to show the **Add Disk** form. - - ![Screenshot of the Add a Disk button](add-disk.png) - - {{< note >}} - If this button is disabled, all of the instance's storage space has been allocated towards disks. Before continuing, [resize an existing disk](#resize-a-disk) or [upgrade the instance](/docs/products/compute/compute-instances/guides/resize/) to a larger plan. You'll want to confirm there is enough unallocated storage space to accommodate the desired size of the new disk. - {{< /note >}} - -1. Select from either the **Create Empty Disk** or **Create from Image** options. - - **Empty disks:** An empty disk can store additional data, be used as a swap disk, or it can be used to manually [install a custom distribution](/docs/guides/install-a-custom-distribution/). When creating an empty disk, select the desired *Filesystem*. In most cases, it's recommended to use the *ext4* filesystem. This ensures compatibility with our Backups service. If needed, *ext3* and *raw* disks are also available. If creating a swap disk, select the *swap* option. - - **Images:** Selecting an Image lets you deploy a [Distribution Image](https://www.linode.com/distributions/), a [Custom Image](/docs/products/tools/images/), or a Recovery Image to the new disk. When creating a disk based on an Image, select the *Image*, *Root Password*, and optionally add *SSH Keys*. - -1. Once an option is chosen, complete the remaining fields in the form. Enter the *Label* and the *Size* for the new disk. The *maximum size* of the disk is pre-populated and based on the Compute Instance's remaining storage allocation, though a smaller size can be entered if desired. - -1. Click the **Add** button to create the disk. The progress can be monitored from the new entry appearing for the disk within the Compute Instance's **Storage** page. - -Once a disk has been created, you will need to modify the existing configuration profile or add a new configuration profile. Specifically, the disk will need to be assigned to a device and optionally marked as the root device if this new disk will function as the primary boot disk. See the [Deploy an Image to a Disk on an Existing Compute Instance](/docs/products/tools/images/guides/deploy-image-to-existing-linode/) guide or the [Configuration Profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) guide for additional details. - -## Resize a Disk - -The size of a Compute Instance's disk can be increased or decreased as needed. When resizing, it's important to keep the following restrictions in mind: - -- The **maximum size** of a disk is equal to the current size of the disk and the remaining unallocated storage space on the Compute Instance. The maximum size is displayed underneath the **Size** field when resizing the disk. -- The **minimum size** of a disk is equal to the current disk usage within the filesystem. This number is not displayed in Cloud Manager. To determine how much space the files on the disk are using, run the command `df -h` within the Compute Instance's command line (through [SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) or [Lish](/docs/products/compute/compute-instances/guides/lish/)). -- **Raw disks** can only be resized to a larger disk. -- Disks with **custom partitions** cannot be resized. - -The following instructions cover how to resize a disk. For instructions regarding resizing a Compute Instance's plan (including downgrading to a smaller plan), see the [Resizing a Compute Instance](/docs/products/compute/compute-instances/guides/resize/) guide. - -1. Navigate to the **Storage** tab on the Compute Instance you wish to edit. See [View Disks](#view-disks). - -1. Click the **Power Off** button in the upper right of the page or within the **ellipsis** menu. Wait until the Compute Instance has been fully powered off before continuing to the next step. - - ![Screenshot of a Compute Instance Details page with the Power Off button highlighted](compute-instance-power-off.png) - -1. Within the **Disks** table, locate the disk you wish to resize and click the corresponding **Resize** button, which may also appear within the **ellipsis** menu. - - ![Screenshot of a Compute Instance Details page with the Resize disk button highlighted](disk-resize.png) - - {{< note >}} - If the **Resize** button is disabled, confirm that the Compute Instance has been fully powered off. - {{< /note >}} - -1. The **Resize Disk** form is displayed. In the **Size** field, enter the new size for the disk in megabytes. The new size of the disk needs to be within the maximum and minimize disk size discussed above. - -1. Click **Resize**. The progress can be monitored from the corresponding entry for the disk within the **Disks** table on the Compute Instance's **Storage** page. - -1. Once the disk has been successfully resized, click the **Power On** button to boot up the Linode. - -## Clone a Disk - -A disk can be duplicated onto the same Compute Instance or any other instance on the account. See [Cloning to an Existing Compute Instance](/docs/products/compute/compute-instances/guides/clone-instance/#clone-to-an-existing-compute-instance) for instructions. - -## Delete a Disk - -A disk can be deleted to remove it from the Compute Instance and free up additional storage space that can be used for other disks. - -{{< note type="alert" >}} -Deleting a disk is permanent and cannot be undone. Make sure all required data is properly backed up before continuing. -{{< /note >}} - -1. Navigate to the **Storage** tab on the Compute Instance you wish to edit. See [View Disks](#view-disks). - -1. Click the **Power Off** button in the upper right of the page or within the **ellipsis** menu. Before proceeding, wait until the Compute Instance has been fully powered off. - - ![Screenshot of a Compute Instance Details page with the Power Off button highlighted](compute-instance-power-off.png) - -1. Within the **Disks** table, locate the disk you wish to delete and click the corresponding **Delete** button, which may also appear within the **ellipsis** menu. - - ![Screenshot of the Delete button](delete-disk.png) - - {{< note >}} - If the **Delete** button is disabled, confirm that the Compute Instance has been fully powered off. - {{< /note >}} - -1. A confirmation dialog window will appear. Click the **Delete** button to confirm. - -1. The disk will be deleted within a few seconds. Click the **Power On** button to boot up the Compute Instance. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/disks-and-storage/storage-tab.png b/docs/products/compute/compute-instances/guides/disks-and-storage/storage-tab.png deleted file mode 100644 index 261fc69641d..00000000000 Binary files a/docs/products/compute/compute-instances/guides/disks-and-storage/storage-tab.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/distributions/index.md b/docs/products/compute/compute-instances/guides/distributions/index.md deleted file mode 100644 index b9835b96382..00000000000 --- a/docs/products/compute/compute-instances/guides/distributions/index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Choosing a Linux Distribution" -title_meta: "How to Choose a Linux Distribution" -description: "A list of all the Linux distributions provided on the Linode Platform and advice for how to select a distribution for your next project." -published: 2019-07-15 -modified: 2023-12-19 -keywords: ["distro", "distribution", "operating system", "Linux"] -tags: ["linux"] -aliases: ['/quick-answers/linux/choosing-a-distribution/','/guides/choosing-a-distribution/'] ---- - -## What is a Distribution? - -**Distributions**, also called *distros*, can be described as different operating system versions built on top of the underlying Linux Kernel to support a variety of use-cases and preferences. Since all distributions are built on Linux, most are similar and can be used interchangeably. Ubuntu, for example, is the most popular for it's ease of use and the ability to abstract smaller configuration tasks for you by default. Arch Linux, on the other hand, favors a high level of control over simplicity so that you can fine tune the way that your system functions. - -## List of Distributions Available on Linode - -Below is a full list of distributions. Once you've decided on a distribution, it's typically recommended to select the latest *LTS* (Long Term Support) release on systems intended for production use. This ensures that the system receives security updates for as long as possible. For release and version information, see [Supported Distributions](https://www.linode.com/distributions/). - -| Distribution | Description | -|------|-------| -| [AlmaLinux](https://almalinux.org/) | A nearly binary compatible derivative of RHEL intended to provide a long-term stable replacement for CentOS. Made by the same team as [CloudLinux OS](https://www.cloudlinux.com/) | -| [Alpine](https://alpinelinux.org/) | **Recommended for advanced Linux users only.** Lightweight distribution popular with [Docker](https://www.docker.com/) and security minded users. | -| [Arch](https://www.archlinux.org/) | **Recommended for advanced Linux users only.** Powerful and detail oriented, empowers more advanced users to fine tune their configuration. | -| [CentOS](https://www.centos.org) | Widely popular in professional and business settings while still being accessible to the average user. Versions 8 and earlier are binary equivalents of their corresponding RHEL (Red Hat Enterprise Linux) release. [CentOS Stream](https://www.redhat.com/en/topics/linux/what-is-centos-stream) has replaced CentOS and receives updates *just* ahead of the corresponding RHEL version. | -| [Debian](https://www.debian.org/) | A popular and stable distribution that's been actively maintained longer than most other distributions. | -| [Fedora](https://getfedora.org/) | Implements bleeding edge software. Fedora is similar though more advanced than CentOS and great for users who want to use the newest of the new and don't mind an added layer of complexity. | -| [Gentoo](https://www.gentoo.org/) | **Recommended for advanced Linux users only.** Advanced distribution designed for power users who want more control over their configuration and are comfortable compiling everything from source. | -| [Kali Linux](https://www.kali.org/) | **Recommended for advanced Linux users only.** A specialized and advanced Debian-based distribution designed for penetration testing and security auditing. This is a [minimum installation](https://www.kali.org/docs/troubleshooting/common-minimum-setup/), allowing you to install only the tools and metapackages you require. | -| [openSUSE Leap](https://www.opensuse.org/) | Provides powerful tools specific to system administration tasks. Starting with version 15.3, this distribution maintains parity with SLE (SUSE Linux Enterprise), making it a great choice for users of SLE or those looking to benefit from enterprise-grade stability. | -| [Rocky Linux](https://rockylinux.org/) | A nearly binary compatible derivative of RHEL intended to provide a long-term stable replacement for CentOS. Built by a community team led by the founder of the CentOS project. | -| [Slackware](http://www.slackware.com/) | **Recommended for advanced Linux users only.** The oldest actively maintained distribution. One of the most UNIX-like Linux distributions available. | -| [Ubuntu](https://ubuntu.com/) | Arguably the most popular Linux distribution, widely regarded for it's ease of use. The LTS versions of Ubuntu are featured heavily in Linode's guides and across the community. | - -{{< note >}} -Though this list covers most popular distributions, creating a Linode using a distribution that we do not provide is possible. Feel free to follow our [Custom Distribution Guide](/docs/guides/install-a-custom-distribution/) for more information. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/failover-bgp-frr/index.md b/docs/products/compute/compute-instances/guides/failover-bgp-frr/index.md deleted file mode 100644 index 91fa4f100d0..00000000000 --- a/docs/products/compute/compute-instances/guides/failover-bgp-frr/index.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: "Configuring IP Failover over BGP using FRR (Advanced)" -description: "Learn how to use Linode's IP Sharing feature to configure IP failover using FRR, a routing software that implements BGP" -published: 2022-01-11 -modified: 2022-04-28 -keywords: ['IP failover','elastic IP','frr','bgp'] -external_resources: -- '[FRRouting Documentation](http://docs.frrouting.org/en/latest/overview.html)' -aliases: ['/guides/ip-failover-bgp-frr/'] ---- - -{{< note >}} -Not all data centers support configuring IP failover over BGP. Review the [Configuring Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) to learn more about IP Sharing / IP failover availability within each data center. -{{< /note >}} - -This guide covers using the open source [FRRouting (FRR)](http://docs.frrouting.org/en/latest/overview.html#about-frr) tool to configure failover between two Linode Compute Instances. FRR is a routing service that uses BGP to monitor and fail over components in a high availability configuration. These instructions supplement the general [Configuring Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) guide and are intended as an advanced alternative to lelastic when more control and customization is needed. - -## Before You Begin - -Before following this guide, ensure the following has been done on each Compute Instance used within your IP failover strategy. - -1. Read through the [Configuring Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) guide to learn more about how failover is implemented within Linode Compute. - -1. Set the [hostname](/docs/products/compute/compute-instances/guides/set-up-and-secure/#configure-a-custom-hostname) and [update the hosts file](/docs/products/compute/compute-instances/guides/set-up-and-secure/#update-your-systems-hosts-file) for each Compute Instance. - -1. Verify Python3 is installed. See [FRR's official documentation](http://docs.frrouting.org/en/latest/installation.html#python-dependency-documentation-and-tests) to learn about FRR's Python dependencies. - -## Configure Failover - -These instructions enable you to configure failover using FRR, which is very configurable and can be used for advanced failover implementation. This guide depends on the general [Configuring Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) guide for many steps. - -To configure failover, complete each section in the order shown: - -1. [Configuring Failover on a Compute Instance > Create and Share the Shared IP Address](/docs/products/compute/compute-instances/guides/failover/#1-create-and-share-the-shared-ip-address) -1. For *each* Compute Instance: - - [Configuring Failover on a Compute Instance > Add the Shared IP to the Networking Configuration](/docs/products/compute/compute-instances/guides/failover/#2-add-the-shared-ip-to-the-networking-configuration) - - [Install FRR](#install-frr) - - [Configure FRR](#configure-frr) -1. [Configuring Failover on a Compute Instance > Test Failover](/docs/products/compute/compute-instances/guides/failover/#test-failover) - -## Install FRR - -This section provides instructions for installing FRR on Debian, Ubuntu, and CentOS systems through their native package managers. If you're using a different distribution or prefer to install FRR from source, follow [FRR's official installation instructions](http://docs.frrouting.org/en/latest/installation.html) to install FRR using git. - -### Debian and Ubuntu - -**Supported distributions:** *Ubuntu 20.04, 18.04, and 16.04 | Debian 11, 10, and 9* - -1. Set the FRR environment variable to the version you would like to install. The possible values are `frr-6`, `frr-7`, `frr-8`, and `frr-stable`, though it is recommended to use `frr-stable` to install the latest stable version. - - ```command - FRRVER="frr-stable" - ``` - - {{< note >}} - For more information on FRR versions, see the [FRR Debian repository](https://deb.frrouting.org/) and [FRR's Github Releases](https://github.com/FRRouting/frr/releases). - {{< /note >}} - -1. If you're running an older Debian-based system, you may need to install the packages below, which come default with most modern Debian-based distributions. - - ```command - sudo apt update && sudo apt install apt-transport-https gnupg - ``` - -1. Add FRR's GPG key: - - ```command - curl -s https://deb.frrouting.org/frr/keys.asc | sudo apt-key add - - ``` - -1. Add FRR's Debian repository to your system's source's list: - - ```command - echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | sudo tee -a /etc/apt/sources.list.d/frr.list - ``` - -1. Install FRR: - - ```command - sudo apt install frr frr-pythontools - ``` - -### CentOS/RHEL 7 and 8 - -**Supported distributions:** *CentOS Stream 9 (and 8), CentOS 8 (and 7), other RHEL derivatives (including AlmaLinux 8, and Rocky Linux 8), and Fedora.* - -1. Set the FRR environment variable to the version you would like to install. The possible values are `frr-6`, `frr-7`, `frr-8`, and `frr-stable`, though it is recommended to use `frr-stable` to install the latest stable version. - - ```command - FRRVER="frr-stable" - ``` - - {{< note >}} - For more information on FRR versions, see the [FRR RPM repository](https://rpm.frrouting.org/) and [FRR's Github Releases](https://github.com/FRRouting/frr/releases). - {{< /note >}} - -1. Add FRR's RPM repository to your system: - - - **CentOS/RHEL 8** - - ```command - curl -O https://rpm.frrouting.org/repo/$FRRVER-repo-1-0.el8.noarch.rpm - sudo dnf install ./$FRRVER* - - - **CentOS/RHEL 7** - - ```command - curl -O https://rpm.frrouting.org/repo/$FRRVER-repo-1-0.el7.noarch.rpm - sudo yum install ./$FRRVER* - ``` - -1. Install FRR: - - - **CentOS/RHEL 8** - - ```command - sudo dnf install frr frr-pythontools - ``` - - - **CentOS/RHEL 7** - - ```command - sudo yum install frr frr-pythontools - ``` - -## Configure FRR - -With FRR installed, you can now configure it to enable IP failover. - -1. FRR works using a variety of protocols. Since we're using FRR for its BGP support, the next step is to explicitly enable the `bgpd` daemon. Using a text editor of your choice, enable the `bgpd` daemon by updating its value to `yes` in the FRR daemons configuration file: - - ```file {title="/etc/frr/daemons"} - # The watchfrr and zebra daemons are always started. - # - bgpd=yes - ``` - -1. Gather the following information, which is required for the next step: - - - **Shared IP address** (`[SHARED_IP]`): The IPv4 address you shared or an address from the IPv6 range that you shared. You can choose any address from the IPv6 range. For example, within the range *2001:db8:e001:1b8c::/64*, the address `2001:db8:e001:1b8c::1` can be used. - - **Prefix** (`[PREFIX]`): For an IPv4 address, use `32`. For an IPv6 address, use either `56` or `64` depending on the size of the range you are sharing. - - **Protocol** (`[PROTOCOL]`): Use `ipv4` when sharing an IPv4 address and `ipv6` when sharing an IPv6 address. - - **Hostname** (`[HOSTNAME]`): The hostname defined on the Compute Instance you are configuring (ex: `atl-bgp-1`). - - **Role** (`[ROLE]`): The role of this Compute Instance within your failover strategy. - - `primary`: All requests are routed to this Compute Instance, provided it is accessible. - - `secondary`: If the `primary` instance fails, all requests are routed to this Compute Instance, provided it is accessible. - - **Data center ID** (`[DC_ID]`): The ID of your data center. See [IP Sharing Availability](/docs/products/compute/compute-instances/guides/failover/#ip-sharing-availability) for the corresponding ID. - -1. Edit the `/etc/frr/frr.conf` file and add the following lines. Ensure you replace any instances of `[SHARED_IP]`, `[HOSTNAME]`, `[ROLE]`, and `[DC_ID]` as outlined above. - - ```file {title="/etc/frr/frr.conf"} - hostname [HOSTNAME] - - router bgp 65001 - no bgp ebgp-requires-policy - coalesce-time 1000 - bgp bestpath as-path multipath-relax - neighbor RS peer-group - neighbor RS remote-as external - neighbor RS ebgp-multihop 10 - neighbor RS capability extended-nexthop - neighbor 2600:3c0f:[DC_ID]:34::1 peer-group RS - neighbor 2600:3c0f:[DC_ID]:34::2 peer-group RS - neighbor 2600:3c0f:[DC_ID]:34::3 peer-group RS - neighbor 2600:3c0f:[DC_ID]:34::4 peer-group RS - - address-family [PROTOCOL] unicast - network [SHARED_IP]/[PREFIX] route-map [ROLE] - redistribute static - exit-address-family - - route-map primary permit 10 - set community 65000:1 - route-map secondary permit 10 - set community 65000:2 - - ipv6 nht resolve-via-default - ``` - -1. Restart the FRR service: - - ```command - sudo systemctl restart frr - ``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/index.md b/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/index.md deleted file mode 100644 index cc586aab398..00000000000 --- a/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/index.md +++ /dev/null @@ -1,304 +0,0 @@ ---- -title: "Use Keepalived Health Checks with BGP-based Failover" -description: "This guide covers how to configure Keepalived with a simple health check and enable it to control lelastic, a simple BGP daemon created for the Linode platform." -published: 2022-10-19 -modified: 2022-11-28 -keywords: ['IP failover','keepalived','elastic IP'] -aliases: ['/guides/keepalived-with-bgp-failover/'] ---- - -[Keepalived](https://linux.die.net/man/8/keepalived) is one of the most commonly used applications that implements VRRP, a networking protocol that manages IP address assignment and ARP-based failover. It can be configured with additional health checks, such as checking the status of a service or running a custom script. When one of these health checks detects an issue, the instance changes to a fault state and failover is triggered. During these state transitions, additional task can be performed through custom scripts. - -The Linode platform is currently undergoing [network infrastructure upgrades](/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/), which affects IP address assignment and failover. Once this upgrade occurs for the data center and hardware that your Compute Instances reside on, VRRP software like Keepalived can no longer directly manage failover. However, other features of Keepalived can still be used. For instance, Keepalived can continue to run health checks or VRRP scripts. It can then be configured to interact with whichever BGP daemon your system is using to manage IP address assignment and failover. - -This guide covers how to configure Keepalived with a simple health check and enable it to control [lelastic](https://github.com/linode/lelastic), a BGP daemon created for the Linode platform. - -{{< note >}} -If you are migrating to BGP-based failover and currently have health checks configured with Keepalived, you can modify the steps in this guide to include your own settings. -{{< /note >}} - -## Configure IP Sharing and BGP Failover - -Before continuing, IP Sharing and BGP failover must be properly configured on both Compute Instances. To do this, follow the [Configuring Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) guide, which walks you through the process of configuring failover with lelastic. If you decide to use a tool other than lelastic, you will need to make modifications to some of the commands or code examples provided in some of the following sections. - -## Install and Configure Keepalived - -This section covers installing the keepalived software from your distribution's repository. See [Installing Keepalived](https://keepalived.readthedocs.io/en/latest/installing_keepalived.html) on the official documentation if you prefer to install it from source. - -1. Log in to your Compute Instance over SSH. See [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/) for assistance. - -1. Install keepalived by following the instructions for your system's distribution. - - **Ubuntu and Debian:** - - ```command - sudo apt update && sudo apt upgrade - sudo apt install keepalived - ``` - - **CentOS 8 Stream, CentOS/RHL 8 (including derivatives such as AlmaLinux 8 and Rocky Linux 8), Fedora:** - - ```command - sudo dnf upgrade - sudo dnf install keepalived - ``` - - **CentOS 7:** - - ```command - sudo yum update - sudo yum install keepalived - ``` - -1. Create and edit a new keepalived configuration file. - - ```command - sudo nano /etc/keepalived/keepalived.conf - ``` - -1. Enter the following settings for your configuration into this file. Use the example below as a starting point, replacing each item below with the appropriate values for your Compute Instance. For more configuration options, see [Configuration Options](/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/#configuration-options). - - - *$password*: A secure password to use for this keepalived configuration instance. The same password must be used for each Compute Instance you configure. - - - *$ip-a*: The IP address of this Compute Instance. - - - *$ip-b*: The IP address of the other Compute Instance. - - - *$ip-shared*: The Shared IP address. - - ```file {title="/etc/keepalived/keepalived.conf"} - vrrp_instance example_instance { - state BACKUP - nopreempt - interface eth0 - virtual_router_id 10 - priority 100 - advert_int 1 - authentication { - auth_type PASS - auth_pass $password - } - unicast_src_ip $ip-a - unicast_peer { - $ip-b - } - virtual_ipaddress { - $ip-shared/32 - } - } - ``` - - In the above configuration file, the state is set to *BACKUP* and the parameter `nopreempt` is included. When each Compute Instance uses these settings, failover is sticky. This means the Shared IP address remains routed to a Compute Instance until it enters a *FAULT* state, even if it is lower priority than the other Compute Instance. If you wish to prioritize one instance over the other, remove the `nopreempt` parameter, set one of the Compute Instances to a *MASTER* state, and adjust the `PRIORITY` parameter as desired. - -1. Enable and start the keepalived service. - - ```command - sudo systemctl enable keepalived - sudo systemctl start keepalived - ``` - -1. Perform these steps again on the other Compute Instance you would like to configure. - -## Create the Notify Script - -Keepalived can be configured to run *notification scripts* when the instance changes state (such as when entering a *MASTER*, *BACKUP* ,or *FAULT* state). These scripts can perform any action and are commonly used to interact with a service or modify network configuration files. For this guide, the scripts are used to update a log file and start or stop the BGP daemon that controls BGP failover on your Compute Instance. - -1. Create and edit the notify script. - - ```command - sudo nano /etc/keepalived/notify.sh - ``` - -1. Copy and paste the following bash script into the newly created file. If you wish to control a BGP daemon other than lelastic, replace `sudo systemctl restart lelastic` and `sudo systemctl stop lelastic` with the appropriate commands for your service. - - ```file {title="/etc/keepalived/notify.sh"} - #!/bin/bash - - keepalived_log='/tmp/keepalived.state' - function check_state { - local state=$1 - cat << EOF >> $keepalived_log - =================================== - Date: $(date +'%d-%b-%Y %H:%M:%S') - [INFO] Now $state - - EOF - if [[ "$state" == "Master" ]]; then - sudo systemctl restart lelastic - else - sudo systemctl stop lelastic - fi - } - - function main { - local state=$1 - case $state in - Master) - check_state Master;; - Backup) - check_state Backup;; - Fault) - check_state Fault;; - *) - echo "[ERR] Provided arguement is invalid" - esac - } - main $1 - ``` - -1. Make the file executable. - - ```command - sudo chmod +x /etc/keepalived/notify.sh - ``` - -1. Modify the keepalived configuration files so that the notify script is used for each state change. - - ```file {title="/etc/keepalived/keepalived.conf"} - vrrp_instance example_instance { - ... - notify_master "/etc/keepalived/notify.sh Master" - notify_backup "/etc/keepalived/notify.sh Backup" - notify_fault "/etc/keepalived/notify.sh Fault" - } - ``` - -1. Restart your BGP daemon and keepalived. - - ```command - sudo systemctl restart lelastic - sudo systemctl restart keepalived - ``` - -1. View the log file to see if it was properly created and updated. If the notification script was successfully used, this log file should have an accurate timestamp and the current state of the instance. - - ```command - cat /tmp/keepalived.state - ``` - - ```output - =================================== - Date: 14-Oct-2022 14:30:54 - [INFO] Now Master - ``` - -## Configure the Health Check (VRRP Script) - -The next step is to configure Keepalived with a health check so that it can failover if it ever detects an issue. This is the primary reason you may want to use Keepalived alongside a BGP daemon. Keepalived can be configured to track a file (`track_file`), track a process (`track_process`), or run a custom script so that you can preform more complex health checks. When using a script, like is shown in this example, the script should return a `0` to indicate success and return any other value to indicate a failure. When a failure is detected, the state is changed to *FAULT* and the notify script runs. - -This guide helps you configure a custom script that detects if a file is present or not. If the file is present, the script returns a 1 to indicate a failure. - -1. Create and edit the health check script. - - ```command - sudo nano /etc/keepalived/check.sh - ``` - -1. Copy the following script and paste it into the file. - - ```file {title="/etc/keepalived/check.sh"} - #!/bin/bash - - trigger='/etc/keepalived/trigger.file' - if [ -f $trigger ]; then - exit 1 - else - exit 0 - fi - ``` - -1. Make the file executable. - - ```command - sudo chmod +x /etc/keepalived/failover.sh - ``` - -1. Update the keepalived configuration file to define the VRRP script and enable your VRRP instance to use the script. The *interval* determines how often the script is run, *fall* determines how many times the script must return a failure before the state is changed to *FAULT*, and *rise* determines how many times a success is returned before the instance goes back to a *BACKUP* or *MASTER* state. - - ```file {title="/etc/keepalived/keepalived.conf"} - vrrp_script check_for_file { - script "/etc/keepalived/check.sh" - interval 5 - fall 2 - rise 2 - } - vrrp_instance example_instance { - ... - track_script { - check_for_file - } - ... - } - ``` - -1. Restart your BGP daemon and keepalived. - - ```command - sudo systemctl restart lelastic - sudo systemctl restart keepalived - ``` - -1. To test this health check, create the trigger file on whichever Compute Instance is in a *MASTER* state. - - ```command - touch /etc/keepalived/trigger.file - ``` - -1. Check the log file on that Compute Instance to make sure it enters a *FAULT* state. Once it does, check the log file on the other Compute Instance to verify that it enters a *MASTER* state. - - ```command - tail -F /tmp/keepalived.state - ``` - - ```output - =================================== - Date: 14-Oct-2022 14:30:54 - [INFO] Now Master - ``` - -## Additional Recommended Security Settings - -By default, Keepalived attempts to run the scripts using a *keepalived_script* user. If that doesn't exist, it uses the *root* user. Since running these scripts as the root user introduces many security concerns, this section discusses creating the *keepalived_script* user. - -1. Create a limited user account called *keepalived_script*. Since it is never used to log in, that feature can be disabled. - - ```command - sudo useradd -r -s /sbin/nologin -M keepalived_script - ``` - -1. Edit the `sudoers` file. - - ```command - visudo /etc/sudoers - ``` - -1. Within this file, grant permission for the new user to restart and stop the BGP daemon. The example below uses lelastic. - - ```file {title="/etc/sudoers"} - # User privilege specification - root ALL=(ALL:ALL) ALL - keepalived_script ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl restart lelastic, /usr/bin/systemctl stop lelastic - ``` - -1. Update the ownership of the `/etc/keepalived` directory (and all of the files within it). - - ```command - sudo chown -R keepalived_script:keepalived_script /etc/keepalived - ``` - -1. Once again, edit the Keepalived configuration file and paste the following snippet to the top of that file. - - ```file {title="/etc/keepalived/keepalived.conf"} - global_defs { - enable_script_security - } - ... - ``` - -## Example Configuration Files - -The links below contain complete working configuration files along with the specified example IP addresses. Please review them if you would like to see all of the recommended settings for each Compute Instance combined into a single file. - -- **Shared IP:** 203.0.113.57 (configured on the loopback interface) -- **Compute Instance A:** 192.0.2.173 ([keepalived.conf](keepalived.conf.a)) -- **Compute Instance B:** 198.51.100.49 ([keepalived.conf](keepalived.conf.b)) \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/keepalived.conf.a b/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/keepalived.conf.a deleted file mode 100644 index 282d8d30f26..00000000000 --- a/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/keepalived.conf.a +++ /dev/null @@ -1,34 +0,0 @@ -global_defs { - enable_script_security -} -vrrp_script check_for_file { - script "/etc/keepalived/check.sh" - interval 5 - fall 2 - rise 2 -} -vrrp_instance example_instance { - state BACKUP - nopreempt - interface eth0 - virtual_router_id 10 - priority 99 - advert_int 1 - track_script { - check_for_file - } - authentication { - auth_type PASS - auth_pass dT409gtNjMiS - } - unicast_src_ip 192.0.2.173 - unicast_peer { - 198.51.100.49 - } - virtual_ipaddress { - 203.0.113.57/32 dev lo - } - notify_master "/etc/keepalived/notify.sh Master" - notify_backup "/etc/keepalived/notify.sh Backup" - notify_fault "/etc/keepalived/notify.sh Fault" -} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/keepalived.conf.b b/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/keepalived.conf.b deleted file mode 100644 index ee621971c06..00000000000 --- a/docs/products/compute/compute-instances/guides/failover-bgp-with-keepalived/keepalived.conf.b +++ /dev/null @@ -1,34 +0,0 @@ -global_defs { - enable_script_security -} -vrrp_script check_for_file { - script "/etc/keepalived/check.sh" - interval 5 - fall 2 - rise 2 -} -vrrp_instance example_instance { - state BACKUP - nopreempt - interface eth0 - virtual_router_id 10 - priority 99 - advert_int 1 - track_script { - check_for_file - } - authentication { - auth_type PASS - auth_pass dT409gtNjMiS - } - unicast_src_ip 198.51.100.49 - unicast_peer { - 192.0.2.173 - } - virtual_ipaddress { - 203.0.113.57/32 dev lo - } - notify_master "/etc/keepalived/notify.sh Master" - notify_backup "/etc/keepalived/notify.sh Backup" - notify_fault "/etc/keepalived/notify.sh Fault" -} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/index.md b/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/index.md deleted file mode 100644 index d82dd9945c5..00000000000 --- a/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/index.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: "Configuring IP Failover using keepalived" -description: "Learn how to use Linode's IP Sharing feature to configure ARP-based IP failover using keepalived" -published: 2021-11-19 -modified: 2022-03-23 -keywords: ['networking','IP failover','keepalived'] -external_resources: -- '[keepalived Documentation](https://keepalived.readthedocs.io/en/latest/index.html)' -aliases: ['/guides/ip-failover-keepalived/','/guides/ip-failover-legacy-keepalived/'] ---- - -{{< note >}} -Not all data centers supports configuring IP failover through keepalived. Review the [Configuring IP Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) to learn more about IP Sharing / IP failover availability within each data center. -{{< /note >}} - -This guide covers using keepalived to configure IP failover with Linode Compute Instances. Keepalived is a routing service that can be used to monitor and fail over components in a high availability configuration. In a typical setup with IP failover, there is one **primary** Instance and one or more **secondary** Instances. - -- **Primary** (also called `MASTER` in keepalived): The primary Compute Instance is the one containing the IP address you'd like to configure for IP failover. -- **Secondary** (also called `BACKUP` in keepalived): The secondary Compute Instances are then configured to use that IP address in the event the primary Instance stops responding. - -## IP Failover Compatibility - -Linode's IP failover feature using keepalived is compatible with various IP address types in certain data centers. Review the list below to learn what types are available in your data center. - -- **Public and Private IPv4 addresses:** Can be configured in a supported data center using keepalived. You must first configure Linode's IP Sharing feature as outlined in the [Configuring IP Sharing](#configuring-ip-sharing) section. See [Configure Failover > IP Sharing Availability](/docs/products/compute/compute-instances/guides/failover/#configure-failover) for a list of data centers that support ARP-based failover. - -- **IPv6 addresses:** IP failover with IPv6 addresses is not currently supported. - -- **VLAN IP addresses:** Can be configured in a supported data center using keepalived. See [VLANs > Availability](/docs/products/networking/vlans/#availability) for a list of data centers. - -## Configuring IP Sharing - -Before using keepalived to configure IP failover for a public or private IPv4 address (not VLANs), you first need to use Linode's IP Sharing feature to share your IP address with other Compute Instances. To do so, follow the instructions within the **Configuring IP Sharing** section of the [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#configuring-ip-sharing) guide for *each secondary* Compute Instance. - -## Installing and Configuring keepalived - -This section covers installing the keepalived software from your distribution's repository. See [Installing Keepalived](https://keepalived.readthedocs.io/en/latest/installing_keepalived.html) on the official documentation if you prefer to install it from source. After installing keepalived, the next step is to configure it for your particular IP failover scenario. - -1. Log in to your Compute Instance over SSH. See [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/) for assistance. - -1. Install keepalived by following the instructions for your system's distribution. - - **Ubuntu and Debian:** - - ```command - sudo apt update && sudo apt upgrade - sudo apt install keepalived - ``` - - **CentOS 8 Stream, CentOS/RHL 8 (including derivatives such as AlmaLinux 8 and Rocky Linux 8), Fedora:** - - ```command - sudo dnf upgrade - sudo dnf install keepalived - ``` - - **CentOS 7:** - - ```command - sudo yum update - sudo yum install keepalived - ``` - -1. Start editing a new keepalived configuration file. - - ```command - sudo nano /etc/keepalived/keepalived.conf - ``` - -1. Enter the proper settings for your configuration into this file. Use the example below as a starting point, replacing the following items. For more configuration options, see [Configuration Options](#configuration-options). - - - Replace *$password* with a secure password to use for this configuration instance. You should use the same password for each Compute Instance you configure. - - - Replace *192.0.2.1* with the IP address for which you'd like to enable failover. - - {{< note >}} - If configuring IP failover on a VLAN IP, you likely need to change the *interface* value from `eth0` to `eth1`. See the **interface** item under [Configuration Options](#configuration-options) for help finding the Network Interface your VLAN may be using. - {{< /note >}} - - ```file {title="/etc/keepalived/keepalived.conf"} - vrrp_instance Instance1 { - state MASTER - interface eth0 - virtual_router_id 10 - priority 100 - advert_int 1 - authentication { - auth_type PASS - auth_pass $password - } - virtual_ipaddress { - 192.0.2.1 - } - } - ``` - -1. Enable and start the keepalived service. - - ```command - sudo systemctl enable keepalived - sudo systemctl start keepalived - ``` - -1. Perform these steps again on *each* secondary Compute Instance you would like to configure. You can use the same configuration file as provided above, but make the following adjustments: - - - Set the *state* value to `BACKUP` - - Set the *priority* value to `99` or less, depending on the failover order you prefer for the secondary Compute Instances. - -## Configuration Options - -When configuring keepalived, there are quite a few options that can be modified to accomplish various tasks and behaviors. This section covers some of them, though you can review the [Keepalived configuration synopsis](https://keepalived.readthedocs.io/en/latest/configuration_synopsis.html) page on the official documentation to learn more. - -- **vrrp_instance:** The VRRP instance definition block. Set this to whatever you'd like to call this block. To help with identification, this should be the same value across all Compute Instances that will share the specified IP address. -- **state:** Set this to `MASTER` if the IP address is natively assigned to this Compute Instance. When configuring it as a secondary failover server, use `BACKUP`. -- **interface:** Set this to whichever Network Interface the IP address is using or should use. To find the interface, log in to [Cloud Manager](https://cloud.linode.com/), click on the **Linodes** link on the left menu, select your Compute Instance, navigate to the **Configurations** tab and review the **Network Interfaces** column for your active configuration profile. For public IP addresses the interface is typically `eth0` and for vlan addresses the interface is likely `eth1`. - - ![The Configuration tab in Cloud Manager](ip-failover-keepalived-ethernet-configuration.png) - -- **priority:** When multiple secondary Compute Instances are configured for IP failover, this sets the order in which they will be used. -- **auth_pass:** Set the password used by keepalived for failover synchronization. This should be used across all Compute Instances that will share the specified IP address. -- **virtual_ipaddress:** This block defines which IP address is configured for IP failover. Set this to the IP address you'd like to use. - -## Testing the IP Failover Functionality - -1. Power off the *primary* Compute Instance. - -1. If you've configured IP failover for a public IP address, ping the IP address on your local machine. If you've configured IP failover on a private network, such as a VLAN, ping the IP address from another machine on that network. - - ```command - ping 192.0.2.1 - ``` - - If IP failover is successfully configured, the output should be similar to the following (once the primary Compute Instance has fully powered off): - - ```output - 64 bytes from 192.0.2.1: icmp_seq=3310 ttl=64 time=0.373 ms - ``` - - If you are instead receiving output telling you that the host is unreachable, IP failover likely hasn't been successfully configured. - - ```output - From 192.0.2.1 icmp_seq=3293 Destination Host Unreachable - ``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/ip-failover-keepalived-ethernet-configuration.png b/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/ip-failover-keepalived-ethernet-configuration.png deleted file mode 100644 index bf7cc670d3f..00000000000 Binary files a/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/ip-failover-keepalived-ethernet-configuration.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/failover/index.md b/docs/products/compute/compute-instances/guides/failover/index.md deleted file mode 100644 index a5e825fd593..00000000000 --- a/docs/products/compute/compute-instances/guides/failover/index.md +++ /dev/null @@ -1,289 +0,0 @@ ---- -title: "Configure Failover on a Compute Instance" -description: "This guide discusses how to enable failover on a Linode Compute Instance through using our IP Sharing feature with software such as keepalived or FRR." -published: 2022-03-23 -modified: 2024-06-20 -keywords: ['IP failover','IP sharing','elastic IP'] -aliases: ['/guides/ip-failover/'] -tags: ["media"] ---- - -In cloud computing, *failover* is the concept of rerouting traffic to a backup system should the original system become inaccessible. Linode Compute Instances support failover through the [IP Sharing](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#configuring-ip-sharing) feature. This allows two Compute Instances to share a single IP address, one serving as the *primary* and one serving as the *secondary*. If the primary Compute Instance becomes unavailable, the shared IP address is seamlessly routed to the secondary Compute Instance (fail*over*). Once the primary instance is back online, the IP address route is restored (fail*back*). - -## Why Should I Implement Failover? - -When hosting web-based services, the total uptime and availability of those services should be an important consideration. There’s always a possibility that your Compute Instance may become inaccessible, perhaps due to a spike in traffic, your own internal configuration issues, a natural disaster, or planned (or unplanned) maintenance. When this happens, any websites or services hosted on that instance would also stop working. Failover provides a mechanism for protecting your services against a single point of failure. - -The term *high availability* describes web application architectures that eliminate single points of failure, offering redundancy, monitoring, and failover to minimize downtime for your users. Adding a load balancing solution to your application’s infrastructure is commonly a key component of high availability. Managed solutions, like Linode’s NodeBalancers, combine load balancing with built-in IP address failover. However, self-hosted solutions like nginx or haproxy do not include built-in IP failover. Should the system running the load balancing software experience downtime, the entire application goes down. To prevent this, you need an additional server running your load balancing software and a mechanism to failover the IP address. On the Linode platform, this is accomplished through the IP Sharing feature and some additional software configuration. - -{{< note >}} -For many production applications, you may want to consider a load balancing tool that goes beyond basic failover. Linode's [NodeBalancers](/docs/products/networking/nodebalancers/) combines load balancing with built-in failover. If you are using self-hosted load balancing software, such as NGINX or [HAProxy](/docs/guides/how-to-use-haproxy-for-load-balancing/), on your own Compute Instances, you must use the IP Sharing feature to provide failover for IP addresses. -{{< /note >}} - -## IP Sharing Availability - -Within Linode's platform, failover is configured by first enabling [IP Sharing](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#configuring-ip-sharing) and then configuring software on both the primary and secondary Compute Instances. IP Sharing availability varies by data center. Review the list below to learn which data centers support IP Sharing and how it can be implemented. - -| Data center | IP Sharing support | Failover method | Software | ID | -| -- | -- | -- | -- | -- | -| Amsterdam (Netherlands) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 22 | -| Atlanta, GA (USA) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 4 | -| Chennai (India) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 25 | -| Chicago, IL (USA) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 18 | -| Dallas, TX (USA) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 2 | -| Frankfurt (Germany) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 10 | -| Fremont, CA (USA) | *Undergoing network upgrades* | - | - | 3 | -| Jakarta (Indonesia) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 29 | -| Los Angeles, CA (USA) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 30 | -| London (United Kingdom) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 7 | -| Madrid (Spain) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 24 | -| Miami, FL (USA) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 28 | -| Milan (Italy) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 27 | -| Mumbai (India) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 14 | -| Newark, NJ (USA) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 6 | -| Osaka (Japan) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 26 | -| Paris (France) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 19 | -| São Paulo (Brazil) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 21 | -| Seattle, WA, USA | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 20 | -| Singapore | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 9 | -| Stockholm (Sweden) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 23 | -| Sydney (Australia) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 16 | -| Tokyo (Japan) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 11 | -| Toronto (Canada) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 15 | -| Washington, DC (USA) | **Supported** | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 17 | - -{{< note >}} -- If a data center is marked as *undergoing network upgrades*, customers may encounter issues enabling IP Sharing and configuring failover. For Compute Instances that already have IP Sharing enabled, this feature should still function as intended. Once the network upgrades are completed, IP Sharing will be supported through the new method (BGP). Review documentation on our [planned network infrastructure upgrades](/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/) to learn more about these changes. -- IP failover for VLAN IP addresses is supported within every data center where VLANs are available. This feature does not depend on Linode's IP Sharing feature and depends on ARP-based failover software, such as keepalived. -{{< /note >}} - -## IP Address Failover Methods - -- **ARP-based (legacy method):** Supports IPv4. This method is currently being phased out. Since it is ARP-based, customers can configure it on their Compute Instances using software that supports VRRP (Virtual Router Redundancy Protocol), such as keepalived. Follow the instructions within the [keepalived](/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/) guide. - -- **BGP-based (new method):** Supports IPv4 (public and private) and IPv6 routed ranges (/64 and /56). This is currently being rolled out across our fleet in conjunction with our [planned network infrastructure upgrades](/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/). Since it is implemented using BGP routing, customers can configure it on their Compute Instances using lelastic (Linode’s own tool) or software like FRR, BIRD, or GoBGP. - - {{< note >}} - While keepalived is not used directly for failover, you can still make use of `vrrp_scripts` for health checks. You might do so if you wish to retain some of your existing keepalived functionality when migrating to a BGP-based failover method. - {{< /note >}} - -## Configure Failover - -The instructions within this guide enable you to configure failover using IP Sharing and the [lelastic](https://github.com/linode/lelastic) tool, a Linode provided tool based on GoBGP that automates much of the configuration. While lelastic enables many basic implementations of failover, you may want to consider using FRR or any other BGP client if your implementation is more advanced. See [Configuring IP Failover over BPG using FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/). - -{{< note >}} -- If your data center supports the legacy method (ARP), use the [Configuring IP Failover using keepalived](/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/) guide instead. That guide should also be used when setting up failover for VLAN IP addresses. -- If you've included your compute instances in a [placement group](/docs/products/compute/compute-instances/guides/placement-groups/), the group needs to use **Anti-affinity** as its Affinity Type, which spreads them out in a data center. The opposite Affinity Type, **Affinity** physically places compute instances close together, sometimes on the same host. This defeats the purpose of fail over. -{{< /note >}} - -To configure failover, complete each section that follows. - -### 1. Create and Share the Shared IP Address - -1. Log in to [Cloud Manager](https://cloud.linode.com/). - -1. Determine which two Compute Instances are to be used within your failover setup. They both must be located in the same data center. If you need to, create those Compute Instances now and allow them to fully boot up. - - {{< note >}} - To support this new BGP method of IP Sharing and failover, your Compute Instance must be assigned an IPv6 address. This is not an issue for most instances as an IPv6 address is assigned during deployment. If your Compute Instance was created *before* IPv6 addresses were automatically assigned, and you would like to enable IP Sharing within a data center that uses BGP-based failover, contact [Linode Support](https://www.linode.com/support/). - {{< /note >}} - -1. Disable Network Helper on both instances. For instructions, see the [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting) guide. - -1. Of the IP addresses assigned to your Compute Instances, determine which IP address you wish to use as the shared IP. You may want to add an additional IPv4 address _or_ IPv6 range (/64 or /56) to one of the instances, as this avoids temporary connectivity loss to applications that may be using your existing IP addresses. See the [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#adding-an-ip-address) guide for instructions. *Each additional IPv4 address costs $2 per month*. - -1. On the Compute Instance that *is not* assigned the IP address you selected in the previous step, add that IPv4 address or IPv6 range as a *Shared IP* using Linode's **IP Sharing** feature. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#configuring-ip-sharing) for instructions on configuring IP sharing. - - {{< note type=warning >}} - When IP Sharing is enabled for an IP address, all connectivity to that IP address is immediately lost *until* it is configured on [Lelastic](#install-and-configure-lelastic), [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/), or another BGP routing tool. This is not an issue when adding a new IP address, but should be considered if you are enabling IP Sharing on an existing IP address that is actively being used. - {{< /note >}} - -### 2. Add the Shared IP to the Networking Configuration - -Adjust the network configuration file on *each* Compute Instance, adding the shared IP address and restarting the service. - -1. Log in to the Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Add the shared IP address to the system's networking configuration file. Within the instructions for your distribution below, open the designated file with a text editor (such as [nano](/docs/guides/use-nano-to-edit-files-in-linux/) or vim) and add the provided lines to the end of that file. When doing so, make the following replacements: - - - **[shared-ip]**: The IPv4 address you shared or an address from the IPv6 range that you shared. You can choose any address from the IPv6 range. For example, within the range *2001:db8:e001:1b8c::/64*, the address `2001:db8:e001:1b8c::1` can be used. - - **[prefix]**: For an IPv4 address, use `32`. For an IPv6 address, use either `56` or `64` depending on the size of the range you are sharing. - - {{< note >}} - Review the configuration file and verify that the shared IP address does not already appear. If it does, delete associated lines before continuing. - {{< /note >}} - - - **Ubuntu 18.04 LTS and newer**: Using [netplan](https://netplan.io/). The entire configuration file is shown below, though you only need to copy the `lo:` directive. - - ```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} - network: - version: 2 - renderer: networkd - ethernets: - eth0: - dhcp4: yes - lo: - match: - name: lo - addresses: - - [shared-ip]/[prefix] - ``` - - To apply the changes, reboot the instance or run: - - ```command - sudo netplan apply - ``` - - - **Debian and Ubuntu 16.04 (and older)**: Using [ifupdown](https://manpages.debian.org/unstable/ifupdown/ifup.8.en.html). Replace *[protocol]* with `inet` for IPv4 or `inet6` for IPv6. - - ```file {title="/etc/network/interfaces"} - ... - # Add Shared IP Address - iface lo [protocol] static - address [shared-ip]/[prefix] - ``` - - To apply the changes, reboot the instance or run: - - ```command - sudo ifdown lo && sudo ip addr flush lo && sudo ifup lo - ``` - - If you receive the following output, you can safely ignore it: *RTNETLINK answers: Cannot assign requested address*. - - - **CentOS/RHEL**: Using [NetworkManager](https://en.wikipedia.org/wiki/NetworkManager). Since NetworkManager does not support managing the loopback interface, you need to first add a dummy interface named *shared* (or any other name that you wish). Instead of editing the file directly, the [nmcli](https://linux.die.net/man/1/nmcli) tool is used. - - ```command - nmcli con add type dummy ifname shared - ``` - - Next, add your Shared IP address (or addresses) and bring up the new interface. Run the commands below, replacing *[protocol]* with `ipv4` for IPv4 or `ipv6` for IPv6 (in addition to replacing *[shared-ip]* and *[prefix]*) - - ```command - nmcli con mod dummy-shared [protocol].method manual [protocol].addresses [shared-ip]/[prefix] - nmcli con up dummy-shared - ``` - - Since the loopback interface is not used, you must also add the `-allifs` option to the lelastic command (discussed in a separate section below). - -### 3. Install and Configure Lelastic - -Next, we need to configure the failover software on *each* Compute Instance. For this, the [lelastic](https://github.com/linode/lelastic) utility is used. For more control or for advanced use cases, follow the instructions within the [Configuring IP Failover over BPG using FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) guide instead of using lelastic. - -1. Log in to the Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Install lelastic by downloading the latest release from the GitHub repository, extracting the contents of the archived file, and moving the lelastic executable to a folder within your PATH. This same process can be used to update lelastic, making sure to restart the lelastic service (detailed in a later step) to complete the upgrade. Before installing or updating lelastic, review the [releases page](https://github.com/linode/lelastic/releases) and update the version variable with the most recent version number. - - ```command - version=v0.0.6 - curl -LO https://github.com/linode/lelastic/releases/download/$version/lelastic.gz - gunzip lelastic.gz - chmod 755 lelastic - sudo mv lelastic /usr/local/bin/ - ``` - - {{< note >}} - **CentOS/RHEL:** If running a distribution with SELinux enabled (such as most CentOS/RHEL distributions), you must also set the SELinux type of the file to `bin_t`. - - ```command - sudo chcon -t bin_t /usr/local/bin/lelastic - ``` - {{< /note >}} - -1. Next, prepare the command to configure BGP routing through lelastic. Replace *[id]* with the ID corresponding to your data center in the [table above](#ip-sharing-availability) and *[role]* with either `primary` or `secondary`. You do not need to run this command, as it is configured as a service in the following steps. - - ```command - lelastic -dcid [id] -[role] & - ``` - - **Additional options:** - - `-send56`: Advertises an IPv6 address as a /56 subnet (defaults to /64). This is needed when using an IP address from a IPv6 /56 routed range. - - `-allifs`: Looks for the shared IP address on all interfaces, not just the loopback interface. - - {{< note >}} - **CentOS/RHEL:** Since the Shared IP address is configured on the *eth0* interface for NetworkManager distributions (like CentOS/RHEL), you must add the `-allifs` option to the lelastic command. - {{< /note >}} - - See [Test Failover](#test-failover) to learn more about the expected behavior for each role. - -1. Create and edit the service file using either nano or vim. - - ```command - sudo nano /etc/systemd/system/lelastic.service - ``` - -1. Paste in the following contents and then save and close the file. Replace *$command* with the lelastic command you prepared in a previous step. - - ```file {title="etc/systemd/system/lelastic.service"} - [Unit] - Description= Lelastic - After=network-online.target - Wants=network-online.target - - [Service] - Type=simple - ExecStart=/usr/local/bin/$command - ExecReload=/bin/kill -s HUP $MAINPID - - [Install] - WantedBy=multi-user.target - ``` - -1. Apply the correct permissions to the service file. - - ```command - sudo chmod 644 /etc/systemd/system/lelastic.service - ``` - -1. Start and enable the lelastic service. - - ```command - sudo systemctl start lelastic - sudo systemctl enable lelastic - ``` - - You can check the status of the service to make sure it's running (and to view any errors) - - ```command - sudo systemctl status lelastic - ``` - - If you need to, you can stop and disable the service to stop failover functionality on the particular Compute Instance. - - ```command - sudo systemctl stop lelastic - sudo systemctl disable lelastic - ``` - -## Test Failover - -Once configured, the shared IP address is routed to the *primary* Compute Instance. If that instance becomes inaccessible, the shared IP address is automatically routed to the *secondary* instance (fail*over*). Once the primary instance is back online, the shared IP address is restored to that instance (fail*back*). - -If desired, both instances can be configured with the same role (both primary or both secondary). This prevents failback functionality, meaning that the shared IP address is not restored to the original system, even if the original system comes back online. - -You can test the failover functionality of the shared IP using the steps below. - -1. Using a machine other than the two Compute Instances within the failover configuration (such as your local machine), ping the shared IP address. - - ```command - ping [shared-ip] - ``` - - Review the output to verify that the ping is successful. The output should be similar to the following: - - ```output - 64 bytes from 192.0.2.1: icmp_seq=3310 ttl=64 time=0.373 ms - ``` - - {{< note >}} - If you are sharing an IPv6 address, the machine from which you are running the `ping` command must have IPv6 connectivity. Not all ISPs have this functionality. - {{< /note >}} - -1. Power off the *primary* Compute Instance or stop the lelastic service on that instance. Once the service has stopped or the instance has fully powered down, the shared IP address should be routed to the secondary instance. - - ```command - sudo systemctl stop lelastic - ``` - -1. Verify that the shared IP is still accessible by again running the ping command. If the ping is successful, failover is working as intended. diff --git a/docs/products/compute/compute-instances/guides/glish/glish-login-lightdm-select-desktop.png b/docs/products/compute/compute-instances/guides/glish/glish-login-lightdm-select-desktop.png deleted file mode 100644 index c3d79b4ed78..00000000000 Binary files a/docs/products/compute/compute-instances/guides/glish/glish-login-lightdm-select-desktop.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/glish/glish-login-lightdm.png b/docs/products/compute/compute-instances/guides/glish/glish-login-lightdm.png deleted file mode 100644 index d89de03de41..00000000000 Binary files a/docs/products/compute/compute-instances/guides/glish/glish-login-lightdm.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/glish/glish-tty1.png b/docs/products/compute/compute-instances/guides/glish/glish-tty1.png deleted file mode 100644 index e59586df14f..00000000000 Binary files a/docs/products/compute/compute-instances/guides/glish/glish-tty1.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/glish/glish-xfce-desktop.png b/docs/products/compute/compute-instances/guides/glish/glish-xfce-desktop.png deleted file mode 100644 index 11823a0f976..00000000000 Binary files a/docs/products/compute/compute-instances/guides/glish/glish-xfce-desktop.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/glish/index.md b/docs/products/compute/compute-instances/guides/glish/index.md deleted file mode 100644 index 812bdc598eb..00000000000 --- a/docs/products/compute/compute-instances/guides/glish/index.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: "Access Your Desktop Environment Using Glish (Linode Graphical Shell)" -title_meta: "Access Your Desktop Environment Using Glish" -description: "Use Glish (the Linode Graphical Shell) to access a desktop environment, like Xfce or Gnome, on your web browser." -published: 2015-08-28 -modified: 2022-10-12 -keywords: ["Console", "Shell", "glish", "desktop environment", "display manager"] -tags: ["linode platform","cloud manager"] -image: using-linode-glish-title.jpg -aliases: ['/platform/manager/using-the-linode-graphical-shell-glish-classic-manager/','/networking/using-the-graphic-shell-glish/','/networking/using-the-linode-graphical-shell-glish/','/platform/manager/using-the-linode-graphical-shell-glish/','/platform/using-the-linode-graphical-shell-glish/','/networking/use-the-graphic-shell-glish/','/guides/using-the-linode-graphical-shell-glish/','/guides/glish/'] ---- - -Glish is the graphical version of [Lish](/docs/products/compute/compute-instances/guides/lish/) (the Linode Shell). It lets you run a desktop environment on your Compute Instance and access it through Cloud Manager. - -{{< note >}} -Linode distribution images do not have any desktop environments pre-installed. While this guide provides instructions for installing Xfce on Debian, you can use any other desktop environment and distribution. Popular desktop environments on Linux include Gnome, KDE, MATE, and Xfce. -{{< /note >}} - -## Enable Glish - -By default, Glish is enabled on all Compute Instances as part of the distro helper configuration tool. There is no additional configuration needed. Glish works by accessing the `tty1` console over the virtual VGA device. - -If you have disabled distro helper on your Compute Instance's [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/), manually launch a [getty](https://en.wikipedia.org/wiki/Getty_(Unix)) on `tty1` using the command below. This command may vary depending on the installed distribution. - -```command -exec /sbin/getty -8 38400 tty1 & -``` - -{{< note >}} -If you are having issues accessing Weblish or Glish, you may be behind a restrictive local firewall. See [Lish Gateways](/docs/products/compute/compute-instances/guides/lish/#lish-gateways) for a list of data centers, their corresponding gateways, and the ports that are used. -{{< /note >}} - -## Install a Display Manager and Desktop Environment - -Before using Glish, a display manager and desktop environment must be installed on the Compute Instance. You can use any desktop environment that you wish, including [Gnome](https://www.gnome.org/), [KDE](https://kde.org/), [MATE](https://mate-desktop.org/), and [Xfce](https://www.xfce.org/). When choosing one, consider the size of your Compute Instance and the requirements of that desktop environment. For instance, Xfce and MATE are lightweight and can run on the smallest Compute Instance. When running Gnome, at least 2 GB of memory is recommended. For KDE, at least 4 GB of memory is recommended. - -{{< note >}} -The instructions below install Xfce4 and LightDM on Debian 11. You are not limited to using these applications or this distribution. If you wish to use other software, follow the instructions for that application. -{{< /note >}} - -1. Log in to your Compute Instance using [Lish](/docs/products/compute/compute-instances/guides/lish/) or [SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance). - -1. Follow all of the instructions within the [Set Up and Secure a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) guide, including updating your system, setting the timezone, and adding a limited user account. Most display managers do not allow root login by default. - - ```command - sudo apt update && sudo apt upgrade - ``` - -1. Install your preferred desktop environment. The command below installs Xfce, along with the optional enhancements package and a web browser. - - ```command - sudo apt install xfce4 xfce4-goodies dbus-x11 firefox-esr - ``` - -1. Install a display manager, which provides a graphical login screen. This lets you log in as your desired user and with your preferred desktop environment. There are many display managers available, including [LightDM](https://wiki.debian.org/LightDM), [GDM](https://wiki.debian.org/GDM) (Gnome Desktop Manager), [SDDM](https://wiki.debian.org/SDDM), and [Ly](https://github.com/fairyglade/ly). This guide uses LightDM. - - ```command - sudo install lightdm - ``` - -1. Set your new display manager as the system default. The command below opens up a prompt that lets you select your preference from all display manager's that are currently installed. - - ```command - sudo dpkg-reconfigure lightdm - ``` - -## Access Glish and the Linux Desktop - -1. Log in to [Cloud Manager](https://cloud.linode.com), click the **Linodes** link in the sidebar, and select your desired Compute Instance from the list. - -1. To open the console, click on the **Launch Console** button in the top right corner of the summary page. - - ![Launch the Console](launch-console-button.png) - -1. Log in to the *Weblish* prompt (or use SSH) and start the display manager. The example below is for LightDM. - - ```command - sudo systemctl start lightdm - ``` - -1. Once the display manager has started, select the **Glish** tab. - - ![Screenshot of the Lish Console with the Glish button](switch-to-glish.png) - -1. The display manager's login prompt should appear within the Glish tab. If you are using LightDM, it should look similar to the screenshot below. Enter your username and password. Since the root user is likely disabled by default, use a limited user account on your system. - - ![Screenshot of LightDM in Glish](glish-login-lightdm.png) - - If you have multiple desktop environments, you can select between them by using the configuration button in the top left of the screen. - - ![Select the desktop environment within LightDM](glish-login-lightdm-select-desktop.png) - - If your display manager is not working properly, you may still see the tty prompt as shown below. If this is the case, go back to *weblish* and troubleshoot. - - ![Screenshot of tty in Glish](glish-tty1.png) - -1. Once you are successfully logged in, your desktop environment should be visible. From here, you can use your mouse and keyboard to control your desktop. - - ![Screenshot of Xfce4 in Glish](glish-xfce-desktop.png) - - {{< note type="note" >}} - Glish does not offer copy and paste functionality. - {{< /note >}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/glish/launch-console-button.png b/docs/products/compute/compute-instances/guides/glish/launch-console-button.png deleted file mode 100644 index e879e645dc2..00000000000 Binary files a/docs/products/compute/compute-instances/guides/glish/launch-console-button.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/glish/switch-to-glish.png b/docs/products/compute/compute-instances/guides/glish/switch-to-glish.png deleted file mode 100644 index d95fcd52b46..00000000000 Binary files a/docs/products/compute/compute-instances/guides/glish/switch-to-glish.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/glish/using-linode-glish-title.jpg b/docs/products/compute/compute-instances/guides/glish/using-linode-glish-title.jpg deleted file mode 100644 index 30ddb97caac..00000000000 Binary files a/docs/products/compute/compute-instances/guides/glish/using-linode-glish-title.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/ifupdown/index.md b/docs/products/compute/compute-instances/guides/ifupdown/index.md deleted file mode 100644 index 79d824be338..00000000000 --- a/docs/products/compute/compute-instances/guides/ifupdown/index.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: "Network Configuration Using ifupdown" -description: "Learn how to configure networking using the ifupdown utility on Debian and older Ubuntu distributions" -published: 2022-05-25 -keywords: ["static", "ip address","ifupdown", "ifup", "ifdown"] -tags: ["networking","linode platform",] -external_resources: - - '[ifupdown documentation](https://manpages.debian.org/bullseye/ifupdown/interfaces.5.en.html)' -aliases: ['/guides/ifupdown/'] ---- - -The [ifupdown](https://manpages.debian.org/bullseye/ifupdown/ifup.8.en.html) package is an older network configuration software that's still used by Debian and older Ubuntu distributions (such as 16.04 LTS and earlier). - -{{< note >}} -Newer Ubuntu releases use Netplan in conjunction with systemd-networkd (or NetworkManager). Newer Debian releases also include systemd-networkd, though ifupdown is still the default. -{{< /note >}} - -{{< note >}} -This guide serves as a supplement to the main [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide. Please review that guide before making any configuration changes to your Compute Instance. -{{< /note >}} - -## Configuration Files - -Network configuration settings for ifupdown are managed inside of an [interfaces](https://manpages.debian.org/bullseye/ifupdown/interfaces.5.en.html) file or series of files. The main configuration is typically stored in `/etc/network/interfaces` and additional files are typically added within `/etc/network/interfaces.d/*` - -- **Default configuration file:** `/etc/network/interfaces` - -## Starter Configuration - -Here is an example of a typical configuration file for ifupdown. It statically defines the IPv4 address and allows SLAAC to configure the IPv6 address. - -```file {title="/etc/network/interfaces"} -auto lo -iface lo inet loopback - -source /etc/network/interfaces.d/* - -auto eth0 - -allow-hotplug eth0 - -iface eth0 inet6 auto -iface eth0 inet static - address 192.0.2.123/24 - gateway 192.0.2.1 -``` - -## Configuring IP Addresses Manually - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and review your Compute Instance's IP addresses. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/). Make a note of the following pieces of information or keep this page accessible so you can reference it later. - - - Public IPv4 address(es) and the associated IPv4 gateway - - Private IPv4 address (if one has been added) - - IPv6 SLAAC address and the associated IPv6 gateway - - IPv6 /64 or /56 routed range (if one has been added) - - DNS resolvers (if you want to use Linode's resolvers) - -1. Disable Network Helper on the Compute Instance so that it doesn't overwrite any of your changes on the next system reboot. For instructions, see the [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting) guide. This guide covers disabling Network Helper *globally* (for all Compute Instances on your account) or just for a single instance. - -1. Log in to the Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). You may want to consider using Lish to avoid getting locked out in the case of a configuration error. - -1. Perform any necessary configuration steps as outlined in the workflows below. You can edit your network configuration file using a text editor like [nano](/docs/guides/use-nano-to-edit-files-in-linux/) or [vim](/docs/guides/what-is-vi/). - - ```command - sudo nano /etc/network/interfaces - ``` - -1. Once you've edited the configuration file to fit your needs, you need to apply the changes or reboot the Compute Instance. To apply your changes with ifupdown, run the following commands: - - ```command - sudo ifdown eth0 && sudo ip addr flush eth0 && sudo ifup eth0 - ``` - -## Changing the Primary IPv4 Address - -To change the main IPv4 address configured on the system, set the `address` and `gateway` parameters under `iface eth0 inet static` to match the new IP address and its corresponding gateway IP address. - -```file {title="/etc/network/interfaces"} -... -iface eth0 inet static - address 192.0.2.123/24 - gateway 192.0.2.1 -``` - -## Configuring the Primary IPv4 Address through DHCP - -DHCP can be used to automatically configure your primary IPv4 address. The primary IPv4 address is defined as the IPv4 address assigned to your system that is in the first position when sorted numerically. To enable DHCP, modify or add an `iface` for your interface using `dhcp` instead of `static`. - -```file {title="/etc/network/interfaces"} -... -iface eth0 inet dhcp -# iface eth0 inet static -# address 192.0.2.123/24 -# gateway 192.0.2.1 -``` - -{{< note type="alert" >}} -When using DHCP, the IPv4 address configured on your system may change if you add or remove IPv4 addresses on your Compute Instance. If this happens, any tool or system using the original IPv4 address will no longer be able to connect. -{{< /note >}} - -To disable DHCP, switch `dhcp` back to `static` and manually add the relevant `address` and `gateway` lines. - -## Configuring Additional IPv4 Addresses - -Additional IP addresses can be configured by adding or modifying the `iface` group for the desired interface. Multiple `address` lines can be provided to configure more than one IP address. - -```file {title="/etc/network/interfaces"} -... -iface eth0 inet static - address [ip-address]/[prefix] -``` - -In the example above, make the following replacements: - -- **[ip-address]**: The IPv4 address that you wish to statically configure. -- **[prefix]**: The prefix is based on the type of IP address you are adding. It should be `24` for public IPv4 addresses and `17` for private IPv4 addresses. - -## Configuring the Primary IPv6 Address through SLAAC - -SLAAC is used to automatically configure your primary IPv6 address. Within ifupdown, you can configure an IPv6 SLAAC address by adding or modifying the `iface` for your interface and the `inet6` protocol, making sure to set it to `auto` instead of `static`. - -```file {title="/etc/network/interfaces"} -... -iface eth0 inet6 auto - accept_ra 2 -``` - -If you wish to disable IPv6 SLAAC addressing and instead statically configure your primary IPv6 address (not recommended), you can modify the `iface eth0 inet6` group by setting it to `static` and adding your primary IPv6 address within the `address` parameter (using the prefix of `/128`). - -```file {title="/etc/network/interfaces"} -... -iface eth0 inet6 static - address [ip-address]/128 - # accept_ra 2 -``` - -## Configuring Additional IPv6 Addresses - -If you have an IPv6 range assigned to your Compute Instance, addresses from this range can be configured within the `iface eth0 inet6` group, making sure it's set to `static` instead of `auto`. Multiple `address` lines can be provided to configure more than one IP address. - -```file {title="/etc/network/interfaces"} -... -iface eth0 inet6 static - address [ip-address]/[prefix] - autoconf 1 - accept_ra 2 -``` - -In the example above, make the following replacements: - -- **[ip-address]**: The IPv6 address that you wish to statically configure. You can choose any address within your available range. For example, within the range *2001:db8:e001:1b8c::/64*, the address `2001:db8:e001:1b8c::1` can be used. -- **[prefix]**: The prefix should either be `64` or `56` (depending on the size of your IPv6 range). - -The `autoconf` parameter (when set to `1`), allows the primary IPv6 address to be automatically configured through SLAAC, which is the preferred behavior for most cases. - -## Changing the DNS Resolvers - -DNS resolvers are the entities that resolve domain names to their corresponding IPv4 address. By default, the Compute Instance should be using the DNS resolvers for the data center in which it resides. You can change these through the `/etc/resolv.conf` file, setting the `nameserver` parameters to your preferred DNS resolvers. - -```file {title="/etc/resolv.conf"} -domain ip.linodeusercontent.com -search ip.linodeusercontent.com -nameserver 203.0.113.1 -nameserver 203.0.113.2 -nameserver 203.0.113.3 -... -``` - -In the above example, replace the IP addresses provided with the IP addresses of the DNS resolvers you wish to use. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/install-nvidia-cuda/index.md b/docs/products/compute/compute-instances/guides/install-nvidia-cuda/index.md deleted file mode 100644 index e661a7e6e37..00000000000 --- a/docs/products/compute/compute-instances/guides/install-nvidia-cuda/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "Install the NVIDIA CUDA Toolkit" -title_meta: "Install the NVIDIA CUDA Toolkit on GPU Compute Instances" -description: "This guide provides step-by-step instructions for installing the NVIDIA CUDA Toolkit and drivers on a GPU Compute Instance at Linode for your workloads." -published: 2022-01-21 -modified: 2023-06-21 -aliases: ['/products/compute/gpu/guides/install-nvidia-drivers-with-cuda/','/products/compute/gpu/guides/install-nvidia-drivers-manually/','/products/compute/gpu/guides/install-nvidia-driver-dependencies/','/products/compute/gpu/guides/install-nvidia-cuda/'] ---- - -To take advantage of the powerful parallel processing capabilities offered by GPU instances equipped with NVIDIA Quadro RTX cards, you first need to install NVIDIA's CUDA Toolkit. This guide walks you through deploying a GPU instance and installing the CUDA Toolkit. - -1. Deploy a GPU Compute Instance using [Cloud Manager](https://cloud.linode.com/), the Linode CLI, or the Linode API. It's recommended to follow the instructions within the following guides: - - - [Getting Started with Linode](/docs/products/platform/get-started/) - - [Securing Your Server](/docs/products/compute/compute-instances/guides/set-up-and-secure/) - - Be sure to select a distribution that's compatible with the NVIDIA CUDA Toolkit. Review NVIDIA's [System Requirements](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements) to learn which distributions are supported. - -1. Upgrade your system and install the kernel headers and development packages for your distribution. See NVIDIA's [Pre-installation Actions](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions) for additional information. - - - **Ubuntu and Debian** - - ```command - sudo apt update && sudo apt upgrade - sudo apt install build-essential linux-headers-$(uname -r) - ``` - - - **CentOS/RHEL 8, AlmaLinux 8, Rocky Linux 8, and Fedora** - - ```command - sudo dnf upgrade - sudo dnf install gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) - ``` - - - **CentOS/RHEL 7** - - ```command - sudo yum update - sudo yum install gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) - ``` - -1. Install the NVIDIA CUDA Toolkit software that corresponds to your distribution. - - 1. Navigate to the [NVIDIA CUDA Toolkit Download](https://developer.nvidia.com/cuda-downloads) page. This page provides the installation instructions for the latest version of the CUDA Toolkit. - - 1. Under the **Select Target Platform** section, choose the following options: - - - **Operating System:** Linux - - **Architecture:** x86_64 - - **Distribution:** Select the distribution you have installed on your GPU instance (such as Ubuntu). - - **Version:** Select the distribution version that's installed (such as 22.04). - - **Installer Type:** Select from one of the following methods: - - **rpm (local)** or **deb (local):** Stand-alone installer that contains dependencies. This is a much larger initial download size but is recommended for most users. - - **rpm (network)** or **deb (network):** Smaller initial download size as dependencies are managed separately through the package management system. Some distributions may not contain the dependencies needed and you may receive an error when installing the CUDA package. - - **runfile (local):** Installs the software outside of your package management system, which is typically not desired or recommended. - - {{< note type="warning" >}} - If you decide to use the runfile installation method, you may need to install gcc and other dependencies before running the installer file. In addition, you also need to disable any existing nouveau drivers that installed on most distributions by default. The runfile method is not covered in this guide. Instead, reference NVIDIA's runfile installation instructions for [Ubuntu](https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#id8), [Debian](https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#id10), [CentOS](https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#runfile-installer), [Fedora](https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#id2), or [openSUSE](https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#id6). - {{< /note >}} - - ![Screenshot of the CUDA Toolkit Downloads page](nvidia-cuda-instructions.png) - - 1. The **Download Installer** (or similar) section should appear and display a list of commands needed to download and install the CUDA Toolkit. Run each command listed there. - - 1. Reboot the GPU instance after all the commands have completed successfully. - - 1. Run `nvidia-smi` to verify that the NVIDIA drivers and CUDA Toolkit are installed successfully. This command should output details about the driver version, CUDA version, and the GPU itself. - -1. You should now be ready to run your CUDA-optimized workloads. You can optionally download NVIDIA's [CUDA code samples](https://github.com/nvidia/cuda-samples) and review CUDA's [Programming Guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html) to learn more about developing software to take advantage of a GPU instance. - -**Optional**: After you have completed the installation, you can [capture a custom image of the Compute Instance](/docs/products/tools/images/guides/capture-an-image/) and use it the next time you need to deploy a GPU instance. diff --git a/docs/products/compute/compute-instances/guides/install-nvidia-cuda/nvidia-cuda-instructions.png b/docs/products/compute/compute-instances/guides/install-nvidia-cuda/nvidia-cuda-instructions.png deleted file mode 100644 index 22b290d6121..00000000000 Binary files a/docs/products/compute/compute-instances/guides/install-nvidia-cuda/nvidia-cuda-instructions.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/ip-sharing-atlanta/index.md b/docs/products/compute/compute-instances/guides/ip-sharing-atlanta/index.md deleted file mode 100644 index 65fc554a82f..00000000000 --- a/docs/products/compute/compute-instances/guides/ip-sharing-atlanta/index.md +++ /dev/null @@ -1,301 +0,0 @@ ---- -title: "Enable IP Sharing (Elastic IPs) in Atlanta through FRR" -description: "This guide provides Linode users with steps to manually enable an Elastic IP on a Linode. This is meant to support users that are currently using Linode IP Sharing and need an intermediary replacement when migrating to a Next Generation Network data center." -published: 2020-06-02 -modified: 2022-01-11 -keywords: ['networking','Elastic IP','keywords','and key phrases'] -noindex: true -_build: - list: false -external_resources: -- '[FRRouting Documentation](http://docs.frrouting.org/en/latest/overview.html)' -aliases: ['/platform/manager/manually-enable-elastic-ip-on-your-linode/','/guides/manually-enable-elastic-ip-on-your-linode/','/guides/ip-sharing-atlanta/'] ---- - -The Atlanta data center was upgraded in April of 2021 to improve performance and expand product availability (see the [Linode Atlanta Data Center Upgrades Completed](https://www.linode.com/blog/linode/linode-atlanta-data-center-upgrades-completed/) blog post). As part of this upgrade, the [IP Sharing](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#configuring-ip-sharing) feature was impacted and no longer functions as it did before. Customers that currently use this feature can follow this guide to manually enable IP Sharing (also called *Elastic IPs*) through the open source [FRRouting (FRR)](http://docs.frrouting.org/en/latest/overview.html#about-frr) tool. This allows two Linode Compute Instances to share a single IP address, one serving as the primary and one serving as the secondary. If the primary Compute Instance becomes unavailable, the elastic IP will seamlessly failover to the secondary Compute Instance. - -{{< note >}} -This guide discusses a temporary workaround specific to the Atlanta data center. Future planned network upgrades may impact this feature again and may require additional configuration. -{{< /note >}} - -## Before You Begin - -1. Before beginning the process outlined in this guide, make sure that you have received an IPv4 address(es) from Linode Support to use as your Elastic IP(s). To request an additional IPv4 address, [open a new support ticket from Cloud Manager](/docs/products/platform/get-started/guides/support/#contact-customer-support). - -1. Ensure you have set the [hostname](/docs/products/compute/compute-instances/guides/set-up-and-secure/#configure-a-custom-hostname) and have updated the [hosts file](/docs/products/compute/compute-instances/guides/set-up-and-secure/#update-your-systems-hosts-file) on your Compute Instances. - -1. Ensure Python 3 is installed on your system. See [FRR's official documentation](http://docs.frrouting.org/en/latest/installation.html#python-dependency-documentation-and-tests) to learn about FRR's Python dependencies. - -1. [Disable Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting) on the Elastic IP Linodes and reboot them. - -## Install FRR - -This section provides instructions for installing FRR on Debian, Ubuntu, and CentOS systems through their native package managers. If you're using a different distribution or prefer to install FRR from source, follow [FRR's official installation instructions](http://docs.frrouting.org/en/latest/installation.html) to install FRR using git. - -### Ubuntu and Debian - -**Supported distributions:** *Ubuntu 20.04, 18.04, and 16.04 | Debian 11, 10, and 9* - -1. Install the package dependencies needed to securely install FRR on your system: - - ```command - sudo apt-get install apt-transport-https gnupg - ``` - -1. Add FRR's GPG key: - - ```command - curl -s https://deb.frrouting.org/frr/keys.asc | sudo apt-key add - - ``` - -1. Set the FRR environment variable as `frr-stable` to install the latest FRR release. Specific releases can also be targeted by setting the variable to `frr-8`, `frr-7`, `frr-6` (see [FRR Debian Repository](https://deb.frrouting.org/) for more details). - - ```command - FRRVER="frr-stable" - ``` - -1. Add FRR's Debian repository to your system's source's list: - - ```command - echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | sudo tee -a /etc/apt/sources.list.d/frr.list - ``` - -1. Install the FRR package: - - ```command - sudo apt update && sudo apt install frr frr-pythontools - ``` - -### CentOS/RHEL - -**Supported distributions:** *CentOS Stream 9 (and 8), CentOS 8 (and 7), other RHEL derivatives (including AlmaLinux 8, and Rocky Linux 8), and Fedora.* - -1. Set the FRR environment variable as `frr-stable` to install the latest FRR release. Specific releases can also be targeted by setting the variable to `frr-8`, `frr-7`, `frr-6` (see [FRR RPM Repository](https://rpm.frrouting.org/) for more details). - - ```command - FRRVER="frr-stable" - ``` - -1. Download the FRR's RPM repository. - - **CentOS/RHEL 8** - - ```command - curl -O https://rpm.frrouting.org/repo/$FRRVER-repo-1-0.el8.noarch.rpm - ``` - - **CentOS/RHEL 7** - - ```command - curl -O https://rpm.frrouting.org/repo/$FRRVER-repo-1-0.el7.noarch.rpm - ``` - -1. Install the repository. - - ```command - sudo yum install ./$FRRVER* - ``` - -1. Install the FRR package. - - ```command - sudo yum install frr frr-pythontools - ``` - -## Enable bgpd - -Enable the Border Gateway Protocol (BGP) daemon on your system. - -1. Using a text editor of your choice, enable the `bgpd` daemon by updating its value to `yes` in `/etc/frr/daemons` (the FRR daemons configuration file): - - ```file {title="/etc/frr/daemons"} - # The watchfrr and zebra daemons are always started. - # - bgpd=yes - ``` - -1. Restart the FRR service: - - ```command - sudo systemctl restart frr.service - ``` - -## Configure FRR - -With FRR installed, you can now apply the required configurations to enable Elastic IP(s). When following the steps within this section, you need to have the following pieces of information: - -- **Elastic IP address** (`[ELASTIC_IP]`): The elastic IP address assigned to your Linode. If you do not yet have this, contact Linode support. -- **Hostname** (`[HOSTNAME]`): The hostname defined on your Linode (ex: `atl-bgp-1.example.com`). -- **Gateway IP** (`[DEFAULT_GW_IPV4]`: This is the Linode's IPv4 address (non-Elastic IP address), which determines the `peer-group HOST` setting. Enter the first 3 octets of the Linode's IPv4 address followed by a `1`. For example, if the Linode's IPv4 address is `192.0.2.0`, the value to enter is `192.0.2.1`. -- **Role** (`[ROLE]`): The role of the Linode's elastic IP address. - - `primary`: All requests are routed to this Linode's Elastic IP address, as long as the Linode is running. - - `secondary`: If the `primary` Linode fails, all requests are routed to this Linode's Elastic IP address, as long as the Linode is running. - -1. The template below includes the FRR configuration. Ensure you replace any instances of `[ELASTIC_IP]`, `[HOSTNAME]`, `[ROLE]`, and `[DEFAULT_GW_IPV4]` as outlined above. Store the template with your replaced values somewhere that you can easily access later. In the next step, you copy the contents of the template and paste them into the [VTY interactive shell](https://docs.frrouting.org/en/latest/vtysh.html). - - ```file {title="~/elastic.conf"} - hostname [HOSTNAME] - - router bgp 65045 - no bgp ebgp-requires-policy - coalesce-time 1000 - bgp bestpath as-path multipath-relax - neighbor HOST peer-group - neighbor HOST remote-as external - neighbor HOST capability extended-nexthop - neighbor [DEFAULT_GW_IPV4] peer-group HOST - address-family ipv4 unicast - network [ELASTIC_IP]/32 route-map [ROLE] - redistribute static - exit-address-family - route-map primary permit 10 - set large-community 63949:1:1 - route-map secondary permit 10 - set large-community 63949:1:2 - ``` - -1. Run the VTY shell: - - ```command - sudo vtysh - ``` - -1. Enter configuration mode: - - ```command - conf t - ``` - -1. Copy the contents of your template configuration file and paste them into the VTY shell. - -1. Tell the VTY shell that you are done entering your configurations: - - ```command - end - ``` - -1. Write your configurations to VTY: - - ```command - write - ``` - -1. Verify that the configurations you entered were correctly written by showing VTY's running configuration: - - ```command - show running-config - ``` - -1. Exit out of the VTY shell: - - ```command - q - ``` - -1. Configure the Linode's interface(s) with the Elastic IP: - - **Debian and Ubuntu (18.04 and 16.04)** - - Edit your Linode's `/etc/network/interfaces` file with the following entries. Replace `[ELASTIC_IP]` with the Elastic IPv4 address: - - ```file {title="/etc/network/interfaces"} - up ip addr add [ELASTIC_IP]/32 dev eth0 label eth0 - down ip addr del [ELASTIC_IP]/32 dev eth0 label eth0 - ``` - - If you configured more than one Elastic IP on your Linode, you can add additional interface entries to your network interfaces configuration file as follows: - - ```file {title="/etc/network/interfaces"} - up ip addr add [ELASTIC_IP]/32 dev eth0 label eth0 - down ip addr del [ELASTIC_IP]/32 dev eth0 label eth0 - up ip addr add [ELASTIC_IP]_2/32 dev eth0 label eth0 - down ip addr del [ELASTIC_IP]_2/32 dev eth0 label eth0 - ``` - - **Ubuntu 20.04** - - Edit your Linode's `/etc/systemd/network/05-eth0.network` file by adding an `Address` entry for the Elastic IP. Replace `[ELASTIC_IP]` with the Elastic IPv4 address: - - ```file {title="/etc/systemd/network/05-eth0.network"} - [Match] - Name=eth0 - ... - Address=[ELASTIC_IP]/32 - ``` - - If you configured more than one Elastic IP on your Linode, you can add additional interface entries to your network interfaces configuration file as follows: - - ```file {title="/etc/network/interfaces"} - Address=[ELASTIC_IP]/32 - Address=[ELASTIC_IP]_2/32 - ``` - - **CentOS/RHEL** - - Edit your Linode's `/etc/sysconfig/network-scripts/ifcfg-eth0` file with the following entry. Replace `[ELASTIC_IP]` with the Elastic IPv4 address: - - ```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} - IPADDR1=[ELASTIC_IP] - PREFIX1="32" - ``` - - If you configured more than one Elastic IP on your Linode, you can add additional interface entries to your network interfaces configuration file as follows: - - ```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} - IPADDR1=[ELASTIC_IP] - PREFIX1="32" - - IPADDR2=[ELASTIC_IP]_2 - PREFIX2="32" - ``` - -1. Apply the `eth0` network interface configuration: - - **Debian, Ubuntu (18.04 and 16.04), and CentOS/RHEL** - - ```command - sudo ifdown eth0 && sudo ifup eth0 - ``` - - **Ubuntu 20.04** - - ```command - systemctl restart systemd-networkd - ``` - -1. Ensure that your network interface configurations have been applied as expected: - - ```command - ip a | grep inet - ``` - - You should see a similar output: - - ```output - inet 127.0.0.1/8 scope host lo - inet6 ::1/128 scope host - inet 192.0.2.0/24 brd 192.0.2.255 scope global dynamic eth0 - inet 203.0.113.0/32 scope global eth0 - inet6 2600:3c04::f03c:92ff:fe7f:5774/64 scope global dynamic mngtmpaddr - inet6 fe80::f03c:92ff:fe7f:5774/64 scope link - ``` - -1. Restart the FRR service: - - ```command - sudo systemctl restart frr.service - ``` - -### Test Elastic IPs - -Depending on how you configured your Linode(s) and Elastic IP(s), testing steps may vary. In general, you can use the `ping` command to test sending packets to your configured Elastic IP(s) from a separate Linode, your workstation, or any other computer/server: - -```command -ping [ELASTIC_IP] -``` - -For example, if you have two Linodes configured with the same Elastic IP: - -- Ping the Elastic IP when both Linodes are up. The packets should be received by the primary Linode. You can monitor ping traffic on the Linode by [inspecting icmp packets with the tcpdump command](https://danielmiessler.com/study/tcpdump/#protocol). - -- Shut down the primary Linode and ping the Elastic IP. The packets should be received by the secondary Linode. You can monitor ping traffic on the Linode by [inspecting icmp packets with the tcpdump command](https://danielmiessler.com/study/tcpdump/#protocol). \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/ipv6/an-overview-of-ipv6-on-linode-title-graphic.jpg b/docs/products/compute/compute-instances/guides/ipv6/an-overview-of-ipv6-on-linode-title-graphic.jpg deleted file mode 100644 index 8dd3c9f73c5..00000000000 Binary files a/docs/products/compute/compute-instances/guides/ipv6/an-overview-of-ipv6-on-linode-title-graphic.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/ipv6/index.md b/docs/products/compute/compute-instances/guides/ipv6/index.md deleted file mode 100644 index 44dbe00bc7d..00000000000 --- a/docs/products/compute/compute-instances/guides/ipv6/index.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: "An Overview of IPv6 on Linode" -description: "This guide is a brief overview of IPv6 support on Linode, including how to find your IPv6 address, requesting additional IPs, and managing IPs via Cloud Manager." -published: 2011-05-03 -modified: 2024-07-08 -keywords: ["ipv6 networking", "IP configuration"] -aliases: ['/networking/an-overview-of-ipv6-on-linode/','/networking/how-to-enable-native-ipv6-on-linux/','/networking/native-ipv6-networking/','/networking/linode-network/an-overview-of-ipv6-on-linode/','/guides/an-overview-of-ipv6-on-linode/'] -external_resources: - - '[Understanding IP Addressing](http://www.ripe.net/internet-coordination/press-centre/understanding-ip-addressing)' - - '[IPv6 and IPv4 CIDR Chart (PDF)](https://www.ripe.net/about-us/press-centre/ipv6-chart_2015.pdf)' -tags: ["networking","linode platform"] -image: an-overview-of-ipv6-on-linode-title-graphic.jpg ---- - -All Compute Instances are created with one IPv6 address, which is acquired by [*Stateless Address Autoconfiguration*](https://en.wikipedia.org/wiki/IPv6#Stateless_address_autoconfiguration_(SLAAC)) (SLAAC). IPv6 is fully enabled on all of Linode's supported operating systems and uses hardware-based addressing. - -Linode does not offer private IPv6 address allocations. Our IPv6 accounting was designed so that local IPv6 traffic does not count against your [network transfer quota](/docs/products/platform/get-started/guides/network-transfer/), so you can use your default IPv6 address as if it were a private IP address. - -{{< note >}} -In order for your Compute Instance to receive its SLAAC address, it must respond to IPv6's ping protocol. - -Please be sure to allow ICMPv6 in your [firewall](/docs/products/compute/compute-instances/guides/set-up-and-secure/#configure-a-firewall). For example, in `iptables`, you can issue the following commands: - -```command -ip6tables -A INPUT -p icmpv6 -j ACCEPT -ip6tables -A FORWARD -p icmpv6 -j ACCEPT -``` -{{< /note >}} - -## How to Find Your IPv6 Address - -You can find your Compute Instance's IPv6 address using Cloud Manager or the `ip` tool with the Linux Terminal. - -### Using Cloud Manager - -See the [Viewing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#viewing-ip-addresses) section of the Managing IP Addresses guide. - -### Linux Terminal - -1. Using your terminal, SSH into the Compute Instance whose IPv6 address you would like to find. - - ```command - ssh user@192.0.2.0 - ``` - -1. Use the `ip` tool to find your Compute Instance's IPv6 address: - - ```command - ip -6 address - ``` - - ```output - 1: lo: mtu 65536 state UNKNOWN qlen 1 - inet6 ::1/128 scope host - valid_lft forever preferred_lft forever - 3: eth0: mtu 1500 state UP qlen 1000 - inet6 2600:3c02::f03c:91ff:fe24:3a2f/64 scope global mngtmpaddr dynamic - valid_lft 2591998sec preferred_lft 604798sec - inet6 fe80::f03c:91ff:fe24:3a2f/64 scope link - valid_lft forever preferred_lft forever - ``` - -- Line 3 shows the IPv6 loopback interface, `::1/128`. This is used for IPv6 traffic within the system, similar to the `127.0.0.0/8` IPv4 address block. - -- Line 6 is the Compute Instance's public IP address, `2600:3c02::f03c:91ff:fe24:3a2f/64`. You can see it's in a `/64` range. - -- Line 8 is the link-local IPv6 address, `fe80::f03c:91ff:fe24:3a2f/64`. An IPv6 link-local address is a unicast address that is automatically configured on any interface. - -If your Compute Instance does not have the correct IPv6 address or any IPv6 address at all, you should verify that you have router advertisements enabled and IPv6 privacy extensions disabled. Your instance will need to accept router advertisements for SLAAC to function. These settings are properly configured by default in our supported distributions. - -## Additional IPv6 Addresses - -If a single IPv6 address isn't sufficient for your application, additional IPv6 addresses are provided through large address blocks, also called routed ranges or pools. From these ranges, you can manually configure individual IPv6 addresses on your Compute Instance. See the [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#adding-an-ip-address) and [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guides for instructions on adding an IPv6 range and to learn how to configure it within your system. - -The size of each block is identified through a prefix. These are indicated with a slash `/` followed by a number in base 10: the length of the network **prefix** in bits. This translates to the number of available addresses that are available in the range (or pool). For example, the prefix `/48` contains 2128-48 = 280 = 1,208,925,819,614,629,174,706,176 addresses. For an address like `2001:db8:1234::/48` the block of addresses is `2001:db8:1234:0000:0000:0000:0000:0000` to `2001:db8:1234:ffff:ffff:ffff:ffff:ffff`. - -The IPv6 prefixes and their respective quantity of IPv6 addresses that Linode provides are listed below. - -### IPv6 Routed Ranges - -An IPv6 routed range is assigned to a single Compute Instance. Addresses from that range can only be configured on that instance. - -{{< note >}} -Configuring a `/64` or `/56` routed range requires you to [disable Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#enable-or-disable-network-helper) on your Compute Instance and manually configure its network settings. Please review the [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#adding-an-ip-address) and [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guides for details on this process. -{{< /note >}} - -- `/64` **routed range** *(18,446,744,073,709,551,616 addresses)*: This is the most common range provided to our customers and sufficient for most applications that require additional IPv6 addresses. -- `/56` **routed range** *(4,722,366,482,869,645,213,696 addresses)*: These larger ranges are typically only required by specialized systems or networking applications. - -### IPv6 Pools - -An IPv6 pool is accessible from every Compute Instance on your account within the assigned data center. Addresses from that pool can be configured on each instance within that data center. This can enable features like IPv6 failover. - -- `/116` **pool** *(4,096 addresses)* - -{{< note type="alert" >}} -The IPv6 /116 prefix has been deprecated and is no longer available for new Compute Instances. If you have an existing Compute Instance with a /116 pool, please review the [Upcoming Changes Related to Network Infrastructure Upgrades](/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/) to learn about changes that may affect your services. -{{< /note >}} - -## IPv6 Forwarding - -If needed, IPv6 packets can be forwarded between two networks on Linode. By default, most Linux systems disable both IPv4 and IPv6 forwarding. To enable this functionality, see the [IP Forwarding](/docs/guides/linux-router-and-ip-forwarding/) guide. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/ipv6/ipv6-linode-network-tab.png b/docs/products/compute/compute-instances/guides/ipv6/ipv6-linode-network-tab.png deleted file mode 100644 index 93a7e2ce3a4..00000000000 Binary files a/docs/products/compute/compute-instances/guides/ipv6/ipv6-linode-network-tab.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/ipv6/ipv6-linode.png b/docs/products/compute/compute-instances/guides/ipv6/ipv6-linode.png deleted file mode 100644 index c8182303dd2..00000000000 Binary files a/docs/products/compute/compute-instances/guides/ipv6/ipv6-linode.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/index.md b/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/index.md deleted file mode 100644 index f8b29f367bc..00000000000 --- a/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/index.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: "Recover from Unexpected Shutdowns with Lassie (Shutdown Watchdog)" -title_meta: "Recover from Unexpected Shutdowns with Lassie" -description: "Learn how to investigate an unexpected shutdown and understand how Lassie, the Shutdown Watchdog, works to reboot your Compute Instances." -published: 2022-09-29 -keywords: ['lassie','unexpected shutdown','reboot'] -tags: ["linode platform","monitoring"] -aliases: ['/products/tools/monitoring/guides/monitoring-configure-watchdog/','/guides/lassie-shutdown-watchdog/'] ---- - -Linode Compute Instances have a featured called *Lassie* (Linode Autonomous System Shutdown Intelligent rEbooter), also referred to as the Shutdown Watchdog. When this feature is enabled, a Compute Instance automatically reboots if it ever powers off unexpectedly. - -## Shutdown Recovery Behavior - -The Shutdown Watchdog feature detects when a Compute Instance is powered off and checks if that directive came from the Linode platform (such as Cloud Manager or Linode API). If the power off command *did not* originate from the Linode platform, the shutdown is considered unexpected and the Compute Instance is automatically powered back on. - -{{< note >}} -Shutdown Watchdog can power back on a Compute Instance up to 5 times within a 15 minute period. If there is a recurring issue that is causing 6 or more shutdowns within this time period, the instance remains powered off until it is manually powered back on. This is to prevent endless reboot loops if there is an issue with the internal software of a Compute Instance. -{{< /note >}} - -## Enable (or Disable) Shutdown Watchdog - -By default, Shutdown Watchdog is enabled on all new Compute Instances. If you wish to disable or re-enable this feature, follow the instructions below: - -1. Log in to [Cloud Manager](https://cloud.linode.com) and navigate to the **Linodes** link in the sidebar. -1. Select the Linode Compute Instance that you wish to modify. -1. Navigate to the **Settings** tab. -1. Scroll down to the section labeled **Shutdown Watchdog**. - - ![Configuring Shutdown Watchdog](shutdown-watchdog.png) - -1. From here, click the corresponding toggle button to update this setting to the desired state, either *enabled* or *disabled*. - -## Reasons for an Unexpected Shutdown - -An *unexpected shutdown* is when a Compute Instance powers off without receiving a power off command from the Linode platform (such as one issued by a user in Cloud Manager or API). In general, this is caused within a Compute Instance's internal system or software configuration. The following list includes potential reasons for these unexpected shutdowns. - -- **A user issues the [**shutdown command**](https://man7.org/linux/man-pages/man8/shutdown.8.html)** in the shell environment of a Compute Instance. In Linux, a system can be powered off by entering the `shutdown` command (or other similar commands) in the system's terminal. Since Linode has no knowledge of internal commands issued on a Compute Instance, it is considered an unexpected shutdown. - -- **Kernel panic:** A kernel panic can occur when your system detects a fatal error and it isn't able to safely recover. Here is an example of a console log entry that indicates a kernel panic has occurred: - - ```output - Kernel panic - not syncing: No working init found. - ``` - -- **Out of memory (OOM) error:** When a Linux system runs out of memory, it can start killing processes to free up additional memory. In many cases, your system remains accessible but some of the software you use may stop functioning properly. This can occasionally result in your system becoming unresponsive or crashing, causing an unexpected shutdown. - - ```output - kernel: Out of memory: Kill process [...] - ``` - -- **Other system crashes**, such as a crash caused by the software installed on your system or a malicious process (such as malware). - -{{< note >}} -The Shutdown Watchdog feature never *causes* a Compute Instance to shut down and only ever *powers on* an instance if it detects an unexpected shutdown. -{{< /note >}} - -## Investigate the Cause of a Shutdown - -The underlying cause of these issues can vary. The most helpful course of action is to review your system logs. - -1. Open the [Lish console](/docs/products/compute/compute-instances/guides/lish/). This displays your system's boot log and, if your system boot was normal, a login prompt appears. If you do not see a login prompt, look for any errors or unexpected output that indicates a kernel panic, file system corruption, or other type of system crash. - -1. Log in to your system through either [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/) and review the log files for you system using either journald or syslog. For systems using systemd-journald for logging, you can use the `journalctl` command to review system logs. See [Use journalctl to View Your System's Logs](/docs/guides/how-to-use-journalctl/) for instructions. - - - `journalctl -b`: Log entries for the last system boot - - `journalctl -k`: Kernel messages - - For systems using syslog, you should review the following log files using your preferred text editor (such as [nano](/docs/guides/use-nano-text-editor-commands/) or [vim](/docs/guides/what-is-vi/)) or file viewer (such as cat or [less](/docs/guides/how-to-use-less/)). - - - `/var/log/syslog`: Most logs as recorded by [syslog](https://en.wikipedia.org/wiki/Syslog). - - `/var/log/boot.log`: Log entries for the last system boot - - `/var/log/kern.log`: Kernel messages - - `/var/log/messages`: Various system notifications and messages typically recorded at boot. - - You may also want to review log files for any other software you have installed on your system that might be causing these issues. - -{{< note >}} -Unexpected shutdowns are primarily caused by issues with the internal software configuration of a Compute Instance. To investigate these issues further, it is recommended that you reach out to your own system administrators or on our [Community Site](https://www.linode.com/community/questions/). These issues are generally [outside the scope](/docs/products/platform/get-started/guides/support/#scope-of-support) of the Linode Support team. -{{< /note >}} - -## File System Corruption - -In some cases, unexpected shutdowns can cause file system corruption on a Compute Instance. If an error message (such as the one below) appears within your console logs, your file system may be corrupt or otherwise be in an inconsistent state. - -```output -/dev/sda: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. -``` - -In cases like this, it is recommended that you attempt to correct the issue by running the `fsck` tool in [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/). See [Using fsck to Find and Repair Disk Errors and Bad Sectors](/docs/guides/how-to-use-fsck-to-fix-disk-problems/) for instructions. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/shutdown-watchdog.png b/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/shutdown-watchdog.png deleted file mode 100644 index a5511cced0a..00000000000 Binary files a/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/shutdown-watchdog.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/lish/index.md b/docs/products/compute/compute-instances/guides/lish/index.md deleted file mode 100644 index 188f458cfa5..00000000000 --- a/docs/products/compute/compute-instances/guides/lish/index.md +++ /dev/null @@ -1,542 +0,0 @@ ---- -title: "Access Your System Console Using Lish (Linode Shell)" -title_meta: "Access Your System Console Using Lish" -description: "Learn how to use Lish as a shell for managing or rescuing your Compute Instances." -published: 2009-08-04 -modified: 2024-02-14 -keywords: ["Console", "Shell", "Lish", "rescue", "weblish"] -tags: ["linode platform","cloud manager"] -image: using-the-linode-shell-lish.jpg -aliases: ['/platform/manager/using-the-linode-shell-lish-classic-manager/','/platform/using-the-linode-shell-lish/','/networking/using-the-linode-shell-lish/','/using-lish-the-linode-shell/','/troubleshooting/using-lish-the-linode-shell/','/platform/manager/using-the-linode-shell-lish/','/guides/using-the-linode-shell-lish/','/guides/using-the-lish-console/','/guides/lish/'] ---- - -The **Lish Console**, also called the *Linode Shell*, provides direct console access to all of your Compute Instances. Through Lish, you can easily access your Compute Instance's internal Linux system and run commands, install software, or configure applications. Lish is especially useful when you are not able to connect to your server through other means, such as SSH. - -## Access Lish - -There are two ways to access Lish. You can use a terminal application to connect to a *Lish SSH gateway*, or you can log in to the [Linode Cloud Manager](https://cloud.linode.com) and use the Lish console in your web browser. This section explains both methods. - -### Through Cloud Manager (Weblish) - -You can connect to Lish using a web browser. This is useful when you don't have access to a terminal application, or if you just need quick and easy console access from Cloud Manager. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click on the **Linodes** link in the sidebar and select the desired Compute Instance. - -1. Click on the **Launch LISH Console** link in the top right-hand corner of Cloud Manager. - - ![Launch the Lish Console](launch-console-button.png) - -1. The Lish Web Console window appears, as shown below. From here, you can log in to your Compute Instance with any other username and password available on that system (such as `root`). - - ![An example of the Lish Web Console](weblish.png) - -You can exit to the Lish prompt by pressing **CTRL+A** then **D**. You cannot exit to a Lish gateway box using your web browser. To exit the session entirely, just close the Lish Web Console window. - -### Through SSH (Using a Terminal) - -You can connect to Lish with the SSH client of your choice. For example, you can use the Terminal application in Mac OS X, PuTTY in Windows, or your favorite X11 terminal emulator. - -{{< note >}} -If you have [Third Party Authentication](/docs/products/platform/accounts/guides/third-party-authentication/) enabled on your account, you will not be able to log in to your Compute Instance through Lish with password authentication, and must instead use SSH key authentication. Read the [Add Your Public Key](#add-your-public-key) section for more instructions on how to add an SSH key to your account for use with Lish. -{{< /note >}} - -1. Determine which Lish SSH gateway you wish to use. There's one in every data center. See [Lish Gateways](#lish-gateways) for a full list. - -1. Open a terminal window and enter the following command, replacing `username` with your Cloud Manager username, and `location` with your preferred Lish SSH gateway. - - ```command - ssh username@location - ``` - - For example, logging in as `user` via the Newark gateway would look like: - - ```command - ssh user@lish-newark.linode.com - ``` - - {{< note >}} - Users who have been granted "Access" rights on a particular Compute Instance will have access to its Lish console via the gateway. Linodes that a user can't access in Cloud Manager won’t show up in the Lish list. For more information about creating user accounts and configuring permissions, see [Accounts and Passwords](/docs/products/platform/accounts/guides/manage-users/). - {{< /note >}} - -1. Verify that the Lish SSH gateway's fingerprint is valid by verifying the Terminal's output against the list of our [Lish Gateway Fingerprints](#lish-gateways). Once verified, enter *yes* to proceed. - - ```output - The authenticity of host 'lish-newark.linode.com (66.228.40.59)' can't be established. - ECDSA key fingerprint is SHA256:57OGBNARJ1fhI+zrE3eTEeQWXVVDHRU8QHcP+BsWmN8. - Are you sure you want to continue connecting (yes/no)? - ``` - - {{< note type="warning" title="ECDSA host key warning" isCollapsible=true >}} - If after verifying the authenticity of the Lish SSH gateway's fingerprint, you receive a message indicating that the ECDSA host key differs from the key for the IP address, remove the cached IP address on your local machine. Ensure you replace `192.0.2.0` with the IP address indicated by the Terminal. - - ```command - ssh-keygen -R 192.0.2.0 - ``` - - Once you have removed the cached IP address, you can again attempt to SSH into the Lish gateway. - {{}} - -1. Enter the password you use to log in to Cloud Manager. You are now at the Lish shell. A list of your Compute Instances appears, as shown below: - - ```output - Linodes located in this data center: - linode241706 Newark, NJ - linode276072 Newark, NJ - - Linodes located in other data centers: - linode287497 Dallas, TX - ``` - - {{< note >}} - You can add a public SSH key for Lish in Cloud Manager to automatically connect to Lish without a password. See [this section](#add-your-public-key) for more information. - {{< /note >}} - -1. At the Lish command prompt, type a Compute Instance's name from the list. For example, typing `linode241706` will connect you to the screen console session for that Instance. - -1. Log in to the system with your username and password. - -After you log in, you'll have console access to your Compute Instance. You'll be able to restart services like `sshd`, edit firewall settings, and make other changes. To exit the console, press **CTRL+A** then **D** to return to the host machine, and then press **CTRL+D** to return to the Lish menu. If you'd like to see the list of your Compute Instances again, type `list` from the gateway. - -## Add Your Public Key - -If you don't want to enter your password every time you connect to Lish, or if you have [Third Party Authentication](/docs/products/platform/accounts/guides/third-party-authentication/) enabled on your account, you can add your public SSH key to the Linode Cloud Manager. If you haven't yet created SSH keys, please see our [Public Key Authentication with SSH](/docs/guides/use-public-key-authentication-with-ssh/) guide for more information. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click on the profile icon in the top right hand corner of the Manager and select **LISH Console Settings**. - -1. Copy your public SSH key into the **SSH Public Key** field, as shown below. - - ![Add your public ssh key](lish-add-public-key.png) - -1. Click the **Save** button. Your Lish key will be saved in Cloud Manager. - -Now you can log in to any of the Lish gateway boxes without having to type your password. - -If you wish to disable Lish access for users without keys, use the **Authentication Mode** dropdown menu on the same page, and select **Allow key authentication only** then click **Save**. - -## Lish Commands - -The Lish shell provides access to many functions which are otherwise only accessible via Cloud Manager. Enter the `help` command to see a full list of available commands. The output provides an introduction to Lish functionality: - -```output -kill - kill stuck screen sessions -exit - exit from lish -help - this menu - -[return] - connect to console -version - display running kernel version -boot - boot last used (or the only) config profile -boot N - boot the specified config profile -shutdown - shut down the Linode -reboot - shut down, then boot the last used config profile -reboot N - shut down, then boot the specified config profile -sysrq X - send SysRq X to your Linode -destroy - pulls the plug on a running Linode, no fs sync, no warning - -jobs - view the job queue for your Linode -configs - view the configuration profiles for your Linode -config N - view configuration profile details for profile N -status - view the status of your Linode -logview - view contents of console log -``` - -There are two ways to run these commands for a specific Compute Instance. If you are at the main Lish gateway, you can prefix the command with a ID, like this: - -```command -linode123456 logview -``` - -You can also bring up the Compute Instance's console, then type **CTRL+A** then **D** to drop back to the host for that Instance. Now all of the commands above will be run for that Instance specifically. To exit back to the main Lish menu, type `exit`. - -{{< note >}} -You can activate the ability to scroll back through the Lish console by pressing **CTRL-A + ESC** -{{< /note >}} - -## Advanced Lish Tricks - -While the Lish interface as described above is useful as a basic command-line interface, you may find that you want to issue commands to your Compute Instance without going through the Lish login process. - -You can directly connect to a Compute Instance's console: - -```command -ssh -t [manager-username]@lish-[location].linode.com [linode-name] -``` - -You can also append Lish commands to the SSH command on your system prompt. For instance, to reboot your system, using your Cloud Manager username, location, and the host-id for your Compute Instance: - -```command -ssh -t [manager-username]@lish-[location].linode.com [linode-name] reboot -``` - -Similarly, you can generate a view of the log using Lish: - -```command -ssh -t [manager-username]@lish-[location].linode.com [linode-name] logview -``` - -This command format works for all Lish functionality. - -## Lish Gateways - -Each data center has its own gateways, which provides access to Lish, Weblish, and Glish. When connecting through Lish, you can use the corresponding gateway within any data center, though we recommend choosing the data center the instance is located within. These gateways are accessible over IPv4 and IPv6. - -{{< note >}} -If you are having issues accessing Lish, Weblish, or Glish, you may be blocked by a local firewall. Make sure your firewall allows outbound connections to the following ports and the gateway you wish to access: - -- **Lish ports:** 22, 443, 2200 -- **Weblish port:** 8181 -- **Glish port:** 8080 -{{< /note >}} - -#### Amsterdam (Netherlands) - -- **Lish SSH Gateway:** `lish-nl-ams.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:/y+83+sA3JdDGkv/KLnIAIXqfgqWfgp5RZ+DCx1T4yU lish-nl-ams.linode.com - ECDSA 256 SHA256:iR/He+teo+c7jqr8LzaTikbTlMDdIkIERhJBXdIjO8w lish-nl-ams.linode.com - ED25519 256 SHA256:vxF9arB2lYBVP45ZA7t1JEE9w/vthPmzU3a2oOR8O7Y lish-nl-ams.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `nl-ams.webconsole.linode.com` - -#### Atlanta, GA (USA) - -- **Lish SSH Gateway:** `lish-us-southeast.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:OWzHHclIp4zt5sHt+QZ002HYgnxtec+skWPAgFNfx4w lish-us-southeast.linode.com - ECDSA 256 SHA256:qVMUsKTjxiSFvElIRMvjzKv4eRth37i2OBaaSODO6us lish-us-southeast.linode.com - ED25519 256 SHA256:ZpNQYxIc25e4vVfFgscSJm1/jGaUy3Gti4kuzB1aTuc lish-us-southeast.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-southeast.webconsole.linode.com` - -#### Chennai (India) - -- **Lish SSH Gateway:** `lish-in-maa.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:kXCaKnn1nVlVEC5SCuez6FApcXr/2UUiaSANUy0rlLI lish-in-maa.linode.com - ECDSA 256 SHA256:Jj+pb1AkDdKs77o6ozgkOk83rg7auLSOQrnebE8n91o lish-in-maa.linode.com - ED25519 256 SHA256:v1KaIB0togivalP7OVvlrLpu/y80qsm5cj50qclTWc0 lish-in-maa.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `in-maa.webconsole.linode.com` - -#### Chicago, IL (USA) - -- **Lish SSH Gateway:** `lish-us-ord.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:rRwktOKfSApeffa+YOVxXXL70Ba1CpTYp/oFywEH2Pc lish-us-ord.linode.com - ECDSA 256 SHA256:SV9A/24Jdb++ns/+6Gx7WqZCyN4+0y4ICFsaqK3Rm8s lish-us-ord.linode.com - ED25519 256 SHA256:J+yN8rjhr9j27M4zLSF6OX9XmIoipWbPP/J1AGRlRYc lish-us-ord.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-ord.webconsole.linode.com` - -#### Dallas, TX (USA) - -- **Lish SSH Gateway:** `lish-us-central.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:y1H5qzNB3yjvmPX/e8HcYbTffQb9qANjtT7r5vqIZl8 lish-us-central.linode.com - ECDSA 256 SHA256:3FY9mXdhRJjaJ7eTDO8SUWoLxdJBshz5229Wwsg7/iQ lish-us-central.linode.com - ED25519 256 SHA256:bC/I0G2IrWlICtzsGYT84dzdft1weRd28SIUt+D31P8 lish-us-central.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-central.webconsole.linode.com` - -#### Frankfurt (Germany) - -- **Lish SSH Gateway:** `lish-eu-central.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:4Xkz0V7ZQd277GpfnHzvdshuH3gjsv9+UXlgO0/gNhA lish-eu-central.linode.com - ECDSA 256 SHA256:W3V3zB1vYWlpoRaBy97RZk6GP+DZrFLsm1vAE27eCXQ lish-eu-central.linode.com - ED25519 256 SHA256:/105/zGMByknAKw5Hm7554oZ25wwN0+3owhJTZWOvNc lish-eu-central.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `eu-central.webconsole.linode.com` - -#### Fremont, CA (USA) - -- **Lish SSH Gateway:** `lish-us-west.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:s4ACk4T42uMnOpMWybsZFSVn9PCd/0Q/LEqs0pWKVj4 lish-us-west.linode.com - ECDSA 256 SHA256:2CnS4CkZsymw6PuT5bE8hLfVTMwkMPr8D9lYbUOgE7E lish-us-west.linode.com - ED25519 256 SHA256:whGbGnOqEIv9HrvvEgXO6PdNnCDEr7OwL0pHzrTDBYo lish-us-west.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:**`us-west.webconsole.linode.com` - -#### Jakarta (Indonesia) - -- **Lish SSH Gateway:** `lish-id-cgk.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:n+f2JBMBYvvJUw11nYafKrX1nU3gdohnWfj9qdTXU+I lish-id-cgk.linode.com - ECDSA 256 SHA256:CwM8d4D9yU0Mw/Odu4bxs6OWpfzJHSrSUUgtkZNRvsk lish-id-cgk.linode.com - ED25519 256 SHA256:RvdTsLHAWcjmXU2h5JD821Xk4x40FcHLzpX2/ppMLh0 lish-id-cgk.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `id-cgk.webconsole.linode.com` - -#### Los Angeles, CA (USA) - -- **Lish SSH Gateway:** `lish-us-lax.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:TVyXe3i1iJF9rU+j/t57wpdRB2h56Kh2tnZsUra30kA lish-us-lax.linode.com - ECDSA 256 SHA256:Yh+jEgxiGIgETrC9uz4wUqnKvi7yPrlqgmpxsa65QDI lish-us-lax.linode.com - ED25519 256 SHA256:kFi+ignk5bxYxnk/F3Lehk0HoM98BuUzEGhlEzhHo9I lish-us-lax.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-lax.webconsole.linode.com` - -#### London (UK) - -- **Lish SSH Gateway:** `lish-eu-west.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:8EgXMpjYma0BpjghpUcFwlJCMv1cZROKv1CE35QElnI lish-eu-west.linode.com - ECDSA 256 SHA256:CfmDU3U4/F0z34iosz9uWrsmeuy2L/8W+otq44Avonw lish-eu-west.linode.com - ED25519 256 SHA256:K6Hh7inkt5vJYrPKz3sB3yLd/+rtyrmyV7vYSCQ+8mU lish-eu-west.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `eu-west.webconsole.linode.com` - -#### Madrid (Spain) - -- **Lish SSH Gateway:** `lish-es-mad.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:sIYL6fvcNZVz3pXa6fp6YNS4ITfcCTu918pH0dxmaL0 lish-es-mad.linode.com - ECDSA 256 SHA256:eSqy+KAkPlzqRxYnPzGKJXuVd6D5APZsM/qWAWVk5xs lish-es-mad.linode.com - ED25519 256 SHA256:Sm20p3dsXSoqdRF8RwehfHn2sJszSuP/Z454glxohbc lish-es-mad.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `es-mad.webconsole.linode.com` - -#### Miami, FL, USA - -- **Lish SSH Gateway:** `lish-us-mia.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:kfwzGjXR+WV1JxvufbsZTv4qzVUI5Nkmh3Z3/XhpAT8 lish-us-mia.linode.com - ECDSA 256 SHA256:cZVK7bB8cwci3sXJJNIaBlX9Z3DlBj3hAL5J8Hc+vr0 lish-us-mia.linode.com - ED25519 256 SHA256:+sBLV01KzOiVJw4OJGmO71+NUm2cE7ndpj1aqW2tNLg lish-us-mia.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-mia.webconsole.linode.com` - -#### Milan (Italy) - -- **Lish SSH Gateway:** `lish-it-mil.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:toVfir7U8Ixg0wELAx0qCC91ld+HIxmTwggUP/+itkU lish-it-mil.linode.com - ECDSA 256 SHA256:XQDX+diXFBAT8OjpN+zwZN5sukTAQwtqe+i89Kh6gXQ lish-it-mil.linode.com - ED25519 256 SHA256:Uxw1KbWQVz5QYHHfUzFJcZM+HLbdu6vJ/R3ksEv2k3M lish-it-mil.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `it-mil.webconsole.linode.com` - -#### Mumbai (India) - -- **Lish SSH Gateway:** `lish-ap-west.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:cZv3NjjPKvjKuG4/ETTs8dQEn/sk/ryXJMn/wAqRSdk lish-ap-west.linode.com - ECDSA 256 SHA256:PUjmIqCe7ViewBrmronVU1Ss/yU63Zgp0yFe4PCZSQk lish-ap-west.linode.com - ED25519 256 SHA256:s5LimAwVgNrnDOVWhLhv8RyBo3jk6OjiSCxPUQSefQ8 lish-ap-west.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `ap-west.webconsole.linode.com` - -#### Newark, NJ (USA) - -- **Lish SSH Gateway:** `lish-us-east.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:u7ayBzPWsFmc2/sLrP8zYh0pFGFvo2m/H13Gmw7tZlA lish-us-east.linode.com - ECDSA 256 SHA256:Q7TDu+Qa3OpO6TUlgtG8ROa0MfRP5uagjSfavqT4oqs lish-us-east.linode.com - ED25519 256 SHA256:uUaOWG4KM2k+ZLCgtVFEi90TiNbNElXEP/orB57+8WI lish-us-east.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-east.webconsole.linode.com` - -#### Osaka (Japan) - -- **Lish SSH Gateway:** `lish-jp-osa.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:VXDxZ8+0b1Q54Bzvt7a6A4bvvKAI5OHxBYxwIC4OsDQ lish-jp-osa.linode.com - ECDSA 256 SHA256:qM6cfmK2/Vrho1exDZ9qe4cLWVdp5U0dv5MJ22K+lwE lish-jp-osa.linode.com - ED25519 256 SHA256:1CJ7P/i5XUP6XWizukQ7XIEiQ5rlIM+06N6qF2WfDMc lish-jp-osa.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `jp-osa.webconsole.linode.com` - -#### Paris (France) - -- **Lish SSH Gateway:** `lish-fr-par.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:qTliFB86axo9n07H0hUP/z5nm7Fbkzlf8eKnmtXBhZU lish-fr-par.linode.com - ECDSA 256 SHA256:NU4UctBefhWIR3mpCrh+r2p5lNmtwFFoeelZspjMNYM lish-fr-par.linode.com - ED25519 256 SHA256:GYNvVuHJqGIdCiU6yTPbkJmMgj+ZYBGRVGDqnrtJoQc lish-fr-par.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `fr-par.webconsole.linode.com` - -#### São Paulo (Brazil) - -- **Lish SSH Gateway:** `lish-br-gru.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:lmtONyLfe0tiLEdNrbEUd8j10A/o/Ss1HaUYJDgc8ks lish-br-gru.linode.com - ECDSA 256 SHA256:ftl4kIcxzeGUsT9FPQ49GF7afel1yrOQgclJN7/8kuk lish-br-gru.linode.com - ED25519 256 SHA256:EKqBawVESQnL4oQOMskpBAtrEiOlE+qD9M6WLiFbCyU lish-br-gru.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `br-gru.webconsole.linode.com` - -#### Seattle, WA (USA) - -- **Lish SSH Gateway:** `lish-us-sea.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:XqkskcFrRzZbMU/XeR1diiNM6zCsWs2wL4pmTvBLNII lish-us-sea.linode.com - ECDSA 256 SHA256:FEqVGwuv/BgbLtNkcfFg7Lgm0R6KQVUnPY+wIoimrrA lish-us-sea.linode.com - ED25519 256 SHA256:6R7iWvSe7OQSDcVmhwrH/EJiE51+ntiub3CPXfzupDA lish-us-sea.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-sea.webconsole.linode.com` - -#### Singapore - -- **Lish SSH Gateway:** `lish-ap-south.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:ed7vvOh2m4DtwwUruYiyDQLegcjh3AAeLZ/C9HYWjS0 lish-ap-south.linode.com - ECDSA 256 SHA256:dVVAqiJMdolMgD81T1ELjPPM2P3EZ9b9li8dj8UssTw lish-ap-south.linode.com - ED25519 256 SHA256:+gcOBQjBvMDrGuxKQdmV+fs7+sWqQ9e4khIFYlPvooM lish-ap-south.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `ap-south.webconsole.linode.com` - -#### Stockholm (Sweden) - -- **Lish SSH Gateway:** `lish-se-sto.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:oC6WZwUMm+S/myz7aEBP6YsAUXss7csmWzJRlwDfpyw lish-se-sto.linode.com - ECDSA 256 SHA256:lr6m6BKQBqFW/iw/WDq2QQqh5kUlMjidawEEKv9lNRg lish-se-sto.linode.com - ED25519 256 SHA256:phubC9JMR6DNal0BIvu2ESvmDfs2rSquBrhKdr0IbmU lish-se-sto.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `se-sto.webconsole.linode.com` - -#### Sydney (Australia) - -- **Lish SSH Gateway:** `lish-ap-southeast.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:rbamZevowgslIHGX34frmWv/Qvt863skVo5q2gKFCFs lish-ap-southeast.linode.com - ECDSA 256 SHA256:FmtrulPNisf4KVfOEtxiC0jLQfLW6iNdM2bZ5AWWFyM lish-ap-southeast.linode.com - ED25519 256 SHA256:dRp40pJoimqpzoRM9yCY8OIzDxESMIkLWYCes0nFRdQ lish-ap-southeast.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `ap-southeast.webconsole.linode.com` - -#### Tokyo (Japan) - -- **Lish SSH Gateway:** `lish-ap-northeast.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:Ral4+nR7A3jnhOqcebKTZQ+uDCIJ2rHQLnDUizDwIHY lish-ap-northeast.linode.com - ECDSA 256 SHA256:mxhd/vUfH9+8CDfOVmpfAbGDXdt1o35QKwAxO20GAqw lish-ap-northeast.linode.com - ED25519 256 SHA256:CDH9IcgWQ2iwx27ZotyvNbWl5os+QbeRZ/SLagLBckQ lish-ap-northeast.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `ap-northeast.webconsole.linode.com` - -#### Toronto (Canada) - -- **Lish SSH Gateway:** `lish-ca-central.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:FetyiRe7La3cAdpHz17sfKgQHaXEQPWcIq8A0sI11go lish-ca-central.linode.com - ECDSA 256 SHA256:YhHGT3h4elvJjLTRBcjwNU+DK3TkvrQBrTtaiut5bIw lish-ca-central.linode.com - ED25519 256 SHA256:hf6BTXkLy8dnGBD1z2IiMwD+J+o9xc/nkhxmOX69hWM lish-ca-central.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `ca-central.webconsole.linode.com` - -#### Washington, DC (USA) - -- **Lish SSH Gateway:** `lish-us-iad.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:mzFtMaMVX6CsLXsYWn6c8BXnXk0XHfoOXGExDUEH2OI lish-us-iad.linode.com - ECDSA 256 SHA256:of9osuoFwh7g5ZiO0G3ZGYi/8JcCw3BA/ZdkpaKQlT0 lish-us-iad.linode.com - ED25519 256 SHA256:oFoUJn/xXV/+b7EJIcIt6G6hV5jXzjM/pOsoceDDOaA lish-us-iad.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `us-iad.webconsole.linode.com` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/lish/launch-console-button.png b/docs/products/compute/compute-instances/guides/lish/launch-console-button.png deleted file mode 100644 index e879e645dc2..00000000000 Binary files a/docs/products/compute/compute-instances/guides/lish/launch-console-button.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/lish/lish-add-public-key.png b/docs/products/compute/compute-instances/guides/lish/lish-add-public-key.png deleted file mode 100644 index 63d6ba2c222..00000000000 Binary files a/docs/products/compute/compute-instances/guides/lish/lish-add-public-key.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/lish/using-the-linode-shell-lish.jpg b/docs/products/compute/compute-instances/guides/lish/using-the-linode-shell-lish.jpg deleted file mode 100644 index 0050f653bd1..00000000000 Binary files a/docs/products/compute/compute-instances/guides/lish/using-the-linode-shell-lish.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/lish/weblish.png b/docs/products/compute/compute-instances/guides/lish/weblish.png deleted file mode 100644 index f6d55e1fe49..00000000000 Binary files a/docs/products/compute/compute-instances/guides/lish/weblish.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/add-ip-address-button.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/add-ip-address-button.png deleted file mode 100644 index 2695a7c4f0b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/add-ip-address-button.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/add-ip-address-form.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/add-ip-address-form.png deleted file mode 100644 index 4ca752dbe4c..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/add-ip-address-form.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/compute-ip-addresses-full.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/compute-ip-addresses-full.png deleted file mode 100644 index 0bbc374a602..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/compute-ip-addresses-full.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/compute-ip-addresses-quick.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/compute-ip-addresses-quick.png deleted file mode 100644 index 77ab54fd478..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/compute-ip-addresses-quick.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/delete-ip-address-button.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/delete-ip-address-button.png deleted file mode 100644 index cd7c41bd66d..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/delete-ip-address-button.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/dns-resolvers.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/dns-resolvers.png deleted file mode 100644 index 39c6e9441c9..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/dns-resolvers.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/index.md b/docs/products/compute/compute-instances/guides/manage-ip-addresses/index.md deleted file mode 100644 index 1a5dae0ddf9..00000000000 --- a/docs/products/compute/compute-instances/guides/manage-ip-addresses/index.md +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: "Managing IP Addresses on a Compute Instance" -description: "Instructions on viewing, adding, deleting, transferring IP addresses for Linode Compute Instances using Cloud Manager" -og_description: "Learn how to manage IP addresses on a Linode Compute Instance" -published: 2016-08-23 -modified: 2024-07-26 -keywords: ["ip addresses", "ip failover", "swapping ip addresses", "add ip address", "add additional ip address"] -tags: ["linode platform","cloud manager","networking"] -aliases: ['/platform/manager/remote-access-classic-manager/','/platform/manager/remote-access/','/remote-access/','/networking/remote-access/', '/guides/remote-access/','/guides/managing-ip-addresses/','/products/tools/cloud-manager/guides/cloud-delete-ip/','/guides/find-your-linodes-ip-address/'] ---- - -Each Linode Compute Instance is equipped with several IP addresses, which may enable it to be accessible over the public Internet and other Linode services or accessible just to other Compute Instances within a VPC. This guide covers how to manage these IP addresses (including viewing, adding, removing, transferring, or sharing them) through Cloud Manager. - -## Viewing IP Addresses - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Linodes** link in the sidebar. - -1. Click on your Linode Compute Instance from the list to view more details. - -1. Within the top *Summary* section, you can view the primary IPv4 and IPv6 addresses. - - ![Summary section with the IP addresses highlighted](compute-ip-addresses-quick.png) - -1. To view all public and private IP addresses for this Instance (along with any associated rDNS values), click the **View all IP Addresses** link or navigate to the **Network** tab and review the **IP Addresses** section. - - ![The IP Addresses table on the Network tab](compute-ip-addresses-full.png) - - IP addresses for a VPC or VLAN interface are visible in the **Configurations** tab. - -## Types of IP Addresses - -### IPv4 - -- **Public IPv4 Address:** Most Compute Instances (those created without a VPC) have a single public IPv4 address, which enables your applications to be accessible over the Internet. Additional addresses can be provided with technical justification. If a VPC interface is configured when a Compute Instance is created, that instance typically does not have a public IPv4 address _unless_ the _Assign a public IPv4 address_ option is selected. - -- **VPC IPv4 Address:** If an instance is assigned to a VPC, that instance is assigned an IPv4 address from the CIDR range configured on the subnet. This IP address can be automatically generated or manually provided. Optionally, if the _Assign a public IPv4 address_ option is selected during creation, the instance is assigned public IPv4 address as well. - -- **VLAN IPv4 Address:** When a Compute Instance is configured with a VLAN, you assign it a IPv4 address to use within the VLAN. It is also automatically assigned a public IPv4 address. - -- **Private IPv4 Address:** Optionally, a private IPv4 address can be assigned to a Compute Instance. This allows it to connect to other services located in the same data center, such as NodeBalancers or other Compute Instances. - -{{< note title="A VPC is the recommended method for network isolation" >}} -In most cases, a VPC is the better option for true network isolation than either a VLAN or a private IP address. For a comparison between these methods, review the [VPC](/docs/products/networking/vpc/#difference-between-private-network-options-vpcs-vlans-and-private-ips) documentation. -{{< /note >}} - -### IPv6 Addresses - -- **IPv6 SLAAC Address:** This is the main IPv6 address used to communicate over the public Internet and with other services in the same data center. All Compute Instances are assigned a single SLAAC address, which cannot be removed or transferred. Additional SLAAC addresses cannot be provided. If you need an additional IPv6 address, consider using a /64 range (see below). - -- **IPv6 Link Local:** This IPv6 address is assigned to each Compute Instance and used for internal routing. - -- **/64 Routed Range:** This is the most common range provided to our customers and sufficient for most applications that require additional IPv6 addresses. A single /64 range provides 18,446,744,073,709,551,616 addresses that can be used when configuring the applications within your system. See the [Linux Static IP Configuration](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide for instructions on configuring specific addresses from a range. By default, up to one /64 range can be added per customer per data center. - -- **/56 Routed Range:** These larger ranges are typically only required by specialized systems or networking applications. A single /56 range provides 4,722,366,482,869,645,213,696 addresses that can be used when configuring the applications within your system. See the [Linux Static IP Configuration](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide for instructions on configuring specific addresses from a range. By default, up to one /56 range can be added per customer per data center. - -- **/116 Pool:** *(4,096 addresses)* An IPv6 pool is accessible from every Linode on your account within the assigned data center. Addresses from that pool can be configured on each Linode within that data center. This can enable features like IPv6 failover. By default, up to one /116 pool can be added per customer per data center. - - {{< note type="alert" >}} - The IPv6 /116 prefix has been deprecated and is no longer available for new Compute Instances. If you have an existing Compute Instance with a /116 pool, please review the [Upcoming Changes Related to Network Infrastructure Upgrades](/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/) to learn about changes that may affect your services. - {{< /note >}} - -## Adding an IP Address - -Follow the instructions below to add an public IPv4, private IPv4, or IPv6 range to your Compute Instance. By default, up to one /64 and /56 range can be added per customer per data center. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Linodes** link in the sidebar. -1. Click on your Linode Compute Instance from the list and navigate to the **Network** tab. -1. Click the **Add an IP Address** button under the *IP Address* section. This displays the *Add an IP Address* panel. - - ![The Add IP Address button](add-ip-address-button.png) - -1. Within the form, select the type of IP address (or range) you wish to add. If you aren't sure, review the [Types of IP Addresses](#types-of-ip-addresses) section and consider your own use case. - - ![The Add IP Address form](add-ip-address-form.png) - -1. Click the **Allocate** button to add the additional address. If you receive a message similar to the following, you need to [contact our Support team](https://www.linode.com/support/) to request the IP address. Make sure to include any additional information or technical reasoning for the request. - - > Additional IPv4 addresses require technical justification. Please open a Support Ticket describing your requirement - - Once the IP address or range has been added, it should be visible in the *IP Address* section. - -1. To make sure the new IP address is configured within the internal system of the Compute Instance, verify that [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) is enabled and reboot the Compute Instance. - - If Network Helper is turned off *and* you've [configured a static IP address](/docs/products/compute/compute-instances/guides/manual-network-configuration/), you need to update the configuration files with the new IP address or enable Network Helper. - -{{< note >}} -Due to the [impending exhaustion of the IPv4 address space](http://en.wikipedia.org/wiki/IPv4_address_exhaustion), Linode requires users to provide technical justification for additional public IPv4 addresses. If you have an application that requires multiple IP addresses, consider using an IPv6 /64 range instead. Note that pricing for additional public IPv4 addresses may vary by region. -{{< /note >}} - -## Configuring rDNS - -To change the rDNS value on an IP address, follow the instructions within the [Configure rDNS](/docs/products/compute/compute-instances/guides/configure-rdns/) guide. - -## Deleting an IP Address - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Linodes** link in the sidebar. -1. Click on your Linode Compute Instance from the list and navigate to the **Network** tab. -1. Select the **Delete** menu option for the IP address you'd like to remove - - ![Select 'Delete' option from the IP address menu.](delete-ip-address-button.png) - -1. A pop-up confirmation dialog appears. Click the **Delete Range** button to confirm the request. - -1. To make sure the IP address is removed from the internal system of the Compute Instance, verify that [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) is enabled and reboot the Compute Instance. - - If Network Helper is turned off *and* you've [configured a static IP address](/docs/products/compute/compute-instances/guides/manual-network-configuration/), you need to update the configuration files to remove the IP address or enable Network Helper. - -## Transferring IP Addresses - -If you have two Compute Instances in the same data center, you can use the *IP transfer* feature to move or swap their IP addresses. This feature is especially useful when replacing one Compute Instance with another. It lets you quickly move the IP addresses to the new Instance without needing to manually adjust DNS records with the new addresses. - -{{< note >}} -This process only transfers IPv4 addresses and IPv6 ranges, not IPv6 SLAAC addresses. See [Transferring an IPv6 SLAAC Address](#transferring-an-ipv6-slaac-address) below for a workaround. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Linodes** link in the sidebar. - -1. Click on your Linode Compute Instance from the list and navigate to the **Network** tab. - -1. Press the **IP Transfer** button in the *IP Addresses* table. - - ![IP Transfer button](ip-transfer-button.png) - -1. Locate the IP address or range you would like to transfer and select an action from the dropdown menu: - - - **Move To:** moves the IP address to another Compute Instance. When choosing this option, select the destination Compute Instance in the next dropdown menu that appears. If you are moving a public IPv4 address, there needs to be at least one remaining public IPv4 address on the source Compute Instance. - - **Swap With:** swaps the IP addresses of two Compute Instances. When choosing this option, select the destination Compute Instance in the next dropdown menu that appears. Then select the IP address (belonging to the destination Compute Instance) you would like to swap with the originally selected IP address. - - ![The IP Transfer menu in Cloud Manager](remote_access_ip_transfer.png) - - {{< note >}} - The *IP Transfer* form only displays Compute Instances hosted in the same data center as the current Instance. - {{< /note >}} - -1. Click **Save** to transfer the requested IPs. - -1. To make sure the new IP addresses take affect within the internal configuration of each Compute Instance, verify that [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) is enabled and reboot the affected Instance(s). It may take up to 1-2 minutes for the transfer to take affect. - - If Network Helper is turned off *and* you've [configured a static IP address](/docs/products/compute/compute-instances/guides/manual-network-configuration/), you need to update the configuration files with the new IP addresses or enable Network Helper. - - {{< note >}} - If the IP is unreachable after a few minutes, you may need to notify the router directly of the IP change with the `arp` command run on your Compute Instance: - - ```command - arping -c5 -I eth0 -s 198.51.100.10 198.51.100.1 - ping -c5 198.51.100.10 198.51.100.1 - ``` - - Replace `198.51.100.10` with your new IP address, and `198.51.100.1` with the gateway address listed in your Networking tab under the **Default Gateways** column of the *IP Addresses* table. - {{< /note >}} - -### Transferring an IPv6 SLAAC Address - -IPv6 SLAAC addresses are not able to be transferred between Compute Instances. If this is something you need to do, consider moving the applications you want to be hosted on that IPv6 address over to the Compute Instance containing that IPv6 address. One way to accomplish this is to clone the disks containing the data. See the [Cloning to an Existing Linode](/docs/products/compute/compute-instances/guides/clone-instance/#clone-to-an-existing-compute-instance) section of the **Cloning a Linode** guide. After the cloning process has completed, transfer any required IPv4 addresses. - -## Configuring IP Sharing - -*IP Sharing* is a feature that enables two Compute Instances to be assigned the same IP address for the purpose of configuring failover. Within a typical failover setup, traffic on the shared IP address is routed to the primary instance. In the event that instance fails or goes down, traffic is automatically re-routed to the secondary instance. While IP Sharing can be configured in Cloud Manager, failover must be manually configured within the internal system of both Compute Instances. See [Configuring IP Failover](/docs/products/compute/compute-instances/guides/failover/) to learn more about configuring failover. - -{{< note >}} -Not all data centers currently support IP Sharing. Additionally, some data centers only support IPv4 sharing, while others also support IPv6 routed ranges (/64 and /56). To determine if IP Sharing is supported in a particular data center, see [Configuring IP Failover > IP Sharing Availability](/docs/products/compute/compute-instances/guides/failover/#ip-sharing-availability). -{{< /note >}} - -{{< note type=warning >}} -When IP Sharing is enabled for an IP address, all connectivity to that IP address is immediately lost *until* it is configured on [Lelastic](/docs/products/compute/compute-instances/guides/failover/#install-and-configure-lelastic), [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/), or another routing software. This is not an issue when adding a new IP address, but should be considered if you are enabling IP Sharing on an existing IP address that is actively being used. -{{< /note >}} - -To learn how to enable IP Sharing within Cloud Manager, review the following steps. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Linodes** link in the sidebar. - -1. Determine which two Compute Instances are to be used within your failover setup. They both must be located in the same data center. Make sure the IP address you wish to share has been added to one of those instances. If not, add it now. See [Adding an IP Address](#adding-an-ip-address). - -1. Of those two Compute Instances, select the one that does not yet have the Shared IP addresses assigned to it. Then, navigate to the **Network** tab. -1. Click the **IP Sharing** button under the *IP Addresses* section. - - ![Configuring IP sharing](ip-sharing-button.png) - -1. The *IP Sharing* form appears with a list of IP addresses that are available to be shared. Select the IP address you wish to share with this Compute Instance. - - ![Select a Linode to share an IP address with.](remote_access_ip_sharing_add_an_ip.png) - - {{< note >}} - If your desired IP address does not appear in that list, verify that the Compute Instance to which it belongs has at least two public IPv4 addresses or has been assigned an IPv6 routed range (/56 or /64). - {{< /note >}} - -1. Click **Save** to enable IP Sharing. - -1. After enabling IP Sharing in Cloud Manager, the next step is to configure a failover service (such as FRR, lelastic, or Keepalived) within the internal system on each Compute Instance. For more information, see our guide on [Configuring IP Failover](/docs/products/compute/compute-instances/guides/failover/). - -## Viewing the DNS Resolvers' IP Addresses - -Each data center has its own set of DNS resolvers, which are accessed through both IPv4 or IPv6 addresses. To view the DNS resolvers, follow the instructions below. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Linodes** link in the sidebar. - -1. Click on your Linode Compute Instance from the list to view more details. - -1. Navigate to the **Network** tab and review the **DNS Resolvers** list, which should appear to the right of (or below) the network transfer graph. - - ![Screenshot of the DNS resolvers in Cloud Manager](dns-resolvers.png) - -## Confirming IP Addresses are Correctly Configured - -Our platform's [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) tool automatically configures the internal network settings of your instance's Linux system. This ensures changes made to your IP addresses within Cloud Manager are also made internally on your instance. If you decide not to use Network Helper or are using a custom unsupported distribution, you need to manually configure your system's networking. In this case, review the [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide. - -To verify that your IP addresses are correctly configured, run the `ip` command on your instance (see [man pages reference](https://linux.die.net/man/8/ip)), specifically `ip a show` (`ip addr show`). For more information on using this command, see our [Use the ip Command in Linux](/docs/guides/how-to-use-the-linux-ip-command/#how-to-find-your-ip-address) guide. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/ip-sharing-button.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/ip-sharing-button.png deleted file mode 100644 index c72460cd342..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/ip-sharing-button.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/ip-transfer-button.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/ip-transfer-button.png deleted file mode 100644 index f3637dfd197..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/ip-transfer-button.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/remote_access_ip_sharing_add_an_ip.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/remote_access_ip_sharing_add_an_ip.png deleted file mode 100644 index c64734d9eb0..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/remote_access_ip_sharing_add_an_ip.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-ip-addresses/remote_access_ip_transfer.png b/docs/products/compute/compute-instances/guides/manage-ip-addresses/remote_access_ip_transfer.png deleted file mode 100644 index a9f7d633ab1..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-ip-addresses/remote_access_ip_transfer.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-the-kernel/grub-prompt.png b/docs/products/compute/compute-instances/guides/manage-the-kernel/grub-prompt.png deleted file mode 100644 index 88564f920e8..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-the-kernel/grub-prompt.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manage-the-kernel/index.md b/docs/products/compute/compute-instances/guides/manage-the-kernel/index.md deleted file mode 100644 index 657c1d6e307..00000000000 --- a/docs/products/compute/compute-instances/guides/manage-the-kernel/index.md +++ /dev/null @@ -1,258 +0,0 @@ ---- -title: "Manage the Kernel on a Compute Instance" -title_meta: "How to Manage the Kernel on a Compute Instance" -description: "Information on finding your Compute Instance's kernel version (and type) as well as changing and updating the kernel." -published: 2021-08-13 -modified: 2024-02-22 -keywords: ["kernel", "grub"] -tags: ["linode platform","cloud manager"] -aliases: ['/tools-reference/custom-kernels-distros/run-a-distribution-supplied-kernel-with-kvm/','/platform/how-to-change-your-linodes-kernel/','/run-a-distribution-supplied-kernel-with-kvm/','/tools-reference/custom-kernels-distros/run-a-distribution-supplied-kernel/','/platform/update-kernel/', '/guides/how-to-change-your-linodes-kernel/', '/guides/update-kernel/','/guides/managing-the-kernel-on-a-linode/'] ---- - -The primary component of every Linux system is the *Linux kernel*. The kernel interfaces with the system's hardware and it controls the operating system's core functionality. This guide covers the types of kernels that can be assigned to a Compute Instance and how to view, update, or change the kernel. - -## Types of Kernels - -Your Compute Instance is capable of running one of three kinds of kernels: - -- **Upstream kernel** (or *distribution-supplied kernel*): This kernel is maintained and provided by your Linux distribution. A major benefit of this kernel is that the distribution was designed with this kernel in mind and all updates are managed through the distributions package management system. It also may support features not present in the Linode kernel (for example, [SELinux](/docs/guides/a-beginners-guide-to-selinux-on-centos-7/)). - -- **Linode kernel:** Linode also maintains kernels that can be used on a Compute Instance. If selected, these kernels are provided to your Compute Instance at boot (not directly installed on your system). The [Current Kernels](https://www.linode.com/kernels) page displays a list of all the available Linode kernels. - -- **Custom-compiled kernel:** A kernel that you compile from source. Compiling a kernel can let you use features not available in the upstream or Linode kernels, but it takes longer to compile the kernel from source than to download it from your package manager. For more information on custom compiled kernels, review our guides for [Debian, Ubuntu,](/docs/guides/custom-compiled-kernel-debian-ubuntu/) and [CentOS](/docs/guides/custom-compiled-kernel-centos-7/). - -Most of the distribution images available on Linode use the upstream distribution-supplied kernel by default. - -## Determine Which Kernel Is Installed - -There are may ways you can determine which kernel version is installed on your Linux system. The following instructions cover the most common methods: - -1. Log in to the Compute Instance through either [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Run one of the following commands to display the kernel version: - - - `uname -r`: Outputs a single line with just the kernel version. - - `hostnamectl`: Outputs an organized list of system details, including the kernel version. Can only be used on distributions with [systemd](https://en.wikipedia.org/wiki/Systemd) (Debian, Ubuntu, CentOS, openSUSE, and more). - - `cat /proc/version`: Outputs a string that contains the kernel version and release details. - -The kernel version should be a string that's similar to `5.4.0-80-generic`. In this example, the kernel ends with `generic`, which is common in Ubuntu systems to designate that this is an upstream kernel. If the kernel ends with something similar to `linode123`, a Linode kernel is being used and the string matches the precise Linode kernel release. - -## View and Modify the Kernel in Cloud Manager - -You can use Cloud Manager to view the type of kernel you are using. If you are using a Linode kernel (not an upstream kernel), you can also view the kernel version. - -{{< note >}} -These instructions may not accurately reflect the actual kernel version installed. This is especially true if the Compute Instance hasn't been rebooted in a while or wasn't rebooted after a change to the instance's Configuration. To determine the actual kernel version installed on your system, see [Determining Which Kernel Is Installed](#determining-which-kernel-is-installed). -{{< /note >}} - -1. Navigate to your Compute Instance in [Cloud Manager](https://cloud.linode.com) and click the **Configuration** tab. - -1. Find your current *Configuration* and click the corresponding **Edit** link. This may be located within the **More Options Ellipses** dropdown menu. - -1. Scroll to the *Boot Settings* section. - -1. Review the **Kernel** dropdown menu selection. - - - **Latest 64 bit** and **Latest 32 bit**: Uses one of the latest 64-bit or 32-bit Linode kernels at the time the Compute Instance boots/reboots, depending on which option you selected. Since new kernel releases are rolled out over a short time period, the actual kernel used by your system may be one or two releases behind. This setting was the default for most distributions before August 2018. - - **Direct Disk**: Instead of a Linux Kernel, this uses the MBR (Master Boot Record) of the primary disk*. - - **GRUB 2**: Uses the upstream distribution-supplied kernel that's installed on the primary disk. If a custom kernel has been installed instead, that is used instead. **This is the most common option and has been the default for most new Compute Instances created after August 2018.** - - **GRUB (Legacy)**: Uses the upstream distribution-supplied kernel that's installed on the primary disk*. This should only be used on older Linux distributions that have Grub (not Grub 2) installed, like CentOS 6. - - **Specific Linode Kernel**: Lets you specify the exact Linode kernel to use. Since this kernel is maintained regardless of reboots or system updates, it may be preferred in some use cases. - - *\*Primary disk: the disk assigned as the "Root Device" within the instance's Configuration Profile.* - -1. Make any desired changes and click the **Save Changes** button. Otherwise, if no changes were made, click **Cancel**. - -1. If any changes were made, reboot your Compute Instance for the new kernel to take affect. - -## Update the Kernel - -Provided a newer kernel is available, you should be able to either manually (or automatically) update the kernel. The exact steps vary depending on the type of kernel and, for upstream kernels, the Linux distribution you are using. - -### Updating the Linode Kernel - -Follow these steps if the Compute Instance is using a Linode kernel: - -- **Latest 64-bit or 32-bit kernel**: Rebooting the Compute Instance automatically updates the kernel used within your system to one of the latest Linode kernel release. Since new kernel releases are rolled out over a short time period, the actual kernel used by your system may be one or two releases behind. -- **Specific kernel version** (ex: `5.12.2-x86_64-linode144`): To update your kernel, follow the instructions within the [Viewing and Modifying the Kernel in Cloud Manager](#viewing-and-modifying-the-kernel-in-cloud-manager) section. When selecting the kernel in the instance's Configuration Profile, chose your desired kernel version (or select `Latest 64 bit`), save the changes, and reboot your Compute Instance. - -### Update the Upstream Kernel - -Follow these steps if the Compute Instance is using an upstream kernel (the default for most new instances created after August 2018): - -1. Log in to the Compute Instance through either [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Upgrade any system packages related to the kernel: - - - **Ubuntu** - - ```command - sudo apt update && sudo apt install linux-generic - ``` - - - **Debian** - - ```command - sudo apt update && sudo apt install linux-base - ``` - - - **CentOS Stream, CentOS 8, AlmaLinux 8, Rocky Linux 8, and Fedora** - - ```command - sudo dnf upgrade kernel - ``` - - - **CentOS 7** - - ```command - sudo yum update kernel - ``` - - Alternatively, you can upgrade all packages on your system. For specific commands, review the Update/Upgrade sections in the guides for your [package manager](/docs/guides/linux-package-management-overview/). See [APT](/docs/guides/apt-package-manager/#upgrading-packages) (for Ubuntu and Debian), [DNF](/docs/guides/dnf-package-manager/#upgrade-packages) (for CentOS Stream, CentOS 8, AlmaLinux 8, Rocky Linux 8, and Fedora), and [YUM](/docs/guides/yum-package-manager/#upgrading-packages) (for CentOS 7). - -1. Reboot the Compute Instance. - -## Considerations When Switching From a Linode Kernel to GRUB2 - -While switching to GRUB2 is usually an easy seamless change, there are some fringe issues that can effect specific configurations. - -### Asynchronous SCSI Scans - -At the time of this writing, if you wish to switch from a Linode kernel to GRUB2, there is a known issue related to Asynchronous SCSI scans that can in some cases cause disks to be created with the wrong address. For example, a disk that may be created as a device to be addressed to `/dev/sda` may instead appear on `/dev/sdb`. This issue can most commonly be identified with an error message that is the same or similar to the following when the boot device is set to `/dev/sda`: - -`Failed to mount /dev/sda as root file system` - -Users can generally resolve this issue by either using the latest upstream kernel instead, or by adding a kernel parameter to the grub configuration file, usually found in `/etc/default/grub` to disable the asynchronous scanning which causes the issue. To do this, ensure that you do not delete other lines in the grub configuration file and append the following line to the end of the file: - -```file {title="/etc/default/grub"} -scsi_mod.scan=sync -``` - -Once the file has been edited, GRUB2 will need to be manually restarted. While this command will vary between Distros, using the following command will complete this task for **Debian** and **Ubuntu**: - -```command -update-grub -``` - -Users that rely on **CentOS** or other **RHEL** based operating systems should instead enter the following: - -```command -sudo grub2-mkconfig -o /boot/grub2/grub.cfg -``` - -Once completed, the disks should be read by GRUB2 correctly. - -### SELinux - -In older systems created before August 2018, CentOS 7 and Fedora ship with [SELinux](/docs/guides/a-beginners-guide-to-selinux-on-centos-7/) running in enforcing mode by default. When switching from the Linode kernel to the upstream kernel, SELinux may need to relabel your filesystem at boot. When the relabeling completes, the Compute Instance will shut down. If you have [Lassie](/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/) enabled, the instance will automatically boot back up following the shut down. If you do not have Lassie enabled, you will need to manually reboot from Cloud Manager. - -![SELinux filesystem relabel](selinux-filesystem-relabel.png "SELinux filesystem relabel") - -You can trigger the relabel process by creating an empty `/.autorelabel` file and then rebooting: - -```command -touch /.autorelabel -``` - -### No Upstream Kernel Installed - -If your system does not boot and instead shows a GRUB command line prompt in Lish like shown below, then you need to install the kernel and configure GRUB. **This should only be necessary on Compute Instances which were created before February 2017.** If this is the case, switch back to the Linode kernel in your configuration profile, reboot your Compute Instance, and then follow this guide's instructions for installing the kernel. - -![GRUB prompt](grub-prompt.png "GRUB prompt") - -## Installing the Upstream Kernel and Configuring GRUB - -For new Compute Instances, an upstream kernel is already installed on your system and you **do not need to follow these steps**. In the case of older instances, this section outlines how to get both an upstream kernel (and GRUB) installed and configured on your system. - -1. Log in to the Compute Instance through either [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Update your package management system and install the Linux kernel and GRUB 2. Choose `/dev/sda` if you're asked which disk to install to during installation. Linode provides the GRUB bootloader, so your system only needs to provide a `grub.cfg` file. - - - **Ubuntu** - - ```command - sudo apt update && sudo apt install linux-generic grub2 - ``` - - - **Debian** - - ```command - sudo apt update && sudo apt install linux-image-amd64 grub2 - ``` - - - **CentOS Stream, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora** - - ```command - sudo dnf upgrade && sudo dnf install kernel grub2 - ``` - - - **CentOS 7** - - ```command - sudo yum update && sudo yum install kernel grub2 - ``` - - - **Arch Linux** - - ```command - sudo pacman -Syu && sudo pacman -S linux grub - ``` - - - **Gentoo** - - ```command - emerge -avDuN world - ``` - - There are two main ways to install Gentoo's kernel: Manual configuration and using the `genkernel` tool. Which you use and how you configure the kernel will depend on your preferences, so see the [Gentoo Handbook](https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel) for instructions. - - When the installation finishes, the kernel and other components are located in the `/boot` directory. For example: - - ```output - [root@archlinux ~]# ls /boot - grub initramfs-linux-fallback.img initramfs-linux.img vmlinuz-linux - ``` - -1. Next, configure the serial console and other GRUB settings so you can use [Lish](/docs/products/compute/compute-instances/guides/lish/) and [Glish](/docs/products/compute/compute-instances/guides/glish/). This is outlined in the following steps. - -1. Open `/etc/default/grub` in a text editor and go to the line beginning with `GRUB_CMDLINE_LINUX`. Remove the word `quiet` if present, and add `console=ttyS0,19200n8 net.ifnames=0`. Leave the other entries in the line. For example, on CentOS 7 you should have something similar to: - - ```command - GRUB_CMDLINE_LINUX="crashkernel=auto rhgb console=ttyS0,19200n8 net.ifnames=0" - ``` - -1. Add or change the options in `/etc/default/grub` to match the following snippet. There are other variables in this file, but the current changes are only focused on these lines. - - ```file {title="/etc/default/grub"} - GRUB_TERMINAL=serial - GRUB_DISABLE_OS_PROBER=true - GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1" - GRUB_DISABLE_LINUX_UUID=true - GRUB_GFXPAYLOAD_LINUX=text - GRUB_ENABLE_BLSCFG=false - ``` - -1. Prepare and update the bootloader: - - - **Debian and Ubuntu** - - ```command - sudo update-grub - ``` - - - **CentOS** - - The `.autorelabel` file is necessary to queue the SELinux file system relabeling process when rebooting from the Linode kernel to the CentOS kernel. - - ```command - mkdir /boot/grub - ln -s /boot/grub2/grub.cfg /boot/grub/grub.cfg - grub2-mkconfig -o /boot/grub/grub.cfg - touch /.autorelabel - ``` - - - **Arch and Gentoo** - - ```command - grub-mkconfig -o /boot/grub/grub.cfg - ``` diff --git a/docs/products/compute/compute-instances/guides/manage-the-kernel/selinux-filesystem-relabel.png b/docs/products/compute/compute-instances/guides/manage-the-kernel/selinux-filesystem-relabel.png deleted file mode 100644 index f3b079ae8ce..00000000000 Binary files a/docs/products/compute/compute-instances/guides/manage-the-kernel/selinux-filesystem-relabel.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/manual-network-configuration/index.md b/docs/products/compute/compute-instances/guides/manual-network-configuration/index.md deleted file mode 100644 index 995a5cbe1e6..00000000000 --- a/docs/products/compute/compute-instances/guides/manual-network-configuration/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Manual Network Configuration on a Compute Instance" -description: "Learn how to manually edit your distribution-specific network configuration files to set static IPs, routes and DNS resolvers." -published: 2023-09-05 -modified: 2024-05-28 -keywords: ["static", "ip address", "addresses"] -tags: ["networking","linode platform"] -aliases: ['/networking/linux-static-ip-configuration/','/networking/configuring-static-ip-interfaces/','/networking/linode-network/linux-static-ip-configuration/','/guides/linux-static-ip-configuration/','/guides/manual-network-configuration/'] ---- - -Every Compute Instance is assigned several IP addresses, including a public IPv4 address and a public IPv6 [SLAAC](https://en.wikipedia.org/wiki/IPv6#Stateless_address_autoconfiguration_.28SLAAC.29) address. By default, a utility called [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) automatically configures these IP addresses within the network configuration files on the Compute Instance. While this is preferred in most cases, there are some situations which may require you to manually configure networking yourself. These situations include: - -- Installing a custom distribution on a Compute Instance -- Configuring failover (see [Configuring Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/)) -- Assigning addresses from an IPv6 routed range -- Using other DNS resolvers (not Linode’s) -- Other advanced use cases where custom network configuration is required - -The guides in this series walk you through how to manually configure your networking in most common Linux distributions. To learn more about the types of IP addresses available on a Compute Instance, review the [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#types-of-ip-addresses) guide. Additional public IPv4 addresses, private IPv4 addresses, and IPv6 routed ranges (/64 or /56) can be added manually or by opening a [support ticket](/docs/products/platform/get-started/guides/support/) and detailing your requirements. - -## Network Configuration Software in Linux - -All Linux distributions have pre-installed software whose purpose is to manage the internal networking on the system. In most cases, using this default software is preferred. That said, advanced users may wish to install their own preferred tool. - -### Default Network Configuration Software by Distribution - -The following table contains a list of each Linux distribution offered by Linode. Alongside each distribution is the default network software that it uses and a link to a guide for help with configuring that software. - -| Distribution | Network Manager | -| -- | -- | -| AlmaLinux 8 and above | [NetworkManager](/docs/products/compute/compute-instances/guides/networkmanager/) | -| Alpine | [ifupdown-ng](/docs/products/compute/compute-instances/guides/ifupdown/) | -| Arch | [systemd-networkd](/docs/products/compute/compute-instances/guides/systemd-networkd/) | -| CentOS 7 and 8 | [NetworkManager](/docs/products/compute/compute-instances/guides/networkmanager/) | -| CentOS Stream 8 and above | [NetworkManager](/docs/products/compute/compute-instances/guides/networkmanager/) | -| Debian 9 and above | [ifupdown](/docs/products/compute/compute-instances/guides/ifupdown/) | -| Fedora | [NetworkManager](/docs/products/compute/compute-instances/guides/networkmanager/) | -| Gentoo | netifrc | -| Rocky Linux 8 and above | [NetworkManager](/docs/products/compute/compute-instances/guides/networkmanager/) | -| Slackware | netconfig | -| openSUSE Leap | wicked | -| Ubuntu 16.04 | [ifupdown](/docs/products/compute/compute-instances/guides/ifupdown/) | -| Ubuntu 18.04 and above | [systemd-networkd](/docs/products/compute/compute-instances/guides/systemd-networkd/) and [Netplan](/docs/products/compute/compute-instances/guides/netplan/) | - -To manually configure networking, follow the associated guide and/or the official manual for the networking software and Linux distribution you are using. - -## Static vs Dynamic Addressing - -IP addresses can be statically configured or dynamically configured through DHCP (for public IPv4 addresses) and SLAAC (for primary IPv6 addresses). - -- **Static** configuration means explicitly defining the IP address within your system's network configuration. IPv4 addresses are configured this way through Network Helper and static configuration of IPv4 and IPv6 routed ranges is typically recommended when manually configuring your networking. - -- **DHCP** (Dynamic Host Configuration Protocol) can be used to automatically configure a single IPv4 address on a Compute Instance. If you intend on adding or removing public IPv4 addresses after you initially configure networking, using DHCP is not recommended as it may configure a different public IPv4 address after you make those changes. - - **Public interfaces**: If multiple IPv4 addresses are on the system, the first IP address (sorted alpha-numerically) is used. DHCP does not configure private IPv4 addresses or any IPv6 addresses. - - **VPC interfaces**: DHCP can be used to automatically configure the VPC IP address. - - {{< note >}} - If you do enable DHCP and are using a firewall (such as Cloud Firewalls), you must configure the firewall to allow communication with our DHCP servers. See the [DHCP IP Address Reference](/docs/products/compute/compute-instances/guides/dhcp-ip-address-reference/) guide for a list of IP addresses to allow. - {{< /note >}} - - {{< note >}} - If you have a Compute Instance with a public interface and a VPC interface, a default gateway will be configured for both interfaces when using DHCP. This will cause issues routing traffic towards the internet and other VPC subnets. To address this, manually remove one of the default gateways. - {{< /note >}} - -- **SLAAC** (Stateless address autoconfiguration) can *and should* be used to automatically configure the main IPv6 address on a Compute Instance. It does not configure any IPv6 routed ranges (/64 or /56) that may also be assigned to that instance. For SLAAC to function, the Compute Instance needs to accept router advertisements. This is accomplished by enabling router advertisements and disabling IPv6 privacy extensions within your system's networking configuration files. These settings are properly configured by default in our supported distributions. - -Static and dynamic addressing can be used together within a single configuration file. As an example, you can use DHCP to configure the public IPv4 address on your system, use SLAAC to configure your IPv6 address, and statically configure any remaining addresses (such as private IPv4 address or addresses from an IPv6 routed range). - -## Networking Terms - -- **IP address:** A unique and structured combination of numbers (and letters, for IPv6 address) used to identify a device over a network. Every Linode Compute Instance is assigned a public IPv4 address and a public IPv6 address. Additional IP addresses, including private IPv4 addresses and IPv6 routed ranges, are available. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) for information on viewing your IP addresses. - -- **Interface:** A real or virtual device that is responsible for facilitating a connection to a network. There are three available network interfaces corresponding to the devices assigned within the Linux system: *eth0*, *eth1*, and *eth2*. See [Managing Configuration Profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) for instructions on viewing the interfaces configured on your Compute Instance. - -- **Gateway:** Provides access to a larger network, such as the internet. When configuring a Compute Instance, you only need to specify a gateway for one interface. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) for details on finding the gateway IP address that corresponds with the primary IPv4 address you wish to use. - -- **DNS resolver:** A server responsible for matching domain names to IP addresses. Linode provides DNS resolvers for each data center, though you are free to use others if you choose. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#viewing-the-dns-resolvers-ip-addresses) for instructions on viewing the DNS resolvers. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/metadata-api/index.md b/docs/products/compute/compute-instances/guides/metadata-api/index.md deleted file mode 100644 index a2e0dd49135..00000000000 --- a/docs/products/compute/compute-instances/guides/metadata-api/index.md +++ /dev/null @@ -1,222 +0,0 @@ ---- -title: "How to Use the Metadata Service API" -description: 'This guide provides a reference for using the Metadata service API directly.' -published: 2024-01-03 -keywords: ['cloud-init','api','metadata'] ---- - -Akamai's [Metadata service](/docs/products/compute/compute-instances/guides/metadata/) offers an API for use in automated deployment configurations. Compatible versions of cloud-init can leverage the Metadata service to automatically configure new Compute Instances at deployment. However, the Metadata service's API can also be accessed directly. Doing so provides access to both instance and user data. - -In this reference guide, learn more about the available API endpoints for the Metadata service and how to use them. Follow along to find out how to access the API from your Compute Instance and what to expect from each endpoint. - -## API Endpoints - -To access the Metadata API, you need to be on a Compute Instance. If you have not done so already, follow along with our guide on [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) before moving forward. - -Once you have an instance deployed, the Metadata API is accessible via link-local addresses, specifically: - -- **IPv4**: `169.254.169.254` -- **IPv6**: `fd00:a9fe:a9fe::1` - -Each Metadata API endpoint provides instance data or user data. *Instance data* includes information related to the deployment and the instance itself, while *User data* consists of a specific field submitted when deploying the instance. - -{{< note >}} -Only select regions support submission of user data. Additionally, a limited number of distributions are officially supported by Akamai's Metadata service and cloud-init. To learn more about Metadata and cloud-init support, review the Availability section of our [Overview of the Metadata Service](/docs/products/compute/compute-instances/guides/metadata/#availability) guide. -{{< /note >}} - -The sections that follow list each endpoint, explain their usage, and provide examples of the expected output. Using the `Accept` header, output can generally be in either the default `text/plain` format or the `applciation/json` format. - -To demonstrate, the guide provides example output in the plain-text format and shows the response structure in JSON format where applicable. - -### Authentication Tokens (/v1/token) - -Use of the Metadata API always starts with the `token` endpoint. Use this endpoint to authenticate a new session and receive a Metadata token for accessing subsequent Metadata endpoints from your instance. - -While all other Metadata endpoints use `GET`, requests to this endpoint use the `PUT` method: - -```command -curl -X PUT -H "Metadata-Token-Expiry-Seconds: 3600" http://169.254.169.254/v1/token -``` - -These requests provide a `Metadata-Token-Expiry-Seconds` header, which indicate the token's expiry time in seconds: - -```output -e80eb80986f17fcd3df8fcb6ea944774cae47b26ed6d68df63a15b294b7a6e3f -``` - -When using the JSON format, the endpoint's response is an array containing the token string: - -```output -[ "token" ] -``` - -From here on, this guide assumes you have already acquired a Metadata token. For convenience, subsequent examples use `$TOKEN` in place of the actual token string. Follow along by storing the token in an [environment variable](/docs/guides/how-to-set-linux-environment-variables/), as shown here: - -```command -export TOKEN=$(curl -X PUT -H "Metadata-Token-Expiry-Seconds: 3600" http://169.254.169.254/v1/token) -``` - -### Instance Data (/v1/instance) - -To receive information about the Compute Instance itself, use the `instance` endpoint: - -```command -curl -H "Metadata-Token: $TOKEN" http://169.254.169.254/v1/instance -``` - -The output includes information on the identity of the instance, its specifications, and its backup scheduling: - -```output -backups.enabled: false -host_uuid: 123abc456def789ghi -id: 532754976 -label: example-linode-instance -region: us-iad -specs.disk: 51200 -specs.gpus: 0 -specs.memory: 2048 -specs.transfer: 2000 -specs.vcpus: 1 -type: g6-standard-1 -``` - -The endpoint's response is structured as shown below using the JSON format: - -```output -{ - “id”: int, - “host_uuid”: str, - “label”: str, - “region”: str, - “type”: str, - “tags”: array of str, - “specs”: { - “vcpus”: int, - “memory”: int, - “disk”: int, - “transfer”: int, - “gpus”: int - }, - “backups”: { - “enabled”: bool, - “status”: str[pending/running/complete] or null - } -} -``` - -The overall object provides identifying information about the instance, such as `ID`, `label`, and `tags`. A nested `specs` object details the instance specifications, while a nested `backups` object provides the status of backups for the instance. - -### Network Data (/v1/network) - -To retrieve information about how the instance's networking is configured, use the `network` endpoint: - -```command -curl -H "Metadata-Token: $TOKEN" http://169.254.169.254/v1/network -``` - -Refer to this endpoint when you need to identify the instance's IP addresses, configured network interfaces, and those interfaces' IPAM addresses: - -```output -ipv4.public: 192.0.2.0/24 -ipv6.link_local: fe80::db8:1b3d:e5g7::/64 -ipv6.slaac: 2600:3c05::db8:1b3d:e5g7::/64 -``` - -The endpoint's response follows the JSON structuring shown below: - -```output -{ - “interfaces”: [ - { - “purpose”: str[public/vlan], - “label”: str, - ipam_address”: str[optional] - }, - ], - “ipv4”: { - “public”: array of str, - “private”: array of str, - “elastic”: array of str - }, - “ipv6”: { - “ranges”: array of str, - “link-local”: array of str - “elastic-ranges”: array of str - } -} - -``` - -The `interfaces` array shows what interfaces, if any, the instance has. However, a default "eth0 - Public Internet" interface alone does not result in any output here. The `ipv4` and `ipv6` objects list the various addresses configured for the instance. - -### SSH Keys (/v1/ssh-keys) - -Use the `ssh-keys` endpoint to acquire a list of all SSH keys and associated users configured for the instance: - -```command -curl -H "Metadata-Token: $TOKEN" http://169.254.169.254/v1/ssh-keys -``` - -The output lists each user by username, along with an array of associated keys: - -```output -users.example-user: EXAMPLE_SSH_PUBLIC_KEY -users.root: ROOT_SSH_PUBLIC_KEY -``` - -The endpoint's output uses the structure shown below for JSON requests: - -```output -{ - “users”: { - “root”: array of str, - “username”: array of str - } -} -``` - -A `root` array lists keys for the root user. Other users each have their own array of keys, with the username acting as a label. - -### User Data (/v1/user-data) - -The `user-data` endpoint returns the user data submitted during the instance's deployment. Typically, this user data consists of a cloud-config script to be used by cloud-init for automating deployment. However, when accessing the Metadata service directly, you may utilize the user data for other purposes. If no user data was submitted, nothing will be returned. - -Submitted user data is required to be encoded using `base64`, so you need to decode the returned string to view the expected user data: - -```command -curl -H "Metadata-Token: $TOKEN" http://169.254.169.254/v1/user-data | base64 --decode -``` - -The output from this endpoint is simply the user data contents. There is no further formatting. For this reason, the endpoint only accepts the `text/plain` format, not `application/json`, format. - -Below is example cloud-config user data for a basic instance. This is just an example and the specific content varies depending on the user data submitted when initializing the instance. - -```output -#cloud-config - -# Configure a limited user -users: - - default - - name: example-user - groups: - - sudo - sudo: - - ALL=(ALL) NOPASSWD:ALL - shell: /bin/bash - ssh_authorized_keys: - - "SSH_PUBLIC_KEY" - -# Perform system updates -package_update: true -package_upgrade: true - -# Configure server details -timezone: 'US/Central' -hostname: examplehost - -# Harden SSH access -runcmd: - - sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config - - echo "PermitRootLogin no" >> /etc/ssh/sshd_config - - systemctl restart sshd -``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/metadata-cloud-config/index.md b/docs/products/compute/compute-instances/guides/metadata-cloud-config/index.md deleted file mode 100644 index b473543cda1..00000000000 --- a/docs/products/compute/compute-instances/guides/metadata-cloud-config/index.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "Using Cloud-Config Files to Configure a Server" -description: "Learn how to create cloud-config files for use with cloud-init and our Metadata service." -published: 2023-07-25 -modified: 2023-08-24 -keywords: ["user data", "metadata", "cloud-init", "cloudinit"] ---- - -[Cloud-config](https://cloudinit.readthedocs.io/en/latest/explanation/format.html#cloud-config-data) files are supported by our [Metadata](/docs/products/compute/compute-instances/guides/metadata/) service and are used by cloud-init to automate server configuration. This guide covers creating cloud-config files, common modules, and examples to help get you started. - -## Syntax - -Cloud-config data is written using the YAML syntax, a commonly used data serialization format that's more user-friendly and human-readable than alternatives (like JSON). YAML consists of key-value pairs. Each key is entered on its own line and a colon (`:`) is used to separate the key from its value. The scope of the key is defined by its indentation. To learn more about YAML, review the [latest YAML specification](https://yaml.org/spec/1.2.2/#chapter-2-language-overview). - -## Cloud-Config Modules - -A cloud-config file must contain `#cloud-config` as the first line. Following that, you can use the keys provided by any of the cloud-init modules. Review the remaining sections of this guide for a list of common modules and how to configure them. For a full list of modules/keys, review [cloud-init Module Reference](https://cloudinit.readthedocs.io/en/latest/reference/modules.html). - -## Create a New User and Restrict Root Access - -One of the most common security tasks for every new system deployment is configuring user accounts. This includes creating a limited user account for the system administrator, adding them to the *sudo* group, and enabling the user to log in over SSH using a public key instead of a password. - -- `users` *(list)*: Configure user accounts ([Reference](https://cloudinit.readthedocs.io/en/latest/reference/modules.html#users-and-groups) | [Example](https://cloudinit.readthedocs.io/en/latest/reference/examples.html#including-users-and-groups)) - - `name` *(string)*: The name of the user. - - `passwd` *(string)*: The hash of the password you want to configure for this user. - - `groups` *(string)*: The name of the group the user should belong to. - - `sudo`: Define a sudo rule string or set to `False` to deny sudo usage. - - `lock_passwd` *(boolean)*: If true (the default setting), prevents logging in with a password for that user. - - `ssh_authorized_keys` *(list)*: A list containing the public keys that should be configured for this user. - -```file {lang=yaml} -#cloud-config -users: -- name: example-user - groups: sudo - sudo: ALL=(ALL) NOPASSWD:ALL - shell: /bin/bash - ssh_authorized_keys: - - [insert-public-key] -``` - -## Update System - -Updating the system is another common task that's performed after a system is deployed. - -- `package_update` *(boolean)*: Updates the apt database ([cloud-init Docs](https://cloudinit.readthedocs.io/en/latest/reference/examples.html#update-apt-database-on-first-boot)) -- `package_upgrade` *(boolean)*: Upgrades the software on your system (by running the yum or apt upgrade command) ([cloud-init Docs](https://cloudinit.readthedocs.io/en/latest/reference/examples.html#run-apt-or-yum-upgrade)) - -```file {lang=yaml} -#cloud-config -package_update: true -package_upgrade: true -``` - -## Install a Software Package - -Almost all workloads running on a Compute Instance require additional software to be installed. You can automatically install software packages by adding them to your cloud-config file. - -- `packages` *(list)*: Installs the specified list of packages ([cloud-init Docs](https://cloudinit.readthedocs.io/en/latest/reference/examples.html#install-arbitrary-packages)) - -```file {lang=yaml} -#cloud-config -packages: -- nginx -- mysql-server -- php -``` - -## Run a Command - -- `runcmd` *(list)*: Runs the specified commands during the first boot ([cloud-init Docs](https://cloudinit.readthedocs.io/en/latest/reference/examples.html#run-commands-on-first-boot)) - -```file {lang=yaml} -#cloud-config -runcmd: -- mkdir ~/new-folder/ -``` - -## Write to a File - -- `write_files` (*list*): ([cloud-init Docs](https://cloudinit.readthedocs.io/en/latest/reference/examples.html#writing-out-arbitrary-files)) - - `content`: The entire content to include in the file. - - `path`: The path for the file. If a file already exists at this location, it is overwritten. - - `permissions`: Defines the file permissions in octal format (ex: `0644`). - -```file {lang=yaml} -#cloud-config -write_files: -- content: | - -

Hello world!

- -

This is the content of my web page.

- - path: /var/www/html/index.html -``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/metadata/cloud-init-supported-image.png b/docs/products/compute/compute-instances/guides/metadata/cloud-init-supported-image.png deleted file mode 100644 index f4ff410f3f9..00000000000 Binary files a/docs/products/compute/compute-instances/guides/metadata/cloud-init-supported-image.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/metadata/index.md b/docs/products/compute/compute-instances/guides/metadata/index.md deleted file mode 100644 index d6935ca3e38..00000000000 --- a/docs/products/compute/compute-instances/guides/metadata/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: "Overview of the Metadata Service" -description: "Learn how to automate server provisioning on the Linode platform through the new Metadata service and cloud-init." -published: 2023-07-25 -modified: 2024-02-14 -keywords: ["user data", "metadata", "cloud-init", "cloudinit"] ---- - -When deploying Compute Instances, it's almost always necessary to perform additional configuration before you can host your website or run your workloads. This configuration might include creating a new user, adding an SSH key, or installing software. It could also include more complex tasks like configuring a web server or other software that runs on the instance. Performing these tasks manually can be tedious and is not ideal at larger scales. To automate this configuration, Linode offers two provisioning automation tools: Metadata (covered in this guide) and [StackScripts](/docs/products/tools/stackscripts/). - -## Overview - -Linode's Metadata service provides a convenient method to automate software configuration when deploying a Compute Instance. It is an API that's accessible only from within a provisioned Compute Instance and provides relevant metadata to that instance. The Metadata service is designed to be consumed by [cloud-init](https://cloudinit.readthedocs.io/en/latest/), an industry standard software that automates cloud instance initialization. This lets you use the same tool across multiple cloud providers, enabling a pathway for provisioning your systems as part of a multi-cloud infrastructure strategy. - -The Metadata service provides both *instance data* and optional *user data*, both of which are explained below: - -- **Instance data:** The instance data includes information about the Compute Instance, including its label, plan size, region, host identifier, and more. -- **User data:** User data is one of the most powerful features of the Metadata service and lets you define your desired system configuration, including creating users, installing software, configuring settings, and more. User data is supplied by the user when deploying, rebuilding, or cloning a Compute Instance. This user data can be written as a cloud-config file, or it can be any script that can be executed on the target distribution image, such as a bash script. - - User data can be submitted directly in Cloud Manager, Linode CLI, or Linode API. It's also often programmatically provided through IaC (Infrastructure as Code) provisioning tools like [Terraform](/docs/guides/how-to-build-your-infrastructure-using-terraform-and-linode/). - -When a Compute Instance first boots up, cloud-init runs locally on the system, accesses the metadata, and then configures your system using that metadata. - -## Comparison to StackScripts - -Similar to Metadata, Linode's [StackScripts](/docs/products/tools/stackscripts/) service can be used to automate system provisioning. However, the StackScripts service is Linode-specific and does not interface with cloud-init. If you wish to keep your system provisioning tools cloud-agnostic and industry-standard, we recommend using the Metadata service. - -## Availability - -Akamai's Metadata service is available in select data centers. Additionally, user data and cloud-init integration is currently only supported in a few distribution images. Supported data centers and distributions are listed below: - -- **Data centers:** Amsterdam (Netherlands), Chennai (India), Chicago (USA), Jakarta (Indonesia), Los Angeles (USA), Madrid (Spain), Miami (USA), Milan (Italy), Osaka (Japan), Paris (France), São Paulo (Brazil), Seattle (USA), Stockholm (Sweden), and Washington DC (USA) - -- **Distributions:** Ubuntu 22.04 LTS, Ubuntu 20.04 LTS, Debian 11 - -When selecting a distribution in Cloud Manager, the following icon designates distributions that fully support the Metadata service: - -![Screenshot showing icon that indicates user data and cloud-init support for a distribution](cloud-init-supported-image.png) - -{{< note >}} -Compute Instances deployed in a supported region can always access the [Metadata Service API](#access-the-metadata-service-api) to obtain instance data, regardless of the distribution. However, user data cannot be submitted for distributions that do not yet have cloud-init support. -{{< /note >}} - -## Add User Data When Deploying a Compute Instance {#add-user-data} - -The Metadata service is always active, so there's no need to enable it. User data can be provided to the Metadata service, which is then consumed by cloud-init when your Compute Instance boots up for the first time. - -{{< tabs >}} -{{< tab "Cloud Manager" >}} -1. Navigate to the **Linodes** page in [Cloud Manager](http://cloud.linode.com) and click the **Create Linode** button. This opens the **Create Linode** form. - -1. Fill out the form with your desired settings. Be sure to select one of the supported distribution images and data centers. - -1. Expand the *Add User Data* section and enter your user data into the **User Data** field. - - ![Screenshot of the Add User Data section in Cloud Manager](user-data-section.png) - - If you are unfamiliar with cloud-init, you can review the [Cloud-Config Usage and Examples](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) guide for help creating a cloud-config file. - -1. Once you are ready, click the **Create Linode** button to deploy the instance. -{{< /tab >}} -{{< tab "Linode CLI" >}} -```command -linode-cli linodes create \ - --label new-instance-with-metadata \ - --region us-iad \ - --type g6-standard-2 \ - --image linode/ubuntu22.04 \ - --root_pass [your-root-password] \ - --metadata.user_data [your-user-data] -``` - -Replace *[your-root-password]* with a strong root password and *[your-user-data]* with the cloud-config data or script you wish to use. When using the CLI, user data must be a Base64-encoded string. Review the [Base64 Encoded](#base64-encoded) section below to generate the string. -{{< /tab >}} -{{< tab "Linode API" >}} -Run the API curl request below, making sure to properly paste in or reference your [API token](/docs/products/platform/accounts/guides/manage-api-tokens/). - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "label": "new-instance-with-metadata", - "region": "us-iad", - "type": "g6-standard-2", - "image": "linode/ubuntu22.04", - "root_pass": "[your-root-password]", - "metadata": { - "user_data": "[your-user-data]" - } - }' \ - https://api.linode.com/v4/linode/instances -``` - -Replace *[your-root-password]* with a strong root password and *[your-user-data]* with the cloud-config data or script you wish to use. When using the API, user data must be a Base64-encoded string. Review the [Base64 Encoded](#base64-encoded) section below to generate the string. -{{< /tab >}} -{{< /tabs >}} - -When your Compute Instance boots up using a compatible distribution, cloud-init runs. If it detects that this is the first time running on this instance, it connects to the Metadata API and captures the instance data for that instance, including any user data that you added. It then uses that metadata to provision the software on the instance, including setting the hostname to the instance's label and executing the user data script. - -{{< note >}} -User data can be added when creating a new Compute Instance, rebuilding an instance, cloning an instance, and restoring from a backup. -{{< /note >}} - -### User Data Formats - -User data can be provided in many different formats, with the most common being [cloud-config](https://cloudinit.readthedocs.io/en/latest/explanation/format.html#cloud-config-data). - -- **Cloud-config script:** cloud-config is the default syntax for cloud-init and can be used on any Linux distribution. It contains a list of directives formatted using YAML. Review the [Cloud-Config Usage and Examples](/docs/products/compute/compute-instances/guides/metadata-cloud-config/) guide for more details. - - ```command - #cloud-config - package_update: true - package_upgrade: true - packages: - - nginx - - mysql-server - ``` - -- **Executable script:** Cloud-init also accepts other scripts that can be executed by the target distribution. This includes bash and python. Since many commands (including those to create users and install packages) differ between distributions, providing these scripts may limit which distributions you can target. - - ```command - #!/bin/bash - apt-get update -y && apt-get upgrade -y - apt-get install nginx mysql-server -y - ``` - -- **Other formats:** Review the [User data formats](https://cloudinit.readthedocs.io/en/latest/explanation/format.html#user-data-formats) guide within the official documentation to learn more about other types of formats supported by cloud-init. - -#### Base64 Encoded - -When submitting user data through the Linode CLI or API, you first need to encode it into [Base64](https://en.wikipedia.org/wiki/Base64) (without any line breaks/wraps). To do that, run the command below that corresponds with your local operating system. Replace *[file]* with the name (and path, if needed) of your cloud-config or script file. - -{{< tabs >}} -{{< tab "macOS" >}} -```command -base64 --break=0 --input=[file] -``` -{{< /tab >}} -{{< tab "Linux" >}} -```command -base64 --wrap=0 [file] -``` -{{< /tab >}} -{{< /tabs >}} - -## Modify Cloud-Init Configuration and Save a Custom Image {#modify-cloud-init} - -Our supported distribution images have cloud-init pre-installed and configured to interact with our Metadata service. Beyond submitting user data, you are not able to adjust cloud-init settings directly through Cloud Manager, Linode CLI, or Linode API. If you do wish to deploy Compute Instances using a modified cloud-init configuration, you can use our [Images](/docs/products/tools/images/) service. - -1. Deploy a new Compute Instance using your preferred supported distribution image. -1. Log in to that instance using SSH or Lish and then modify the cloud-init configuration files (or add your own). These files are typically located in the `/etc/cloud/` folder. - - - `/etc/cloud/cloud.cfg`: The distribution-provided configuration settings. - - `/etc/cloud/cloud.cfg.d/`: A directory containing other configuration files that are processed by cloud-init. - - `/etc/cloud/cloud.cfg.d/99-linode.cfg`: The Linode-provided cloud-init configuration file. Since this is processed *after* the other configuration files, the settings here override any of the same settings that exist in those other configuration files. - -1. Once you have configured cloud-init with your desired settings, [create a custom image from that Compute Instance](/docs/products/tools/images/guides/capture-an-image/). - -Now, when you wish to deploy a new Compute Instance, you can select your custom image. During the creation workflow, you can attach any desired user data for that particular instance. When cloud-init runs, your updated configuration settings will be used alongside any user data that you've added. - -## Access the Metadata Service API - -In addition to being consumed by cloud-init, the Metadata service can also be accessed through an API. The API is available on industry standard link-local IP addresses (`169.254.169.254` and `fd00:a9fe:a9fe::1`) and returns only instance data and user data for that Compute Instance. For more details on using the API, review the [How to Use the Metadata Service API](/docs/products/compute/compute-instances/guides/metadata-api/) guide. - -1. Log in to a Compute Instance that has been deployed in a supported data center using a supported distribution image. - -1. Generate your API token by running the command below: - - ```command - curl -X PUT -H "Metadata-Token-Expiry-Seconds: 3600" http://169.254.169.254/v1/token - ``` - - Instead of receiving the token as an output string, you can save it directly to the `$TOKEN` environmental variable: - - ```command - export TOKEN=$(curl -X PUT -H "Metadata-Token-Expiry-Seconds: 3600" http://169.254.169.254/v1/token) - ``` - -1. Query one of the following API endpoints to receive data from the API. If you did not save the API token to the `$TOKEN` variable, replace `$TOKEN` in the commands below with your token. - - - **/v1/instance**: Output information about your instance, including plan resources. - - ```command - curl -H "Metadata-Token: $TOKEN" http://169.254.169.254/v1/instance - ``` - - - **/v1/network**: Output information about your instance's IP addresses. - - ```command - curl -H "Metadata-Token: $TOKEN" http://169.254.169.254/v1/network - ``` - - - **/v1/user-data**: Output your user data. - - ```command - curl -H "Metadata-Token: $TOKEN" http://169.254.169.254/v1/user-data | base64 --decode - ``` - -## Technical Specifications - -- The Metadata service is an API designed to be consumed by the cloud-init provisioning tool. -- All user data is encrypted and the Metadata service is only accessible from within the Compute Instance. -- Supports custom user data in the form of cloud-config scripts, shell scripts, and more. -- User data can be added when creating, rebuilding, or cloning a Compute Instance. User data can also be added when performing one of those functions using a custom image created from a compatible distribution image. - -{{< note type="warning" noTitle=true >}} -The Compute Instance must have a *public* network interface to access the Metadata service. -{{< /note >}} - -## Troubleshoot Metadata and Cloud-Init - -### View Cloud-Init Logs - -If you encounter issues with cloud-init or your user data, you can review the logs and output logs by running one of the commands below: - -```command -cat /var/log/cloud-init.log -cat /var/log/cloud-init-output.log -``` - -If you are not able to access your system through SSH, you can use [Lish](/docs/products/compute/compute-instances/guides/lish/) or boot your instance into [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/) and mount your disks. - -### Run the `cloud-init` Command - -The `cloud-init` command-line tool can be used to gather more information or perform certain actions. Here are some commands you can use to help troubleshoot cloud-init. - -- `cloud-init status --long`: This provides information about the status of cloud-init. You will notice different output depending on if it is actively running or if has run in the past. See [cloud-init status](https://cloudinit.readthedocs.io/en/latest/reference/cli.html#status). -- `cloud-init query v1` and `cloud-init query userdata`: This outputs either the instance data or the user data provided by the Metadata service. Other metadata is also exposed by entering a different query key. See [cloud-init query](https://cloudinit.readthedocs.io/en/latest/reference/cli.html#query). \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/metadata/user-data-section.png b/docs/products/compute/compute-instances/guides/metadata/user-data-section.png deleted file mode 100644 index 5cd9ab99a38..00000000000 Binary files a/docs/products/compute/compute-instances/guides/metadata/user-data-section.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/migrate-to-different-dc/index.md b/docs/products/compute/compute-instances/guides/migrate-to-different-dc/index.md deleted file mode 100644 index 70c02978ea8..00000000000 --- a/docs/products/compute/compute-instances/guides/migrate-to-different-dc/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Migrate to a New Data Center -description: "Learn how to migrate a Compute Instance across data centers using Cloud Manager." -keywords: ["choose", "help", "migration", "data center"] -tags: ["linode platform","cloud manager"] -modified: 2024-05-09 -modified_by: - name: Linode -published: 2019-02-04 -aliases: ['/platform/disk-images/how-to-initiate-a-cross-data-center-migration-for-your-linode/','/platform/migrating-to-a-different-data-center/','/guides/how-to-initiate-a-cross-data-center-migration-for-your-linode/'] ---- - -When you create a Compute Instance, it's stored on a specific data center you select. If you need to change this, you can initiate a cross-data-center migration, to move it to another data center. - -{{< note >}} -Review the [Choosing a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) guide to learn how to choose and speed test a data center. -{{< /note >}} - -## Before You Begin - -Various changes applied by the migration can impact your instance's configuration and the devices connected to it. They can all be seen in a caution message before proceeding with your migration within Cloud Manager. Here are some changes you should be aware of: - -- **IP addresses are not transferrable** They aren't migrated to the new data center with your Compute Instance. Akamai issues a new IPv4 and IPv6 address for your instance, and you can access them once the migration completes. When your instance enters the migration queue, new IP addresses are reserved and you can see them in your instance's **Networking** detail page. See the [Find Your Linode's IP Address](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) guide to learn how to access Networking information in Cloud Manager. - -- **DNS records need to be updated**. You need to update DNS records with the new IP address once migrated. If you're hosting your DNS with us, this can be done through the [DNS Manager](/docs/products/networking/dns-manager/), while [rDNS](/docs/products/compute/compute-instances/guides/configure-rdns/) can be configured directly on each Compute Instance's Networking detail page. - - {{< note >}} - If any DNS records are in use, the software using them won't be able to connect during or after the migration. After the migration, you need to make the necessary changes to the DNS, and they need to propagate. - {{< /note >}} - -- **Existing Backups can't be migrated**. Any [Linode Backup Service](/docs/products/storage/backups/) backup you have scheduled during the migration is skipped. Once the migration completes, Cloud Manager restarts your backup service on its normal schedule. - -- **Block Storage volumes can't be migrated to other data centers**. If you have a Block Storage volume attached to your Compute Instance, the migration detaches it as it begins. See our [Transfer Block Storage Data between Data Centers](/docs/products/storage/block-storage/guides/transfer-volume-data-between-data-centers/) guide to learn how to transfer a Block Storage volume's data between data centers. - -- **Services need to be supported in the target data center**. If the Compute Instance is using IPv6 pools, VLANs, or other features that have not yet been deployed to all data centers, the destination data center needs to support these features, too. Any non-supported service is stripped from the migrated Compute Instance. - -- **There is downtime during the migration**. Data transfer requires some time. This downtime varies, based on your total disk size and the speeds expected between each data center. Before the migration, Cloud Manager displays a calculated estimate for this downtime in the "Caution" message. - -- **Pricing can vary between data centers**. In some newer data centers, services and network transfer are billed at separate rates due to higher region-based infrastructure costs. Before you migrate from one region to another, confirm any applicable price differences. See our [Pricing](https://www.linode.com/pricing/) page for a list of pricing and plan options. - -- **Migration removes a compute instance from a placement group**. A [placement group](/docs/products/compute/compute-instances/guides/placement-groups/) needs to exist in a specific data center, and its member compute instances need to be in that *same data center*. If the target data center supports them, you can select to create a new placement group during the migration set up. - -## Migrate to a New Data Center - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click on the **Linodes** link in the sidebar. - -1. Locate the Compute Instance within the **Linodes** table, click the corresponding **More Options** ellipsis menu, and select *Migrate* to open the **Migrate Linode** form. - - ![How to initiate a cross data center migration.](linode-list-migrate-action.png "How to initiate a cross data center migration.") - - This same menu also appears within each individual Compute Instance's dashboard page. - -3. In **Migrate Linode** form, review the details of the migration and check the **Accept** box to agree to these conditions and expectations. - -1. Under **Configure Migration**, select the destination **Region** for the migration. - -1. Click **Enter Migration Queue**. You can monitor the progress of your migration from the list of Compute Instances and the Compute Instance's dashboard. Cloud Manager returns your instance to its previous state (powered on or off) once the migration completes. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/migrate-to-different-dc/linode-list-migrate-action.png b/docs/products/compute/compute-instances/guides/migrate-to-different-dc/linode-list-migrate-action.png deleted file mode 100644 index 6d989054931..00000000000 Binary files a/docs/products/compute/compute-instances/guides/migrate-to-different-dc/linode-list-migrate-action.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/monitor-and-maintain/edit-configuration-menu-small.png b/docs/products/compute/compute-instances/guides/monitor-and-maintain/edit-configuration-menu-small.png deleted file mode 100644 index 87c023ad6e8..00000000000 Binary files a/docs/products/compute/compute-instances/guides/monitor-and-maintain/edit-configuration-menu-small.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/monitor-and-maintain/edit-configuration-menu.png b/docs/products/compute/compute-instances/guides/monitor-and-maintain/edit-configuration-menu.png deleted file mode 100644 index 4175a59652f..00000000000 Binary files a/docs/products/compute/compute-instances/guides/monitor-and-maintain/edit-configuration-menu.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/monitor-and-maintain/index.md b/docs/products/compute/compute-instances/guides/monitor-and-maintain/index.md deleted file mode 100644 index 74ffc3140f4..00000000000 --- a/docs/products/compute/compute-instances/guides/monitor-and-maintain/index.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: "Monitor and Maintain a Compute Instance" -description: "This guide introduces concepts and tools for monitoring and maintaining your server." -published: 2012-08-22 -modified: 2024-03-11 -keywords: ["lassie", "monitor", "monitoring", "maintaining", "maintenance"] -tags: ["cloud manager","monitoring","linode platform"] -image: monitor-and-maintain-your-server.png -aliases: ['/uptime/monitoring/monitoring-and-maintaining-your-server/','/uptime/monitoring-and-maintaining-your-server-classic-manager/','/uptime/monitoring-and-maintaining-your-server-new-manager/','/uptime/monitoring-and-maintaining-your-server/','/monitoring-and-maintaining/','/guides/monitoring-and-maintaining-your-server/','/guides/monitor-and-maintain-compute-instance/'] ---- - -Once you have a Compute Instance up and running, it's time to think about monitoring and maintaining your server. This guide introduces the essential tools and skills you'll need to keep your server up to date and minimize downtime. You'll learn how to monitor the availability and performance of your system, manage your logs, and update your server's software. - -## Availability Monitoring - -The *availability* of your servers, and the websites and web applications you host on them, can be critically important. If you generate income from a blog or charge subscription fees for your web application, downtime can have a severe impact on your bottom line. Using an availability monitoring tool can help you rapidly detect and resolve service disruptions, thereby mitigating the impact on your websites and web applications. - -### Assess Your Needs - -Not everyone needs to monitor the availability of their server. For example, if you use your Compute Instance to host a personal picture gallery website for friends and family, the occasional service interruption probably won't bother you. The small inconvenience of your website going offline for a few minutes doesn't justify the time it would take to set up and configure an availability monitoring tool. - -If you depend on your website or web application for your livelihood, an availability monitoring tool is practically a necessity. Once set up, the tool actively watches your servers and services and alerts you when they're unavailable. You'll be able to troubleshoot the problem and restore service as quickly as possible. - -Whether you use one Compute Instance or dozens of them, mission-critical servers and services should be watched by an independent monitoring tool that can keep tabs on their availability. The tool should have an automated method of detecting service-related incidents and be able to notify you via email, text message, or SMS. That way you'll know that a server or service is down within minutes of it having failed. - -### Find the Right Tool - -There are several different availability monitoring tools available. Your decision should be based on how many servers you'll be monitoring: - -- **Multiple Servers**: If you run more than one server, the [Elastic Stack](/docs/guides/visualize-apache-web-server-logs-using-elastic-stack-on-debian-8/) is an excellent monitoring tool. -- **Single Server**: If you only run a single server, you might want to use a third-party service to monitor your Compute Instance. You could also use a network diagnostic tool like [MTR](/docs/guides/diagnosing-network-issues-with-mtr/) to diagnose and isolate networking errors. -- **Linode Managed**: The [Managed](https://www.linode.com/managed) service lets Linode manage your infrastructure and provides incident response around the clock. - -### Configure Shutdown Watchdog (Lassie) - -Shutdown Watchdog, also known as *Lassie*, is a Cloud Manager feature capable of automatically rebooting your Compute Instance if it powers off unexpectedly. Lassie is not technically an availability monitoring tool, but it can help get your instance back online fast if it's accidentally powered off. - -To turn Lassie on and off, see the [Recover from Unexpected Shutdowns with Lassie (Shutdown Watchdog)](/docs/guides/lassie-shutdown-watchdog/#enable-or-disable-shutdown-watchdog) guide. Once Lassie is enabled, your Linode will automatically reboot if it is unexpectedly powered off in the future. - -## Performance Monitoring - -*Performance* monitoring tools record vital server and service performance metrics. Similar to a vehicle's dashboard, which has gauges for things like speed and oil pressure, performance monitoring tools provide valuable insight into the inner workings of your virtual server. With practice, you'll be able to review this information and determine whether your server is in good health. - -### Cloud Manager - -{{% content "monitoring-cloud-manager-graphs-shortguide" %}} - -### Configure Cloud Manager Email Alerts - -{{% content "monitoring-configure-email-alerts-shortguide" %}} - -### Use Third-Party Tools - -{{% content "monitoring-third-party-tools-shortguide" %}} - -## Linode Managed - -[Linode Managed](https://www.linode.com/managed) is our monitoring service that offers 24x7 incident response, dashboard metrics for your Linodes, free cPanel, and an automatic backup service. If you are running more than one Compute Instance, not all are required to be managed. You can establish separate accounts (e.g., production and development) and monitor only the most critical services running on designated instance(s). Existing customers can sign up for Linode Managed by [contacting support](https://cloud.linode.com/support/tickets). - -## Manage Logs - -Important events that occur on your system — things like login attempts or services being restarted — are recorded in your server's *logs*. Similar to car maintenance records and completed tax forms, which provide a paper trail if a problem or discrepancy occurs, log files keep track of system events. You might review logs when troubleshooting errors, tracking usage, or investigating unusual behavior on your system. - -### Rotate Logs - -As more and more events are logged, the log files on your server get bigger and bigger. Left unchecked, those files can start consuming a surprising amount of disk space. You can mitigate this problem by using [logrotate](/docs/guides/use-logrotate-to-manage-log-files/), a utility that automatically archives and compresses current log files after a certain interval, creates new log files, and deletes old log files after a specified amount of time. - -Use the [logrotate guide](/docs/guides/use-logrotate-to-manage-log-files/) to get started. - -### Monitor System Logs - -It's important to keep an eye on the events recorded in your system logs. But unless you're the type of person who loves scanning through hundreds of lines of log entries, you won't want to open log files unless absolutely necessary. Fortunately, there's an easier way to learn about the most important system events fast. Logwatch is a customizable utility that can automatically parse system logs and email you detailed reports highlighting notable events. - -Use the [Logwatch guide](/docs/guides/logwatch-monitor-system-logs/) to get started. - -## Update Software - -Linux distributions are frequently updated to fix bugs, add new features, and patch security vulnerabilities. To take advantage of the new packages and patches, you'll need to remember to perform some simple steps every once in a while. This section shows you what to do. - -### Update Installed Packages - -You learned about the importance of regularly updating your server's packages in the [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) guide. If nothing else, installing updates is a fast and easy way to mitigate vulnerabilities on your server. - -To check for software updates and install them in Ubuntu or Debian, enter the following commands, one by one: - -```command -apt-get update -apt-get upgrade --show-upgraded -``` - -{{< note >}} -If you're using a distribution other than Ubuntu or Debian, you can learn more about package management by reading our [Linux Package Management guide](/docs/guides/linux-package-management-overview/). -{{< /note >}} - -There are ways to automate the installation of software updates, but this is not recommended. You should always manually review the lists of available patches before installing updates. - -### Apply Kernel Updates - -When you first sign up for Linode and create a Compute Instance, Cloud Manager automatically creates a [configuration profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) that uses either the distribution's system kernel (in most cases) or uses the latest available Linode-supplied kernel. - -If your system is using a Linode-supplied kernel, it's important to know that we [update the kernels](http://www.linode.com/kernels/) as necessary and make them available in Cloud Manager. In most cases, new kernels are automatically selected and, once a new kernel is released, all you have to do is reboot your Compute Instance to start using it. - -To check for a new kernel and start using it on your Compute Instance: - -1. First, check what version kernel your Compute Instance is currently using. Log in to your instance and execute the following command: - - ```command - cat /proc/version - ``` - -1. Examine the output and remember the version number: - - ```output - Linux version 4.15.12-x86_64-linode105 (maker@build.linode.com) (gcc version 4.9.2 (Debian 4.9.2-10+deb8u1)) #1 SMP Thu Mar 22 02:13:40 UTC 2018 - ``` - -1. Log in to [Cloud Manager](https://cloud.linode.com). -1. Click the **Linodes** link in the sidebar. -1. Select your Compute Instance. The instance's details page appears. -1. Select the active configuration profile by clicking the **Edit** link, as shown below. - - ![Selecting the active configuration profile](edit-configuration-menu.png) - -1. From the **Kernel** menu, verify that **GRUB 2** is selected: - - ![Selecting the latest kernel](kernel-menu.png) - -1. If you selected a new kernel, click **Submit**. The instance's dashboard appears. -1. Select **Reboot** from the status menu to reboot your Compute Instance and start using the new kernel. - - ![Reboot your Compute Instance](reboot.png) - -### Upgrade to a New Release - -Linux distributions such as Ubuntu and Fedora use version numbers to identify the individual versions, or *releases*, of the operating system. It's important to know which release your server is running, as releases are usually supported for one or more years. After support for your release is discontinued, you won't be able to download or apply critical security packages, which can put your server at risk. - -There are two ways to upgrade a Compute Instance running an unsupported release. You can upgrade your existing server to the next release, or you can create a new Compute Instance with the newest release available and transfer your files from the old server. See our [Upgrading guides](/docs/security/upgrading) for more information. - -{{< note >}} -Check the distribution's website to learn when support for your release will be discontinued. Ubuntu offers a *long-term support* (LTS) release that is supported for five years. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/monitor-and-maintain/kernel-menu.png b/docs/products/compute/compute-instances/guides/monitor-and-maintain/kernel-menu.png deleted file mode 100644 index bbcdb248e44..00000000000 Binary files a/docs/products/compute/compute-instances/guides/monitor-and-maintain/kernel-menu.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/monitor-and-maintain/monitor-and-maintain-your-server.png b/docs/products/compute/compute-instances/guides/monitor-and-maintain/monitor-and-maintain-your-server.png deleted file mode 100644 index 6dc8f094dab..00000000000 Binary files a/docs/products/compute/compute-instances/guides/monitor-and-maintain/monitor-and-maintain-your-server.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/monitor-and-maintain/monitoring-and-maintaining-your-server.jpg b/docs/products/compute/compute-instances/guides/monitor-and-maintain/monitoring-and-maintaining-your-server.jpg deleted file mode 100644 index a35e8df0ab0..00000000000 Binary files a/docs/products/compute/compute-instances/guides/monitor-and-maintain/monitoring-and-maintaining-your-server.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/monitor-and-maintain/reboot.png b/docs/products/compute/compute-instances/guides/monitor-and-maintain/reboot.png deleted file mode 100644 index 2af86b97bdb..00000000000 Binary files a/docs/products/compute/compute-instances/guides/monitor-and-maintain/reboot.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/multiqueue-nic/NICS.jpg b/docs/products/compute/compute-instances/guides/multiqueue-nic/NICS.jpg deleted file mode 100644 index 69b19fa4567..00000000000 Binary files a/docs/products/compute/compute-instances/guides/multiqueue-nic/NICS.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/multiqueue-nic/index.md b/docs/products/compute/compute-instances/guides/multiqueue-nic/index.md deleted file mode 100644 index 1647813303f..00000000000 --- a/docs/products/compute/compute-instances/guides/multiqueue-nic/index.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Configuring Multi-Queue NICs" -title_meta: "How To Configure Multi-Queue NICs" -description: "Configuring multiqueue NICs (Network Interface Controllers) on a Linode to improve networking performance." -published: 2021-07-01 -modified: 2023-03-03 -keywords: ['networking','multi-queue'] -image: NICS.jpg -external_resources: - - '[KVM Multi-Queue documentation and performance](https://www.linux-kvm.org/page/Multiqueue)' - - '[HOWTO for multiqueue network device support](https://www.kernel.org/doc/html/latest/networking/multiqueue.html)' -tags: ["networking","linode platform"] -aliases: ['/guides/multiqueue-nic/'] ---- - -Multi-queue NICs (network interface cards) are supported on all Compute Instances that have 2 or more CPU cores (vCPUs). This feature provides multiple receive (RX) and transmit (TX) queues, assigns them to different network interrupts, and balances them over multiple vCPUs. Historically, this traffic was all handled by a single vCPU core. Depending on the server's workload and network traffic, multi-queue can dramatically enhance network performance. - -**For most Compute Instances deployed after June 2nd, 2021, no action is needed to enable multi-queue NICs**. If your Compute Instance was deployed before that date, a reboot may be required. On older Linux distributions, such as Debian 8 and 9, multi-queue NICs needs to be manually enabled by following the instructions within this guide. - -## Determining if Multi-Queue is Enabled - -Check if multi-queue is already enabled on your network devices by using the [ethtool](https://en.wikipedia.org/wiki/Ethtool) command-line tool. - -1. Review the number of CPU cores (vCPUs) available on your Compute Instance by finding your plan within the [Linode Pricing](https://www.linode.com/pricing/) page or by logging in to [Cloud Manager](https://cloud.linode.com/), selecting your Compute Instance, and reviewing the *CPU Cores* value under **Summary**. - -1. Log in to your Compute Instance through [Lish](/docs/products/compute/compute-instances/guides/lish/) or [SSH](/docs/guides/connect-to-server-over-ssh/). - -1. Install the `ethtool` utility if not already installed. - - **Ubuntu and Debian:** - - ```command - sudo apt-get update - sudo apt-get install ethtool - ``` - - **Fedora, CentOS, and other RHEL-derivatives, such as AlmaLinux and Rocky Linux:** - - ```command - sudo yum install ethtool - ``` - -1. Run the following command, replacing *eth0* if you've configured a network device other than *eth0*. - - ```command - ethtool -l eth0 - ``` - - This should result in output similar to the following: - - ```output - Channel parameters for eth0: - Pre-set maximums: - RX: 0 - TX: 0 - Other: 0 - Combined: 8 - Current hardware settings: - RX: 0 - TX: 0 - Other: 0 - Combined: 2 - ``` - -1. In the output above, locate the **Combined** value under the **Current hardware settings** section. This indicates the number of queues that are in effect. If multi-queue is fully enabled, this value should equal the number of vCPUs equipped on your Compute Instance (which is determined by your instance plan and type). - -## Enabling Multi-Queue on Network Devices - -If multi-queue is not enabled and a reboot did not automatically enable it, you can manually enable this feature through the following instructions. - -1. Review the number of vCPU cores available on your Compute Instance by finding your plan within the [Linode Pricing](https://www.linode.com/pricing/) page or by logging in to [Cloud Manager](https://cloud.linode.com/), selecting your Compute Instance, and reviewing the *CPU Cores* value under **Summary**. - -1. Run the following command to enable multiple queues, replacing *[cpu-count]* with the number of vCPUs on your Compute Instance. - - ```command - ethtool -L eth0 combined [cpu-count] - ``` - -1. Verify that the feature is enabled by again following the instructions within the [Determining if Multi-Queue is Enabled](#determining-if-multi-queue-is-enabled) section above. - -## Disabling Multi-Queue on Network Devices - -If you start to see performance issues, such as CPU spikes related to network traffic that impact other software on your server, you can disable multi-queue NICs if desired. - -1. Run the following command on your Compute Instance to disable multiple queues: - - ```command - ethtool -L eth0 combined 1 - ``` - -1. Verify that the feature is disabled by following the instructions within the [Determining if Multi-Queue is Enabled](#determining-if-multi-queue-is-enabled) section above. - -## Installing irqbalance - -While network interrupts will be balanced across all vCPUs once multi-queue NICs are enabled, you may want to also install the [irqbalance](https://github.com/Irqbalance/irqbalance) utility if you have familiarity using it or wish to have additional configuration options. This additional utility is **not required** and, in our workloads, we did not notice a difference in performance. - -To install irqbalance, run the following commands on your Compute Instance: - -**Ubuntu and Debian:** - -```command -sudo apt-get update -sudo apt-get install irqbalance -``` - -**Fedora, CentOS, and other RHEL-derivatives, such as AlmaLinux and Rocky Linux:** - -```command -sudo yum install irqbalance -``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/netplan/index.md b/docs/products/compute/compute-instances/guides/netplan/index.md deleted file mode 100644 index f95c9e399d0..00000000000 --- a/docs/products/compute/compute-instances/guides/netplan/index.md +++ /dev/null @@ -1,231 +0,0 @@ ---- -title: "Network Configuration Using Netplan" -description: "Learn how to manually configure your Compute Instance’s networking using the netplan utility on Ubuntu 18.04 and newer." -published: 2023-09-12 -keywords: ['netplan','network configuration','ip address'] -license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' -external_resources: -- '[Netplan Documentation](https://netplan.readthedocs.io/en/stable/)' ---- - -[Netplan](https://netplan.io/) is a utility designed to make network configurations easier and more descriptive. It operates on Ubuntu 18.04 (and newer) and works by abstracting lower level configurations in [systemd-networkd](/docs/products/compute/compute-instances/guides/systemd-networkd/) and [NetworkManager](/docs/products/compute/compute-instances/guides/networkmanager/). Create a YAML file describing your desired network setup and Netplan implements the necessary back-end configurations to realize it. - -{{< note >}} -This guide serves as a supplement to the main [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide. Please review that guide before making any configuration changes to your Compute Instance. -{{< /note >}} - -{{< note type="warning" >}} -By default, Linode's Network Helper tool manages networking in Ubuntu using systemd-networkd directly instead of Ubuntu's Netplan management tool. To start using Netplan, you must first remove the default systemd-networkd configuration file. This command is provided below and also included within the [Configuring IP Addresses Manually](#configuring-ip-addresses-manually) section. - -```command -sudo rm /etc/systemd/network/05-eth0.network -``` -{{< /note >}} - -## Configuration Files - -The following details show where and how Netplan's configuration files operate: - -- **File extension**: `.yaml` - -- **File location**: `/etc/netplan/` - -- **Naming convention**: `[priority]-[name].yaml`, with *[priority]* being a two-digit number (`01` through `99`) defines file ordering (processed in alpha-numeric order) and with *[name]* being a short, descriptive title - -- **Default configuration file**: `/etc/netplan/01-netcfg.yaml` - -## Starter Configuration - -To get a sense of how Netplan's configuration files operate, here is a starter configuration file. A breakdown of the file follows, elaborating on each part's role. - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -network: - version: 2 - renderer: networkd - ethernets: - eth0: - dhcp4: yes - accept-ra: yes - ipv6-privacy: no -``` - -- `version`: Indicates the configuration format. The only option currently supported is `2`. - -- `renderer`: Defines which underlying network configuration tool to use, either `networkd` or `NetworkManager`. The default is `networkd`. - -- `ethernets`: Configures physical network interfaces. For more details, review the associated [Properties for device types](https://netplan.readthedocs.io/en/stable/netplan-yaml/#properties-for-device-type-ethernets) section in the official documentation. - - In the default configuration, `eth0` introduces a configuration mapping for the primary Ethernet interface. The only option set in this case indicates that DHCP (`dhcp4`) should be used, enabling dynamic IP address assignment. - -Learn more about the full extent of Netplan's YAML configuration options in the [official documentation](https://netplan.readthedocs.io/en/stable/netplan-yaml/). - -## Configuring IP Addresses Manually - -1. Log in to [Cloud Manager](https://cloud.linode.com/), and review your Compute Instance's IP addresses. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) for assistance. Make a note of the following pieces of information or keep this page accessible so you can reference it later. - - - Public IPv4 address(es) and the associated IPv4 gateway - - - Private IPv4 address (if one has been added) - - - IPv6 SLAAC address and the associated IPv6 gateway - - - IPv6 `/64` or `/56` routed range (if one has been added) - - - DNS resolvers (if you want to use Linode's resolvers) - -1. Disable Network Helper on the Compute Instance so that it doesn't overwrite any of your changes on the next system reboot. For instructions, see the [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting) guide. This guide covers disabling Network Helper *globally* (for all Compute Instances on your account) or just for a single instance. - -1. Log in to the Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). You may want to consider using Lish to avoid getting locked out in the case of a configuration error. - -1. Remove the systemd-networkd configuration file that was automatically generated by Network Helper: - - ```command - sudo rm /etc/systemd/network/05-eth0.network - ``` - -1. Perform any necessary configuration steps as outlined in the workflows below. You can edit your network configuration file using a text editor like [nano](/docs/guides/use-nano-to-edit-files-in-linux/) or [vim](/docs/guides/what-is-vi/) with root permissions. - - ```command - sudo nano /etc/netplan/01-netcfg.yaml - ``` - -1. Once you've edited the configuration file to fit your needs, you need to generate matching back-end configurations and apply the changes. To do so, run the follow Netplan commands: - - ```command - sudo netplan generate - sudo netplan apply - ``` - -## Changing the Primary IPv4 Address - -In Netplan, IP address configuration uses the `addresses` option beneath the interface. So, to change the primary IPv4 address on `eth0` to a static IP address, you can use the following approach: - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -... - ethernets: - eth0: - addresses: - - [ip-address]/[prefix] - routes: - - to: default - via: [gateway-ip] -``` - -Each `addresses` entry takes an IP address along with the subnet prefix length. In addition, you also need to add a route to the gateway. - -- **[ip-address]**: The IP address to be statically configured. The address can be IPv4 (e.g `192.0.2.2`) or IPv6, as shown in the [Configuring Additional IPv6 Addresses](/docs/products/compute/compute-instances/guides/netplan/#configuring-additional-ipv6-addresses) section further below. - -- **[prefix]**: The subnet prefix for the address. This depends on the type of IPv4 address you are adding: - - - Public IPv4 addresses: `/24` - - - Private IPv4 addresses: `/17` - -- **[gateway-ip]**: The IPv4 address of the gateway corresponding to the primary IPv4 address on your instance. - -## Configuring the Primary IPv4 Address through DHCP - -With DHCP, your instance's primary IPv4 address is configured automatically. The primary IPv4 address is the first IPv4 address assigned to your system when sorted numerically. - -The default Netplan configuration file shows how to enable DHCP on an interface. Include the `dhcp4` option with a value of `yes`, and remove any `addresses` lines that define static IP addresses, like the one shown in the section above. - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -... - ethernets: - eth0: - dhcp4: yes -``` - -{{< note type="warning" >}} -When using DHCP, the IPv4 address configured on your system may change if you add or remove IPv4 addresses on this instance from Cloud Manager, Linode CLI, or Linode API. If this happens, any tool or system using the original IPv4 address is no longer able to connect. -{{< /note >}} - -## Configuring Additional IPv4 Addresses - -You can configure additional IPv4 addresses within Netplan by adding them to the `addresses` list/array. - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -... - ethernets: - eth0: - addresses: - - 192.0.2.17/24 - - [ip-address]/[prefix] - routes: - - to: default - via: 192.0.2.1 -``` - -Replace *[ip-address]* with the additional IPv4 address and *[prefix]* with either `24` for public addresses or `17` for private addresses. To learn more, see the [Changing the Primary IPv4 Address](#changing-the-primary-ipv4-address) section above. - -## Configuring the Primary IPv6 Address through SLAAC - -Your primary IPv6 address can be configured automatically through SLAAC. To do so, your Netplan configuration needs to allow router advertisements and disable IPv6 privacy extensions. - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -... - ethernets: - eth0: - accept-ra: yes - ipv6-privacy: no -``` - -Conversely, you can disable IPv6 SLAAC addressing and, instead, statically configure your IPv6 address, though doing so is not recommended. For this, disable router advertisements and add your primary IPv6 address with the `/128` subnet prefix, as detailed in the next section. - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -... - ethernets: - eth0: - accept-ra: no - addresses: - - 2001:db8:e001:1b8c::3/128 -``` - -## Configuring Additional IPv6 Addresses - -You can configure additional IPv6 addresses similar to as you would IPv4 addresses, by adding `addresses` entries beneath the interface. The one main difference is that IPv6 addresses (and their associated prefixes) should be surrounded by quotation marks. In addition, the default gateway for all IPv6 addresses should be `fe80::1`. - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -... - ethernets: - eth0: - addresses: - - "[ip-address]/[prefix]" - routes: - - to: default - via: "fe80::1" -``` - -Each `addresses` entry consists of two parts: the IP address and the subnet prefix. For an IPv6 address, that breaks down as follows: - -- **[ip-address]**: The IP address to be statically configured. The address can be IPv6 (e.g., `2001:db8:e001:1b8c::2`) or IPv4 as shown further above. - -- **[prefix]**: The subnet prefix for the address. This depends on the type of IPv6 address you are adding: - - - IPv6 SLAAC address: `/128` (though it is recommended to configure this automatically through SLAAC, as shown in the previous section). - - - IPv6 address from a range: `/64` or `/56` (depending on the size of the range). - -A similar break down is given specifically for IPv4 addresses in the [Configuring Additional IPv4 Addresses](/docs/products/compute/compute-instances/guides/netplan/#configuring-additional-ipv4-addresses) section further above. - -## Changing the DNS Resolvers - -DNS resolvers ensure that domain names are matched to their corresponding IP addresses. By default, each Compute Instance uses DNS resolvers specific to the data center in which the instance resides. - -You can alter the DNS resolvers within Netplan using the `nameservers` option. Use an `addresses` list under that option to enter the IP addresses of the DNS resolvers you wish to use. Both IPv4 and IPv6 addresses can be used. - -The configuration example below includes additional options that are necessary if you want to define custom DNS resolvers while retaining DHCP. The `dhcp4` option enables DHCP dynamic IP address assignment, while the `use-dns` under `dhcp4-overrides` ensures that the DHCP does not override your custom DNS resolvers. - -```file {title="/etc/netplan/01-netcfg.yaml" lang="yaml"} -... - ethernets: - eth0: - dhcp4: yes - dhcp4-overrides: - use-dns: no - nameservers: - addresses: - - 203.0.113.1 - - 203.0.113.2 - - 203.0.113.3 -``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/network-helper/account-settings.png b/docs/products/compute/compute-instances/guides/network-helper/account-settings.png deleted file mode 100644 index 1f4f3af1df6..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/account-settings.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/index.md b/docs/products/compute/compute-instances/guides/network-helper/index.md deleted file mode 100644 index cc3d1d3490d..00000000000 --- a/docs/products/compute/compute-instances/guides/network-helper/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: "Automatically Configure Networking on Compute Instances with Network Helper" -title_meta: "Automatically Configure Networking on Linode" -description: 'This guide introduces you to Network Helper, a host-side service which automatically sets a static IPv4 address and gateway when your Linode is being provisioned.' -published: 2014-12-08 -modified: 2022-07-12 -keywords: ["network helper", "auto-configure","networking"] -tags: ["linode platform","networking","cloud manager"] -aliases: ['/platform/network-helper-classic-manager/','/platform/network-helper/','/platform/network-helper-new-manager/','/guides/network-helper/'] -image: network-helper-title-graphic.jpg ---- - -## Overview - -Network Helper is an optional tool that makes network configuration easier on Compute Instances. It automatically adjusts the appropriate internal network configuration files for your distribution during each system boot. This enables you to start using (and connecting to) your instance right away, without needing to manually configure these files yourself. - -Network Helper automatically configures the following network settings: - -- Statically configures all assigned IPv4 addresses (public and private) -- Statically configures the IPv4 gateway -- Adds settings to enable IPv6 assignment through SLAAC -- Adds Linode's DNS resolvers - -## Use Cases - -For most common use cases, it is recommended to enable Network Helper. Here are some scenarios in which Network Helper automatically configures networking: - -- Deploying a Compute Instance -- Adding a public or private IPv4 address -- Restoring from a backup -- Migrating to a different data center -- Cloning from another instance - -However, there are some advanced use cases that require Network Helper to be disabled so that you can manually configure networking yourself: - -- Installing a custom distribution on a Compute Instance -- Configuring failover -- Configuring addresses from an IPv6 routed range -- Using other DNS resolvers (not Linode's) -- Other advanced use cases where custom network configuration is required - -{{< note type="alert" >}} -If you choose to manually edit your network configuration files, Network Helper must be disabled. If enabled, any configuration changes will be overwritten on the next system boot. -{{< /note >}} - -## Enable or Disable Network Helper - -Network Helper can be enabled or disabled for each Compute Instance. There is also a global setting that applies to all *new* Compute Instances. - -### Global (Account-Wide) Setting - -The global Network Helper setting enables or disables Network Helper on *new* Compute Instances. Existing Compute Instances are not affected by any changes to this global setting. When Network Helper is enabled globally, all *new* Compute Instances are created with Network Helper enabled by default. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Account** link on the left sidebar. - -1. Navigate to the **Settings** tab and scroll down to the *Network Helper* section. - -1. Set the **Enabled** switch to the desired setting. Your selection is automatically saved. - - ![Screenshot of the global Network Helper setting](network-helper-global-setting.png) - -### Individual Compute Instance Setting - -Network Helper can also be enabled or disabled on a specific Compute Instance, regardless of the global setting. - -1. Follow the [Editing a Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/#edit-a-configuration-profile) instructions. - -1. Within the **Edit Configuration** form, scroll down to the **Filesystem/Boot Helpers** section. - -1. Set the **Auto-configure networking** switch to the desired setting. This toggles Network Helper on or off. - - ![Screenshot of the Auto-configure networking setting](network-helper-setting.png) - -1. Once the setting has been adjusted, click the **Save Changes** button. If you are enabling Network Helper, reboot the Compute Instance so that Network Helper can run and adjust your system's network configuration files. - -## Files Maintained by Network Helper - -Network Helper automatically edits the appropriate network configuration files for the distribution you have installed. Here is a list of the network configuration files that are maintained by Network Helper for each supported distribution. - -- **Alpine:** - - /etc/network/interfaces - /etc/resolv.conf - -- **Arch:** - - /etc/systemd/network/05-eth0.network - -- **CentOS, CentOS Stream, AlmaLinux, and Rocky Linux:** - - /etc/sysconfig/network-scripts/ifcfg-eth0 - -- **Debian:** - - /etc/network/interfaces - /etc/resolv.conf - -- **Fedora:** - - /etc/sysconfig/network-scripts/ifcfg-eth0 - -- **Gentoo:** - - /etc/conf.d/net - /etc/resolv.conf - -- **openSUSE Leap:** - - /etc/sysconfig/network/ifcfg-eth0 - /etc/sysconfig/network/routes - /etc/resolv.conf - -- **Slackware:** - - /etc/rc.d/rc.inet1.conf - /etc/resolv.conf - -- **Ubuntu 16.04 LTS (and earlier)** - - /etc/network/interfaces - /etc/resolv.conf - -- **Ubuntu 18.04 LTS (and later)** - - /etc/systemd/network/05-eth0.network - -## Restore Previous Network Configuration Files - -Network Helper creates backups of the original distribution-supplied configuration file, as well as a backup each time it edits the networking configuration. - -- A copy of the interface and resolver file as the distribution provided it: `.interfaces.linode-orig` and `/etc/.resolv.conf.linode-orig`. Note that Network Helper does not modify `/etc/resolv.conf` on all of our distributions. - -- A copy of the interface and resolver files from the previous boot: `.interfaces.linode-last` and `/etc/.resolv.conf.linode-last`. If you manually changed either of these file before the previous boot, you'll find them saved there. - -Use the following command to restore manual changes made before the previous reboot. Be sure to replace `/etc/network/interfaces` with the network interface file for your distribution from above. - -```command -mv /etc/network/.interfaces.linode-last /etc/network/interfaces -``` \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-global-setting.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-global-setting.png deleted file mode 100644 index 8ad202df42b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-global-setting.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-account-settings-small.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-account-settings-small.png deleted file mode 100644 index 39bc01a5f16..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-account-settings-small.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-account-settings.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-account-settings.png deleted file mode 100644 index 7959226b4ba..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-account-settings.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-config-profile-settings-small.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-config-profile-settings-small.png deleted file mode 100644 index f8faaab35b0..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-config-profile-settings-small.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-config-profile-settings.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-config-profile-settings.png deleted file mode 100644 index 6d6f52337bd..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-config-profile-settings.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-link.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-link.png deleted file mode 100644 index 8ae849443e8..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-link.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-page-small.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-page-small.png deleted file mode 100644 index 036ee1c328b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-page-small.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-page.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-page.png deleted file mode 100644 index 6ae71830163..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-linode-settings-page.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-setting.png b/docs/products/compute/compute-instances/guides/network-helper/network-helper-setting.png deleted file mode 100644 index cb21e1f3dcb..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-setting.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-helper/network-helper-title-graphic.jpg b/docs/products/compute/compute-instances/guides/network-helper/network-helper-title-graphic.jpg deleted file mode 100644 index b349e8d2d73..00000000000 Binary files a/docs/products/compute/compute-instances/guides/network-helper/network-helper-title-graphic.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/index.md b/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/index.md deleted file mode 100644 index 6a9bc446972..00000000000 --- a/docs/products/compute/compute-instances/guides/network-infrastructure-upgrades/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Upcoming Changes Related to Network Infrastructure Upgrades" -description: "An overview of changes and actions that may be required in advance of upgrades to Linode's networking infrastructure." -published: 2022-07-19 -modified: 2024-01-03 -keywords: ['networking'] -aliases: ['/guides/network-infrastructure-upgrades/'] ---- - -Linode is rolling out networking infrastructure upgrades to all of our existing data centers. These upgrades increase the stability and resiliency of our already reliable network. It also enables us to bring features, such as VLAN and IP Sharing, to every data center. - -For most customers, these upgrades are performed seamlessly behind the scenes. For customers that use certain features, such as IP Sharing and /116 IPv6 pools, there may be some changes that impact your current configuration. This document outlines what is changing, what data centers are impacted, and what, if anything, you may need to do in order to prepare for these upcoming changes. - -## What's New? - -- **IP Sharing (IP failover) availability:** The IP Sharing feature, as it exists before these upgrades, enables IP failover for public IPv4 addresses in select data centers. After the upgrades have been completed, this feature will be expanded to all data centers and will also support IPv6 routed ranges (/64 and /56). See our [Configuring IP Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) guide to learn more about configuring IP failover. - -- **VLAN availability:** [VLANs](/docs/products/networking/vlans/), which enable private layer 2 networking, will be launched across all data centers soon after the network upgrades have occurred. - -## What's Changing? - -The following is a list of breaking changes and any action that may be required if you are impacted by that change: - -- **Deprecation of IPv6 /116 pools:** /116 pools will no longer be provided to new Compute Instances. Existing /116 pools will be removed from Compute Instances when data center is undergoing upgrades. - - *Action:* If you are using /116 for IPv6 failover, consider using an IPv6 /64 instead. - -- **IP failover through BGP:** IP failover (IP Sharing) for public IPv4 addresses and IPv6 routed ranges will be facilitated through BGP instead of ARP (configured through [keepalived](/docs/products/compute/compute-instances/guides/failover-legacy-keepalived/)). - - *Action:* If you have previously configured IP failover for a public IPv4 address, review the [Configuring IP Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) guide to learn more about configuring IP failover using BGP. You can configure BGP ahead of time, but will not be able to test or use the configuration until after the network upgrades have been completed. - -## Which Data Centers Have Been Upgraded? - -Review the table below to learn which data centers have been upgraded with the latest network enhancements. This table covers the regions that existed at the start of this initiative. If a region is not listed, it was launched after this initiative began and, as such, already has the relevant network upgrades. - -| Data center | Upgrade Status | -| -- | -- | -| **Atlanta (Georgia, USA)** | **Complete** | -| **Dallas (Texas, USA)** | **Complete** | -| **Frankfurt (Germany)** | **Complete** | -| Fremont (California, USA) | *Undergoing network upgrades* | -| **London (United Kingdom)** | **Complete** | -| **Mumbai (India)** | **Complete** | -| **Newark (New Jersey, USA)** | **Complete** | -| **Singapore** | **Complete** | -| **Sydney (Australia)** | **Complete** | -| **Tokyo (Japan)** | **Complete** | -| **Toronto (Canada)** | **Complete** | - -A status of **complete** indicates that all new Compute Instances (and *most* existing instances) are located on fully upgraded hardware. Compute Instances using legacy features, such as ARP-based failover and /116 ranges, may still be located on hardware that hasn't yet been upgraded. These customers have been notified and a migration timeline has been shared. - -{{< note >}} -If a data center is marked as *undergoing network upgrades*, customers may encounter issues enabling IP Sharing and configuring failover. For Compute Instances that already have IP Sharing enabled, this feature should still function as intended. Once the network upgrades are completed, IP Sharing will be supported through the new method (BGP). See [Configuring IP Failover](/docs/products/compute/compute-instances/guides/failover/). -{{< /note >}} - -## What Action is Required? - -- **Migration of Compute Instances:** Once a data center has started the network infrastructure upgrades, live migrations are scheduled for all Compute Instances that do not reside on upgraded hardware. This live migration occurs while your Compute Instance is powered on and operating normally. Immediately following a successful live migration, there may be a small amount of packet loss as traffic is routed to the newer hardware. - - {{< note type="warning" title="Important" >}} - If a live migration is not possible, a cold migration is scheduled instead. During a cold migration, the Compute Instance is powered off while its data is migrated to newer hardware. This results in downtime unless your application is configured to fail over to another Compute Instance or server. If a Compute Instance requires a cold migration, the account owner will receive a ticket from the Support team outlining this process and the scheduled migration date. - {{< /note >}} - -- **Update IP failover configuration:** If you have configured IP failover for a public IPv4 address, review the [Configuring IP Failover on a Compute Instance](/docs/products/compute/compute-instances/guides/failover/) guide to learn more about configuring IP failover using BGP. If you were using a now deprecated IPv6 /116 pool for IP failover, consider using an IPv6 /64 range instead. You can configure BGP ahead of time, but will not be able to test or use the configuration until after your Compute Instances are migrated to upgraded hardware. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/networkmanager/index.md b/docs/products/compute/compute-instances/guides/networkmanager/index.md deleted file mode 100644 index 6bc35f8233f..00000000000 --- a/docs/products/compute/compute-instances/guides/networkmanager/index.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: "Network Configuration Using NetworkManager" -description: "Learn how to configure networking using the NetworkManager utility on CentOS, CentOS Stream, Fedora, and other modern Linux distributions" -published: 2022-05-27 -keywords: ["static", "ip address","NetworkManager"] -tags: ["networking","linode platform"] -external_resources: - - '[NetworkManager documentation](https://networkmanager.dev/docs/api/latest/NetworkManager.conf.html)' -aliases: ['/guides/networkmanager/'] ---- - -[NetworkManager](https://networkmanager.dev/) is a very popular network configuration utility and is used by default on Fedora, CentOS Stream, CentOS, AlmaLinux 8, and Rocky Linux 8. It can also be easily installed on Arch, Ubuntu, and other distributions. - -{{< note >}} -This guide serves as a supplement to the main [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide. Please review that guide before making any configuration changes to your Compute Instance. -{{< /note >}} - -## Configuration Files - -Most distributions that use NetworkManager enable the ifcfg-rh plugin be default, which allows NetworkManager to use the older *ifcfg* configuration file format. NetworkManager also supports its own native *keyfile* format. By default, [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) uses the *ifcfg* format, so that is what this guide covers. - -- **File location:** `/etc/sysconfig/network-scripts/` -- **Naming convention:** `ifcfg-[interface]`, replacing *[interface]* with the name of the interface you wish to configure. -- **Default configuration file:** `/etc/sysconfig/network-scripts/ifcfg-eth0` - -## Starter Configuration - -Here is an example of a typical configuration file for NetworkManager. It statically defines the IPv4 address and allows SLAAC to configure the IPv6 address. - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -DEVICE="eth0" -NAME="eth0" -ONBOOT="yes" - -BOOTPROTO="none" - -IPV6INIT="yes" -IPV6_ADDR_GEN_MODE="eui64" -IPV6_PRIVACY="no" - -PEERDNS="no" - -DOMAIN=ip.linodeusercontent.com - -DNS1=203.0.113.1 -DNS2=203.0.113.2 -DNS3=203.0.113.3 - -GATEWAY0=192.0.2.1 -IPADDR0=192.0.2.123 -PREFIX0=24 -``` - -## Configuring IP Addresses Manually - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and review your Compute Instance's IP addresses. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/). Make a note of the following pieces of information or keep this page accessible so you can reference it later. - - - Public IPv4 address(es) and the associated IPv4 gateway - - Private IPv4 address (if one has been added) - - IPv6 SLAAC address and the associated IPv6 gateway - - IPv6 /64 or /56 routed range (if one has been added) - - DNS resolvers (if you want to use Linode's resolvers) - -1. Disable Network Helper on the Compute Instance so that it doesn't overwrite any of your changes on the next system reboot. For instructions, see the [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting) guide. This guide covers disabling Network Helper *globally* (for all Compute Instances on your account) or just for a single instance. - -1. Log in to the Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). You may want to consider using Lish to avoid getting locked out in the case of a configuration error. - -1. Perform any necessary configuration steps as outlined in the workflows below. You can edit your network configuration file using a text editor like [nano](/docs/guides/use-nano-to-edit-files-in-linux/) or [vim](/docs/guides/what-is-vi/). - - ```command - sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 - ``` - -1. Once you've edited the configuration file to fit your needs, you need to apply the changes or reboot the Compute Instance. To apply your changes with NetworkManager, run the following commands: - - ```command - sudo nmcli connection reload - sudo nmcli connection down eth0 - sudo nmcli connection up eth0 - ``` - -## Changing the Primary IPv4 Address - -To change the main IPv4 address configured on the system, set the `GATEWAY0`, `ADDRESS0`, and `PREFIX0` parameters to match the new IP address and its corresponding gateway IP address. - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -... -GATEWAY0=192.0.2.1 -IPADDR0=192.0.2.123 -PREFIX0=24 -``` - -## Configuring the Primary IPv4 Address through DHCP - -DHCP can be used to automatically configure your primary IPv4 address. The primary IPv4 address is defined as the IPv4 address assigned to your system that is in the first position when sorted numerically. To enable DHCP, set the `BOOTPROTO` parameter to `"dhcp"` and remove (or comment out) the lines that define the `GATEWAY0`, `ADDRESS0`, and `PREFIX0` parameters. - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -... -BOOTPROTO="dhcp" -... -# GATEWAY0=192.0.2.1 -# IPADDR0=192.0.2.123 -# PREFIX0=24 -``` - -{{< note type="alert" >}} -When using DHCP, the IPv4 address configured on your system may change if you add or remove IPv4 addresses on your Compute Instance. If this happens, any tool or system using the original IPv4 address will no longer be able to connect. -{{< /note >}} - -To disable DHCP, set the `BOOTPROTO` parameter back to `"none"`. - -## Configuring Additional IPv4 Addresses - -Additional IPv4 addresses can be configured by adding the `IPADDRn` and `PREFIXn` parameters, where *n* is an incrementing number based on how many other IPv4 address you have configured (starting at `0` for the primary address). For instance, to add a second IPv4 address, use the parameters `IPADDR1` and `PREFIX1`. For a third address, use `IPADDR2` and `PREFIX2`. - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -... -IPADDR1=[ip-address] -PREFIX1=[prefix] -``` - -In the example above, make the following replacements: - -- **[ip-address]**: The IPv4 address that you wish to statically configure. -- **[prefix]**: The prefix is based on the type of IP address you are adding. It should be `24` for public IPv4 addresses and `17` for private IPv4 addresses. - -## Configuring the Primary IPv6 Address through SLAAC - -SLAAC is used to automatically configure your primary IPv6 address. For this to work, your system must accept router advertisements. You also may need to disable IPv6 privacy extensions. Within NetworkManager, you can set `IPV6INIT` to `yes`, `IPV6_ADDR_GEN_MODE` to `eui64`, and `IPV6_PRIVACY` to `no`. - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -... -IPV6INIT="yes" -IPV6_ADDR_GEN_MODE="eui64" -``` - -If you wish to disable IPv6 SLAAC addressing and instead statically configure your IPv6 address (not recommended), you can explicitly set the `net.ipv6.conf.eth0.autoconf` kernel variable to `0` in the `/etc/sysctl.conf` file and then reboot your Compute Instance - -```file {title="/etc/sysctl.conf"} -... -net.ipv6.conf.all.autoconf=0 -``` - -Then modify the network configuration file to disable auto-configuration and statically set your IPv6 address (using the prefix of `/128`). - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -... -IPV6INIT="yes" -IPV6_AUTOCONF="no" -# IPV6_ADDR_GEN_MODE="eui64" -# IPV6_PRIVACY="no" - -IPV6ADDR=[ip-address]/128 -IPV6_DEFAULTGW=fe80::1 -``` - -## Configuring Additional IPv6 Addresses - -If you have an IPv6 range assigned to your Compute Instance, addresses from this range can be configured through the `IPV6ADDR_SECONDARIES` parameter. This accepts a list of space delimited IPv6 addresses. - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -... -IPV6ADDR_SECONDARIES="[ip-address]/[prefix]" -``` - -In the example above, make the following replacements: - -- **[ip-address]**: The IPv6 address that you wish to statically configure. You can choose any address within your available range. For example, within the range *2001:db8:e001:1b8c::/64*, the address `2001:db8:e001:1b8c::1` can be used. -- **[prefix]**: The prefix should either be `64` or `56` (depending on the size of your IPv6 range) - -## Changing the DNS Resolvers - -DNS resolvers are the entities that resolve domain names to their corresponding IPv4 address. By default, the Compute Instance should be using the DNS resolvers for the data center in which it resides. You can change these by setting the `DNS` parameter to a space delimited list of the IP addresses for your preferred DNS resolvers. - -```file {title="/etc/sysconfig/network-scripts/ifcfg-eth0"} -... -DNS1=203.0.113.1 -DNS2=203.0.113.2 -DNS3=203.0.113.3 -``` - -In the above example, replace the IP addresses provided with the IP addresses of the DNS resolvers you wish to use. Both IPv4 and IPv6 addresses can be used together. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/package-mirrors/index.md b/docs/products/compute/compute-instances/guides/package-mirrors/index.md deleted file mode 100644 index f5742a289a4..00000000000 --- a/docs/products/compute/compute-instances/guides/package-mirrors/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Package Mirrors -description: 'Linode offers public package mirrors for Ubuntu, Debian, and CentOS. This guide provides you with instructions on how to mirror those package repositories. ' -published: 2014-02-11 -modified: 2023-03-14 -keywords: ["package", "mirrors", "linode", "repository", "Debian", "Ubuntu", "CentOS", "yum", "apt-get"] -tags: ["linode platform"] -image: package_mirrors_smg.png -aliases: ['/package-mirrors/','/platform/package-mirrors/','/guides/package-mirrors/'] ---- - -Linode offers public package mirrors for Ubuntu, Debian, and CentOS. When you install updates and new packages, you must download them from package mirrors. The primary advantage of using the Linode package mirrors versus other public package mirrors is speed. - -Linode package mirrors are available in all of our data centers. The mirrors can be found at: - -- -- -- -- -- -- -- -- -- -- -- - - -## Package Mirror Settings - -For best performance, you will want to use the mirror in the same data center as your Compute Instance. When using the Linode DNS resolvers, **mirrors.linode.com** will resolve to the mirror within the same data center. For public queries, mirrors.linode.com will return a round robin of the US locations. - -Instructions for setting the package mirror location are provided in the following subsections. - -### Ubuntu System Settings - -For a Ubuntu system follow the instructions below: - -1. Edit the `sources.list` file with the following command: - - ```command - sudo nano /etc/apt/sources.list - ``` - -1. Replace the line containing the address with the new address location: - - ```command - http://mirrors.linode.com/ubuntu/ - ``` - -1. Do not modify lines containing the address . These lines contain security updates for packages. - -1. Save and exit the `sources.list` file. - -### Debian System Settings - -For a Debian system follow the instructions below: - -1. Edit the `sources.list` file with the following command: - - ```command - sudo nano /etc/apt/sources.list - ``` - -1. Replace the line containing the address with the new address location: - - ```command - http://mirrors.linode.com/debian/ - ``` - -1. Do not modify lines containing the address . These lines contains security updates for packages. - -1. Save and exit the `sources.list` file. - -### CentOS System Settings - -For a CentOS system follow the instructions below: - -1. By default, `yum` will try using fastest mirror available. This need to be disabled to use Linode's mirror. Edit the `fastestmirror.conf` file with the following command: - - ```command - sudo nano /etc/yum/pluginconf.d/fastestmirror.conf - ``` - -1. Change the `enabled=` variable to **0**: - - ```file {title="/etc/yum/pluginconf.d/fastestmirror.conf"} - ... - enabled=0 - ... - ``` - -1. Save and exit the `fastestmirror.conf` file. - -1. Edit the `CentOS-Base.repo` file with the following command: - - ```command - sudo nano /etc/yum.repos.d/CentOS-Base.repo - ``` - -1. Comment each `mirrorlist` line by adding the **\#** sign before each line. - -1. Uncomment each `baseurl` line by removing the **\#** sign before each line. - -1. Edit all `baseurl` lines containing the address http://mirror.centos.org/centos/$releasever/os/$basearch/ to reflect the new address location: - - ```command - http://mirrors.linode.com/centos/$releasever/os/$basearch/ - ``` - -1. Save and exit the `CentOS-Base.repo` file. diff --git a/docs/products/compute/compute-instances/guides/package-mirrors/package_mirrors_smg.png b/docs/products/compute/compute-instances/guides/package-mirrors/package_mirrors_smg.png deleted file mode 100644 index 20a9f83f3a0..00000000000 Binary files a/docs/products/compute/compute-instances/guides/package-mirrors/package_mirrors_smg.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/placement-groups/index.md b/docs/products/compute/compute-instances/guides/placement-groups/index.md deleted file mode 100644 index 423aa2ee9c4..00000000000 --- a/docs/products/compute/compute-instances/guides/placement-groups/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: "Work with Placement Groups" -description: "Learn how to group your compute instances to best meet your delivery model." -published: 2024-06-20 -modified: 2024-07-30 -keywords: ["placement-group", "affinity", "compliance"] ---- - -When you deploy several compute instances in one of our compute regions, they’re allocated to physical machines (“hosts”) with available resources. However, depending on your workload requirements, you may need your compute instances to follow specific strategies: - -- **Grouped-together**. You may want them placed close together to reduce latency between compute instances that are used for an application or workload. - -- **Spread apart**. You may want to disperse them across several hosts to support high-availability, for example when required for fail-over. - -Placement groups disperse your compute instances across hosts in a region to meet either of these models. - -## Overview - -Setting up a placement group is a simple process using Cloud Manager, the Linode API, or our CLI. Create a new group in a supported region and add new or existing compute instances from that region to your group. When assigning compute instances to the placement group, we physically place them, based on your desired model. - -## Availability - -Placement Groups is available in all [core compute regions](/docs/products/platform/get-started/guides/choose-a-data-center/#product-availability) that support compute instances. - -{{< note >}} -Currently, placement groups aren't supported in distributed compute regions. -{{< /note >}} - -## Placement groups and compliance - -Review these sections for an understanding of the placement groups concept. - -### Placement group type - -To distribute your compute instances in a placement group, we use industry-recognized placement strategies. When creating a new group, you select from one of two placement group types: - -- **Affinity**. When you assign compute instances to the group, we place them physically close together, possibly on the same host. This supports the grouped-together model and is best for applications that require low-latency. - -- **Anti-affinity**. When you assign compute instances to the group, we place them in separate hosts, but keep them in the same region. This supports the spread-apart model for high-availability. - -{{< note >}} -Currently, only the **Anti-affinity** Placement Group Type is supported. -{{< /note >}} - -### Compliance - -Your placement group is in compliance if all of the compute instances in it currently meet your grouped-together or spread-apart model, based on your selected [placement group type](#placement-group-type). - -- When you create a new placement group and assign compute instances to it, we'll place them as necessary to make sure the group is compliant with your selected placement group type. There's nothing you need to do to apply compliance at this phase. - -- Compliance comes into play when you add more compute instances to your placement group in the future. For example, assume you've set **Anti-affinity** as your placement group type. Your group already has three qualifying compute instances in separate hosts, to support the spread-apart model. If a fourth compute instance is added that's on the _same host_ as one of the existing three, this would make the placement group non-compliant. Compliance at this stage is enforced by your selected placement group policy. - -### Placement group policy - -This determines how we handle requests to add compute instances to your placement group in the future, and whether or not it stays compliant. - -- **Strict (Best practice)**. If a target compute instance breaks the grouped-together or spread-apart model set by your placement group type, it won't be added. Use this to ensure the placement group stays compliant. - -- **Flexible**. A target compute instance will be added even if it breaks the grouped-together or spread-apart model set by your placement group type. This makes the placement group non-compliant. Use this if you need more flexibility to add future compute instances and compliance isn't an immediate concern. - -### Fix non-compliance - -If a placement group becomes non-compliant, we're alerted. We'll move an out-of-compliance compute instance, once the necessary capacity is available in the region. Non-compliance can only be fixed by Akamai staff. **_You can't fix it yourself_**. - -Based on your selected placement group policy, here are the ways a placement group can become non-compliant: - -- **Strict**. There are rare cases when we may need to fail-over or migrate your compute instances for maintenance. - -- **Flexible**. A placement group using this policy can become non-compliant if a compute instance is added from outside of the placement group type's grouped-together or spread-apart model. - -{{< note >}} -Fixing non-compliance for **Strict** placement groups is prioritized over **Flexible** groups. -{{< /note >}} - -## Create a placement group - -Here are a few processes you can follow to create a new placement group and add existing compute instances to it. - -### Use Cloud Manager - -Review these sections to create a new group using Cloud Manager. - -#### Before you begin - -* Review [Placement groups and compliance](#placement-groups-and-compliance) to understand the placement group concept. -* Review the [Technical specifications](#technical-specifications) for details on what's supported. - -#### Creation process - -1. Navigate to the **Placement Groups** page in [Akamai Cloud Manager](http://cloud.linode.com) and click **Create Placement Groups**. The **Create Placement Group** form opens. - -2. Fill out the form with your desired settings: - - - **Label**. Give your placement group an easily recognizable name. - - **Region**. Select the [core compute region](#availability) that includes the compute instances you want to add. - - **Placement Group Type**. Select the [affinity](#placement-group-type) that meets your model. - - **Placement Group Policy**. Pick how you want to [enforce](#placement_group_policy) compliance for your placement group, when adding compute instances to it in the future. - -{{< note >}} -- Currently, only **Anti-affinity** is available for Placement Group Type. -- Once you create your placement group, you *can't change* its Placement Group Policy. -{{< /note >}} - -3. When you're ready, click **Create Placement Group**. A summary of your group is revealed. - -4. Select the **Linodes (0)** tab. - -5. Click **Assign Linode to Placement Group**. The Assign Linodes form opens. - -6. The **Linodes in \** drop-down is auto-populated with eligible compute instances in your selected Region. Pick one to add it and click **Assign Linode**. - -
- -
- -7. Review the **Linode limit for this placement group**, and repeat steps 5-6 to add more compute instances, as necessary. - -{{< note >}} -Currently, you’re limited to a maximum of 5 compute instances in a placement group. -{{< /note >}} - -With all your compute instances added, we begin provisioning by moving them into the placement group to meet your selected Placement Group Type. - -### Use the API - -Here, we combine API operations to create a new placement group and add existing compute instances to it. - -#### Before you begin - -* Review [Placement groups and compliance](#placement-groups-and-compliance) to understand the placement group concept. -* Review the [Technical specifications](#technical-specifications) for details on what's supported. - -#### List regions - -Run this API curl request, making sure to properly paste in or reference your [API token](/docs/products/platform/accounts/guides/manage-api-tokens/). Store the `id` and `label` values for the region where your target compute instances live. -```command -curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/regions -``` -{{< note >}} -During the limited availability phase, only specific [regions](#availability) support placement groups. -{{< /note >}} - -#### Identify the maximum number of compute instances - -Run this request, using the stored region `id`. Store the `maximum_linodes_per_pg` value. This represents the maximum number of compute instances you can add to a placement group for that region. -```command -curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/regions/us-east -``` -{{< note >}} -Currently, you can have a maximum of 5 compute instances in a placement group. -{{< /note >}} - -#### List compute instances - -Run this request using the stored region `id` to filter the response. Identify the specific compute instances you want to include -- up to the `maximum_linodes_per_pg` value -- and store the `id` value for each. -```command -curl -H "Authorization: Bearer $TOKEN" - -H 'X-Filter: { "region": "us-east" }' - https://api.linode.com/v4/networking/ips -``` - -#### Create the new placement group - -Run this request to create a new placement group. Store the `id` value that's generated for it. - -- `label`. Give your placement group an easily recognizable name. -- `region`. Set this to the `label` you stored for your region. -- `placement_group_type`. Set this to the [affinity](#placement-group-type) that meets your model. -- `placement_group_policy`. Define how to [enforce](#placement-group-policy) compliance for your placement group, when adding compute instances to it in the future. Set to `strict` for strict enforcement or `flexible` for flexible enforcement. - -{{< note >}} -- Currently, only anti-affinity (`anti-affinity:local`) is available for `placement_group_type`. -- Once you create your placement group, you *can't change* its `placement_group_policy` enforcement setting. -{{< /note >}} - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "label": "new-placement-group", - "region": "us-east", - "placement_group_type": "anti_affinity:local", - "placement_group_policy": "strict" - }' \ - https://api.linode.com/v4/placement/groups -``` - -#### Add compute instances to the group - -In this request, populate the `linodes` array with a comma-separated data center list of stored `id` values for the compute instances. In the URL, target the new placement group using its stored `id`. - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "linodes": [ - 123, 456, 789 - ] - }' \ - https://api.linode.com/v4/placement/groups/12/assign -``` -With all your compute instances added, we begin provisioning by placing them into the placement group to meet your selected `placement_group_type`. - -#### More with the Placement Groups API - -There are several other operations in the [Linode API](https://techdocs.akamai.com/linode-api/reference/post-placement-group) you can use to interact with placement groups. - -## Technical Specifications - -- Placement groups support dedicated, premium, and shared compute instance plans. You can mix dedicated and shared plan compute instances in the same placement group, but you can't mix premium plans with any other type. - -- Specialty hardware, such as GPUs aren't supported. - -- A compute instance can only exist in one placement group. - -- The maximum number of compute instances in a placement group is currently five. This quantity is reflected in Cloud Manager when reviewing your placement group. With the API, the [GET /v4/regions/\{regionid\}](/docs/api/regions/#region-view) operation contains the `maximum_linodes_per_pg` element that displays this maximum. - -- Placement groups can be renamed or deleted. To delete a placement group, you need to remove all compute instances from it. - -- When you remove a compute instance from a placement group, it continues to function as-is, but the placement decisions are no longer guided by the group's Placement Group Type. - -- Entry points to create a placement group are also available when creating a new compute instance or editing an existing one. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/placement-groups/pg-added-linode-v1.png b/docs/products/compute/compute-instances/guides/placement-groups/pg-added-linode-v1.png deleted file mode 100644 index fc54416c87d..00000000000 Binary files a/docs/products/compute/compute-instances/guides/placement-groups/pg-added-linode-v1.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/placement-groups/pg-added-linode-v2.png b/docs/products/compute/compute-instances/guides/placement-groups/pg-added-linode-v2.png deleted file mode 100644 index 572d213ff6b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/placement-groups/pg-added-linode-v2.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-dashboard.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-dashboard.png deleted file mode 100644 index 5ac286efb64..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-dashboard.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rebuild-progress-bar-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rebuild-progress-bar-highlighted.png deleted file mode 100644 index ba7327a9b8c..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rebuild-progress-bar-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rebuild-tab-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rebuild-tab-highlighted.png deleted file mode 100644 index d85d9c4df96..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rebuild-tab-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rescue-tab-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rescue-tab-highlighted.png deleted file mode 100644 index 6e09fa1a353..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linode-detail-page-rescue-tab-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linodes-page.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linodes-page.png deleted file mode 100644 index f27d752d4e7..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linodes-page.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linodes-rebuild.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linodes-rebuild.png deleted file mode 100644 index 140576b7306..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-linodes-rebuild.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-new-lish-window.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-new-lish-window.png deleted file mode 100644 index b5a4d1b385d..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-new-lish-window.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rebuild-form-confirmation-dialog.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rebuild-form-confirmation-dialog.png deleted file mode 100644 index 52f15ea4464..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rebuild-form-confirmation-dialog.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rebuild-form-rebuild-button-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rebuild-form-rebuild-button-highlighted.png deleted file mode 100644 index ddcf369eca0..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rebuild-form-rebuild-button-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-activity.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-activity.png deleted file mode 100644 index 4207fae5c58..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-activity.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-add-disk-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-add-disk-highlighted.png deleted file mode 100644 index 65bfda766f6..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-add-disk-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-dev-sda-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-dev-sda-highlighted.png deleted file mode 100644 index 19f259657c6..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-dev-sda-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-reboot-progress-bar-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-reboot-progress-bar-highlighted.png deleted file mode 100644 index a97656d118e..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-form-reboot-progress-bar-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-tab-launch-console-highlighted.png b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-tab-launch-console-highlighted.png deleted file mode 100644 index 446fea5fdf2..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/cloud-manager-rescue-tab-launch-console-highlighted.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/index.md b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/index.md deleted file mode 100644 index 347c5b9d960..00000000000 --- a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/index.md +++ /dev/null @@ -1,392 +0,0 @@ ---- -title: Rescue and Rebuild -description: 'Learn how to rescue and rebuild a Compute Instance by using the recovery tools available in Cloud Manager.' -published: 2012-05-31 -modified: 2023-09-07 -keywords: ["rescue", "rebuild"] -tags: ["cloud manager"] -image: rescue-rebuild.jpg -aliases: ['/troubleshooting/rescue-and-rebuild-classic-manager/','/troubleshooting/rescue-and-rebuild/','/rescue-and-rebuild/','/troubleshooting/finnix-rescue-mode/','/guides/rescue-and-rebuild/'] ---- - -Even the best system administrators may need to deal with unplanned events in the operation of their services. Cloud Manager provides recovery tools that you can leverage if you are having trouble connecting to one of the Compute Instances, and this guide describes those tools: - -- You can boot your Compute Instance into [*Rescue Mode*](#rescuing) to perform system recovery tasks and transfer data off the disks, if necessary. - -- If you are unable to resolve the system issues, you can [*rebuild*](#rebuilding) the Compute Instance from a backup or start over with a fresh Linux distribution. - -## Troubleshooting Resources - -While this guide outlines the recovery tools that Linode makes available to you, it does not provide a specific troubleshooting strategy. Our other guides offer a logical progression of steps you can follow when troubleshooting different symptoms: - -- If you are not able to establish basic network connections with the Compute Instance, then review the [Troubleshooting Basic Connection Issues](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/) guide. - -- If you can ping the instance but can't access SSH, follow the [Troubleshooting SSH](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) guide. - -- If you can access SSH but are experiencing an outage with a web server or other service, review [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/). - -- For an overview of all these issues and answers to other questions, check out the [Troubleshooting Overview](/docs/guides/troubleshooting-overview/) guide. - -## Rescuing - -*Rescue Mode* is a safe environment for performing many system recovery and disk management tasks. Rescue Mode is based on the [Finnix recovery distribution](http://www.finnix.org/), a self-contained and bootable Linux distribution. Within Rescue Mode, you can mount a Compute Instance's disks and run Linux commands to further troubleshoot issues. You can also use Rescue Mode for tasks other than disaster recovery, such as: - -- Formatting disks to use different filesystems - -- Copying data between disks - -- Downloading files from a disk through SSH and SFTP - -### Rescue Mode Overview - -To access Rescue Mode, you need to [reboot your Compute Instance](#booting-into-rescue-mode) from Cloud Manager and then connect through [Lish](#connecting-to-a-linode-running-in-rescue-mode) or [SSH](#starting-ssh). After you connect, you can [perform a check on your filesystem](#performing-a-file-system-check) if you suspect that it is corrupted. If you need access to a certain software package to troubleshoot the system, you can [install it](#installing-packages). - -Disks are not mounted by default and need to be [mounted manually](#mounting-disks) before you can access your files. After you mount the primary filesystem, you can [*change root*](#change-root) to have Rescue Mode emulate normal Linux distribution. - -### Boot into Rescue Mode - -To boot a Compute Instance into Rescue Mode, follow the instructions below. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click the **Linodes** link in the sidebar: - - ![Cloud Manager dashboard - Linodes sidebar link highlighted](cloud-manager-dashboard.png) - -1. Click on the **more options ellipsis** next to the Compute Instance that you wish to boot in to Rescue Mode, and click on the **Rescue** option to open the Rescue form: - - ![Cloud Manager Linodes page - rescue option highlighted](cloud-manager-linodes-page.png) - -1. In the **Rescue** form, select the disks you want to mount: - - ![Cloud Manager Rescue form - /dev/sda highlighted](cloud-manager-rescue-form-dev-sda-highlighted.png) - - {{< note >}} - Make a note of which devices the disks are assigned to (e.g. `/dev/sda`, `/dev/sdb`, etc). For example, in the screenshot shown above, the Ubuntu disk corresponds to `/dev/sda`. These assignments are where you can mount the disks from inside Rescue Mode. - {{< /note >}} - -1. If you need to assign additional disks to be accessible inside Rescue Mode, click the **Add Disk** option: - - ![Cloud Manager Rescue form - Add Disk highlighted](cloud-manager-rescue-form-add-disk-highlighted.png) - - You can assign up to 7 disks in Rescue Mode. `/dev/sdh` is always assigned to the Finnix recovery distribution. - - As a best practice, review the names that your Compute Instance's disks are using in your [configuration profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) (`/dev/sda`, `/dev/sdb`, etc.) and match those names to the device assignments you specify in the Rescue form before starting Rescue Mode. - - Matching these names is especially important if you need to [change root](#change-root) within Rescue Mode. The chroot will be able to read your Compute Instance's `/etc/fstab` file, which defines where and how your instance mounts its disks when booting up, to automatically apply the correct mount options and mount directories to your disks. - - A mismatch in the names of your disks between your Compute Instance's configuration profile and your Rescue Mode environment may cause the chroot to mount these disks in the wrong location or with the wrong mount options. As a result, it is important to ensure that these names match. - - {{< note noTitle=true type="warning" >}} - Disks are *not* mounted by default in Rescue Mode and will need to be mounted manually. See [Mounting Disks](#mounting-disks) for instructions on mounting individual disks. - {{< /note >}} - -1. Click the **Reboot into Rescue Mode** button. The Compute Instance reboots into Rescue Mode, and the progress percentage appears. When the instance appears as **Running** again, proceed to [Connecting to a Compute Instance Running in Rescue Mode](#connecting-to-a-compute-instance-running-in-rescue-mode). - - ![Cloud Manager Rescue form - reboot progress bar highlighted](cloud-manager-rescue-form-reboot-progress-bar-highlighted.png) - -### Connecting to a Compute Instance Running in Rescue Mode - -By default, Rescue Mode's Finnix environment does not accept SSH connections. To access the Compute Instance when it's running in Rescue Mode, connect to it through the *Lish* console. - -{{< note >}} -It is possible to enable SSH for Rescue Mode by manually starting the SSH daemon. Using SSH can provide a better experience and lets you copy files off of the server. Review the [Starting SSH](#starting-ssh) section for instructions. You need to use Lish at least once in order to start SSH. -{{< /note >}} - -To connect with Lish: - -1. From the Compute Instance's detail page, click the **Launch Console** button: - - ![Cloud Manager Linode detail page - Launch Console button highlighted](cloud-manager-rescue-tab-launch-console-highlighted.png) - -1. A new window appears which displays your Lish console, a `Welcome to Finnix!` message, and a root prompt: - - ![Cloud Manager Lish console](cloud-manager-new-lish-window.png) - -Review the [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/) guide for further explanation of the Lish console and alternative methods for accessing it, including [from your computer's terminal application](/docs/products/compute/compute-instances/guides/lish/#through-ssh-using-a-terminal). - -### Starting SSH - -The Finnix recovery distribution does not automatically start an SSH server, but you can enable one manually. This is useful if your Compute Instance does not boot and you need to copy files off of the disks. You can also copy entire disks over SSH. To start SSH: - -1. Open the [Lish console](#connecting-to-a-compute-instance-running-in-rescue-mode) for your Compute Instance. - -1. Set the `root` password for the Finnix rescue environment by entering the following command: - - ```command - passwd - ``` - - {{< note >}} - This root password is separate from the root password of the disk that you normally boot from. Setting the root password for Finnix does not affect the root account of the distribution. - {{< /note >}} - -1. Enter the new password for the `root` user. - -1. Start the SSH server: - - ```command - service ssh start - ``` - -You can now connect to the server as root with the SSH client on a local computer. You can also access mounted disks with an SFTP client: - -- For instructions on connecting with an SFTP client, see the [File Transfer reference manuals](/docs/tools-reference/file-transfer/). - -- For instructions on copying an entire disk over SSH, see [Copy a Disk Over SSH](/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/). - -### Performing a File System Check - -You can use the `e2fsck` system utility (short for "ext file system check") to check the consistency of filesystems and repair any damage detected on ext file systems. If you suspect that the Compute Instance's filesystem is corrupted, run `e2fsck` to check for and repair any damage on most disks: - -1. Enter the `df -h` command to verify that the primary disks are not currently mounted: - - ```command - df -h - ``` - - ```output - Filesystem Size Used Avail Use% Mounted on - udev 1.9G 0 1.9G 0% /dev - tmpfs 395M 516K 394M 1% /run - /dev/sr0 503M 503M 0 100% /run/live/medium - /dev/loop0 426M 426M 0 100% /run/live/rootfs/filesystem.squashfs - tmpfs 2.0G 17M 2.0G 1% /run/live/overlay - overlay 2.0G 17M 2.0G 1% / - tmpfs 2.0G 0 2.0G 0% /dev/shm - tmpfs 5.0M 0 5.0M 0% /run/lock - tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup - tmpfs 2.0G 0 2.0G 0% /tmp - tmpfs 395M 0 395M 0% /run/user/0pressed_root - unionfs 739M 1016K 738M 1% / - devtmpfs 10M 0 10M 0% /dev - ``` - - The primary disks should not appear in the list. In the [example screenshot](cloud-manager-rescue-form-dev-sda-highlighted.png) from the [Booting into Rescue Mode](#booting-into-rescue-mode) section, the Ubuntu 18.04 disk is assigned to `/dev/sda`. Because this device does not appear in the example output from `df -h`, run a filesystem check on it. - - {{< note type="alert" >}} - Never run `e2fsck` on a mounted disk. Do not continue unless you're sure that the target disk is unmounted. - {{< /note >}} - -1. Run `e2fsck` by entering the following command, replacing `/dev/sda` with the location of the disk you want to check and repair: - - ```command - e2fsck -f /dev/sda - ``` - -1. If no problems are detected, `e2fsck` displays the tests it performed: - - ```output - e2fsck 1.45.6 (20-Mar-2020) - Pass 1: Checking inodes, blocks, and sizes - Pass 2: Checking directory structure - Pass 3: Checking directory connectivity - Pass 4: Checking reference counts - Pass 5: Checking group summary information - /dev/sda: 44611/2564096 files (0.1% non-contiguous), 602550/10240000 blocks - ``` - -1. If `e2fsck` determines that there is a problem with the filesystem, it prompts you to fix problems as they are found during each test: - - ```output - e2fsck 1.45.6 (20-Mar-2020) - ext2fs_open2: Bad magic number in super-block - e2fsck: Superblock invalid, trying backup blocks... - Resize inode not valid. Recreate? - ``` - - Press **enter** to automatically attempt to fix the problems. - - After the filesystem check completes, any problems detected should be fixed. Try rebooting the Compute Instance from Cloud Manager. If `e2fsck` fixed the issues, the instance should boot normally. - -### Installing Packages - -The Finnix recovery distribution is based on Debian, so you can use the [`apt` package management system](/docs/guides/apt-package-manager/) to install additional software packages in the temporary rescue environment. For example, you could install and run the `nmon` utility by using the following commands: - -```command -apt update -apt install nmon -nmon -``` - -The software packages you install is available as long as the Compute Instance is running in Rescue Mode. - -### Mounting Disks - -{{< note >}} -Before you mount the disk check the location of the root partition in the `/etc/fstab` file and update it accordingly. In the following example `/dev/sda` is the location of the disk. For more information, see the [Update your fstab](/docs/guides/install-a-custom-distribution/#additional-system-configuration) guide. -{{< /note >}} - -By default, your disks are not mounted when your Compute Instance boots into Rescue Mode. However, you can manually mount a disk under Rescue Mode to perform system recovery and maintenance tasks. - -These instructions mount the `/dev/sda` disk. If you are mounting a different disk, replace `sda` with the name of your disk throughout these instructions. - -1. Create a new directory for your disk: - - ```command - mkdir -p /media/sda - ``` - -1. Mount the disk to make its contents available at the `/media/sda` directory: - - ```command - mount -o barrier=0 /dev/sda /media/sda - ``` - -1. View the contents of the disk to confirm you can access them: - - ```command - ls /media/sda - ``` - - You can now read and write to files on the mounted disk. - -{{< note >}} -You can unmount your disk by running the `unmount` command. You may want to unmount your disk to [run a file system check](#performing-a-file-system-check), for example. - -The `umount` command requires you to specify the device you want to unmount. You may specify this device in one of two ways: - -- Specify the device name itself: - - ```command - umount /dev/sda - ``` - -- Specify the mount directory: - - ```command - umount /media/sda - ``` -{{< /note >}} - -If you would like to mount or unmount additional disks on your system, repeat these instructions with the appropriate substitutions. - -### Change Root - -*Changing root* is the process of changing your working root directory. When you change root (abbreviated as *chroot*) to your root disk, you are able to run commands as though you are logged in to that system. - -Chroot lets you change user passwords, remove/install packages, and do other system maintenance and recovery tasks in your Compute Instance's normal Linux environment. - -1. Create a new directory for your disk: - - ```command - mkdir -p /media/sda - ``` - -1. Before you use chroot, mount the root disk: - - ```command - mount -o exec,barrier=0 /dev/sda /media/sda - ``` - - {{< note >}} - If you mounted your disk without using the `exec` option before reviewing this section, include the `remount` option in your `mount` command: - - ```command - mount -o remount,exec,barrier=0 /dev/sda /media/sda - ``` - {{< /note >}} - -1. To create the chroot, you need to mount the temporary filesystems: - - ```command - cd /media/sda - mount -t proc proc proc/ - mount -t sysfs sys sys/ - mount -o bind /dev dev/ - mount -t devpts pts dev/pts/ - ``` - -1. Chroot to your disk: - - ```command - chroot /media/sda /bin/bash - ``` - -1. Your Compute Instance may expect its other disks to be mounted in specific directories during its regular operations. These disks and their expected directories are defined in the `/etc/fstab` file. In order for these directories to be accessible within the chroot, you need to mount them from within the chroot. For example, if your instance defines `/dev/sdc` in its `/etc/fstab`, you can the following command to mount it: - - ```command - mount /dev/sdc - ``` - - {{< note >}} - This `mount` command only specifies a disk name without specifying a mount point. This causes `mount` to use the `/etc/fstab` file in the chroot to determine the mount point and apply the correct mount options. - - As a result, this command depends on you having made these disks available to your Rescue Mode environment under the same names that they use in your [configuration profile](/docs/products/compute/compute-instances/guides/configuration-profiles/). - - If these names do not match, mounting your disks using only a device name will either fail completely, mount them at the wrong directory, and/or apply the wrong mount options to them. - - The easiest way to alleviate this problem is by [starting a new Rescue Mode session from Cloud Manager](#booting-into-rescue-mode) which properly matches these disk names between your Rescue Mode environment and your configuration profile. - {{< /note >}} - -1. To exit the chroot and get back to Finnix type "exit" : - - ```command - exit - ``` - -## Rebuilding - -If you can't rescue and resolve issues on an existing disk, you likely need to rebuild the Compute Instance. Rebuilding the instance is the process of starting over with a set of known-good disks that you can boot from. There are a few different ways you can do this: - -- If you are subscribed to the [Backup Service](https://www.linode.com/backups), you can [restore from an existing backup](#restoring-from-a-linode-backup) and return the Compute Instance to a previous state. - -- If you aren't subscribed to the Backup Service, you can copy files off an existing disk and then [use the Rebuild feature](#use-the-rebuild-feature) of Cloud Manager to erase everything and start over again from scratch. - -- If you have a backup system other than the Backup Service in place, you can [rebuild your Compute Instance](#use-the-rebuild-feature) and then restore the data from that backup service. The methods for restoring data varies by the kind of backup system that you use. - -{{< note type="alert" >}} -Did an unauthorized intruder gain access to your Compute Instance? Since it is virtually impossible to determine the full scope of an attacker's reach into a compromised system, you should never continue using a compromised system. - -Linode recommends that you follow the instructions in [Recovering from a System Compromise](/docs/guides/recovering-from-a-system-compromise/). You need to create a new Compute Instance, copy your existing data from the old instance to the new one, and then swap IP addresses. -{{< /note >}} - -### Restoring from a Backup - -If you previously enabled the [Backup Service](https://www.linode.com/backups), you may be able to restore one of the backups to the Compute Instance. Review the [Restore a Backup to an Existing Compute Instance](/docs/products/storage/backups/guides/restore-to-an-existing-instance/) guide for instructions. - -If you created backups with an application other than Linode's Backup Service, review the application's instructions to restore a backup to the Compute Instance. - -### Use the Rebuild Feature - -Cloud Manager provides a *Rebuild* feature performs the following two actions: - -1. The current disks are removed. - -1. A new set of disks is provisioned from one of Cloud Manager's built-in Linux images, or from one of the [saved images](/docs/products/tools/images/). - - {{< note type="alert" >}} - If you use the Rebuild feature, the data from the disks that are deleted are not retrievable. You may [back up your data manually](/docs/guides/backing-up-your-data/) or [create a snapshot through Linode's Backup Service](/docs/products/storage/backups/guides/take-a-snapshot/) to preserve data before using the Rebuild feature. - - If you'd like to deploy a new Linux distribution without erasing the existing disks, follow the instructions in the [Creating a Disk](/docs/products/compute/compute-instances/guides/disks-and-storage/#create-a-disk) guide. This is a better option if you need to create a new distribution, but also need to save the existing data. - - The Compute Instance needs to have some amount of unallocated disk space in order to provision a new distribution. If the instance does not have enough unallocated space, you can [shrink your existing disks](/docs/products/compute/compute-instances/guides/disks-and-storage/#resize-a-disk) to free up space or [resize your Compute Instance](/docs/products/compute/compute-instances/guides/resize/) to a higher resource tier. - {{< /note >}} - - If you need to copy files from your existing disk to another location before rebuilding, you can [start SSH](#starting-ssh) under Rescue Mode and then use an SFTP client to copy files to your computer. - -To use the Rebuild feature: - -1. If you need to copy files from existing disk to another location before rebuilding, you can [start SSH](#starting-ssh) under Rescue Mode and then use an [SFTP client](/docs/tools-reference/file-transfer/) to copy files to your computer, another server, or somewhere else. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click on the **Linodes** link in the sidebar: - - ![Cloud Manager dashboard - Linodes sidebar link highlighted](cloud-manager-dashboard.png) - -1. Click on the **more options ellipsis** next to the Compute Instance that will be rebuilt, and click on the Rebuild option to open the Rebuild form: - - ![Cloud Manager Linodes page - rebuild option highlighted](cloud-manager-linodes-rebuild.png) - -1. Complete the Rebuild form. Select an image or StackScript to deploy and enter a root password. Optionally, select one or more SSH keys (if you have not added any SSH Keys via Cloud Manager, this option does not appear). - - {{% content "password-requirements-shortguide" %}} - -1. Click on **Rebuild** button after completing the form: - - ![Cloud Manager Rebuild form - Rebuild button highlighted](cloud-manager-rebuild-form-rebuild-button-highlighted.png) - -1. The Compute Instance may take several minutes to complete the rebuild process. Select the instance that is being rebuilt and select the `Activity Feed` tab to monitor rebuild progress and confirm that the rebuild has been completed: - - ![Linode Cloud Manager Activity - Activity](cloud-manager-rescue-activity.png) diff --git a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/rescue-rebuild.jpg b/docs/products/compute/compute-instances/guides/rescue-and-rebuild/rescue-rebuild.jpg deleted file mode 100644 index 4a91911fe7a..00000000000 Binary files a/docs/products/compute/compute-instances/guides/rescue-and-rebuild/rescue-rebuild.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/reset-root-password/compute-instance-power-off.png b/docs/products/compute/compute-instances/guides/reset-root-password/compute-instance-power-off.png deleted file mode 100644 index a03ab71d6b5..00000000000 Binary files a/docs/products/compute/compute-instances/guides/reset-root-password/compute-instance-power-off.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/reset-root-password/index.md b/docs/products/compute/compute-instances/guides/reset-root-password/index.md deleted file mode 100644 index e0383b3d2de..00000000000 --- a/docs/products/compute/compute-instances/guides/reset-root-password/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Reset the Root Password on a Compute Instance -description: "Change the root user password for the Linux environment running on a Compute Instance." -published: 2019-02-11 -modified: 2023-05-04 -keywords: ["linux", "linode", "cloud manager", "image"] -tags: ["linode platform","cloud manager","security"] -aliases: ['/quick-answers/linode-platform/reset-the-root-password-on-your-linode-classic-manager/','/quick-answers/linode-platform/reset-the-root-password-on-your-linode/','/quick-answers/linode-platform/reset-the-root-password-on-your-linode-new-manager/','/guides/reset-the-root-password-on-your-linode/'] ---- - -All Compute Instances deployed using one of Linode's [official distribution images](/docs/products/compute/compute-instances/guides/distributions/) provide the ability to reset the root password on the system. This is useful if you ever lock yourself out of your instance's root account or are simply rotating your password for security. Follow the instructions below to reset your root password: - -1. Log in to [Cloud Manager](https://cloud.linode.com), click the **Linodes** link in the sidebar, and select a Compute Instance from the list. - -1. Click the **Power Off** button in the upper right of the Compute Instance's dashboard or within the **ellipsis** menu. Wait until the Compute Instance has been fully powered off before continuing to the next step. - - ![Screenshot of a Compute Instance Details page with the Power Off button highlighted](compute-instance-power-off.png) - -1. Navigate to the **Settings** tab. - -1. Scroll down to the **Reset Root Password** section. - - ![Screenshot of the Reset Root Password form](reset-root-password.png) - -1. Select your primary disk from the **Disk** dropdown menu. - -1. Enter a new password for the root user in the **New Root Password** field. - - {{% content "password-requirements-shortguide" %}} - -1. Click **Save** to make the change. - -1. Click **Power On** button to turn on your Compute Instance. - -You can now use this new password when logging in as the root user on your Compute Instance over [SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) or [Lish](/docs/products/compute/compute-instances/guides/lish/) (the Linode Shell). If you're able to log in as root using Lish but not SSH, there may be an issue with the SSH configuration, firewall rules, or other network issues. The following guides provide more troubleshooting steps: - -- [Troubleshooting Basic Connection Issues on Compute Instances](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/) -- [Troubleshooting SSH on Compute Instances](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) -- [Troubleshooting Firewall Issues on Compute Instances](/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/) \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/reset-root-password/reset-root-password.png b/docs/products/compute/compute-instances/guides/reset-root-password/reset-root-password.png deleted file mode 100644 index ca1dea79255..00000000000 Binary files a/docs/products/compute/compute-instances/guides/reset-root-password/reset-root-password.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/resize/auto-resize-disk.png b/docs/products/compute/compute-instances/guides/resize/auto-resize-disk.png deleted file mode 100644 index b7eabc87ed5..00000000000 Binary files a/docs/products/compute/compute-instances/guides/resize/auto-resize-disk.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/resize/index.md b/docs/products/compute/compute-instances/guides/resize/index.md deleted file mode 100644 index 506d2058911..00000000000 --- a/docs/products/compute/compute-instances/guides/resize/index.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: "Change Plans (Resize)" -title_meta: "How to Resize a Compute Instance" -description: "A walkthrough on upgrading or downgrading a Compute Instance's plan, including switching to a different plan type." -published: 2017-02-14 -modified: 2023-10-31 -keywords: ["upgrading", "resizing", "disk space"] -tags: ["linode platform","cloud manager"] -image: resizing_a_linode.png -aliases: ['/platform/disk-images/resizing-a-linode-classic-manager/','/resizing/','/platform/disk-images/resizing-a-linode/','/migrate-to-linode/disk-images/resizing-a-linode/','/guides/resizing-a-linode/'] ---- - -You can easily change a Compute Instance's plan using Cloud Manager. Are you expecting a temporary burst of traffic to your website? Or, are you using your plan's resource allotment less than you thought? To accommodate, you can upgrade to a larger plan or downgrade to a smaller one, respectively. You can also change to a different plan type, such as switching from a Shared CPU plan to a Dedicated CPU plan. - -## Before you begin - -Consider these points before attempting a resize: - -- **Hardware changes, but performance is preserved**. While resizing a Compute Instance, Cloud Manager migrates it to a different physical host within the same data center. This new host may have slightly different hardware, but performance is consistent across our entire network. - -- **There are two resize types**. You can choose from two resize types: a **warm resize** or a **cold resize**. The type you choose determines the amount of migration downtime during a resize. See [Warm Resize vs. Cold Resize](#warm-resize-vs-cold-resize) to determine which resize type is right for you. - -- **What's preserved**. All of your existing data and configuration settings are preserved during the resize, and your IP addresses remain the same. - -- **Placement groups aren't supported**. Resizing a compute instance removes it from a [placement group](/docs/products/compute/compute-instances/guides/placement-groups/). The migration required for resizing moves the compute instance to a different physical host in a data center. This can break the Affinity Type setting that's required for a placement group. If your compute instance is in a placement group and you need to resize it, talk to your Akamai account team about other options. - -- **The transfer rate during a resize**. Your compute instance's disks are transferred to the new hardware at approximately 150 MB/sec. However, actual transfer speeds may vary. - -## Warm resize vs. cold resize - -You have two resize options to choose from: **warm** and **cold**. Each refer to the [type of migration](/docs/products/compute/compute-instances/guides/compute-migrations/) that occurs during the resize process. - -- **Warm resize**. Your compute instance remains up during the migration and it's rebooted once the migration completes. So, make sure your instance is powered on for this resize. If you see a warning message about an inability to power down your compute instance, try the resize again using the cold resize option. There is less downtime during a warm resize than a cold resize. - -- **Cold resize**. This shuts down your compute instance, migrates it to a new host, and restores it to its booted state before the resize process. - -## Resize a compute instance - -1. Log in to [Cloud Manager](https://cloud.linode.com) and select **Linodes**. - -2. In the list of compute instances, find the one you want to resize, click the corresponding **...**, and select **Resize**. The **Resize Linode** panel is displayed. - - ![The Resize Linode panel in Cloud Manager](resize-linode-plan.jpg) - -3. Select the plan you want: - - - **Select a larger plan**. Review [Upgrade to a Larger Plan](#upgrading-to-a-larger-plan). - - - **Select a smaller plan**. First, resize the instance's disks. See [Downgrade to a smaller plan](#downgrading-to-a-smaller-plan). - - - **Select a different plan type**. Review [Switch to a different plan type](#switching-to-a-different-plan-type). - -4. Under **Choose Your Resize Type**, select **warm resize** or **cold resize**. See [Warm resize vs. cold resize](#warm-resize-vs-cold-resize) to help decide which option best suits your need. - -5. Check **Auto Resize Disk** if you want to automatically resize your compute instance's primary disk. You can only select this if you meet these conditions: - - - The new plan provides more storage space than the current plan. - - - There is only a single ext3 or ext4 disk (not a raw disk). A swap disk can also be present, but the process doesn't resize it. - - ![The Auto Resize Disk checkbox](auto-resize-disk.png) - -6. Enter the Compute Instance's label in the **Confirm** field and click **Resize Linode**. - -With a warm resize, Cloud Manager powers your instance on to complete the resize process. If performing a cold resize, Cloud Manager returns your instance to its original power state. - -## Upgrade to a larger plan - -You can scale vertically when upgrading your compute instance to a plan with additional resources and capacity. Larger plans can accommodate increased traffic and give your application the additional computing power it needs. Since larger plans come equipped with more resources, you may want to make adjustments to take advantage of these resources. - -- **Resize Disks**. In most cases, you can opt to automatically resize the disks when resizing your compute instance. If your instance doesn't meet the requirements for this functionality, or if you decide not to do this automatically, you can manually resize the disks later. See [Resize a Linode's Disk](/docs/products/compute/compute-instances/guides/disks-and-storage/) - -- **Optimize Applications**. You can enhance the performance for many applications if additional resources are available. You can do things like increase the memory limit, enable multiple threads, and increase the maximum size of data, cache, logs, or other files. Review the documentation for your application and any software such as PHP, MySQL, Apache, or NGINX. - -- **Enable Multi-Queue NICS**. If you're upgrading to a plan with two or more vCPU cores, make sure the **multi-queue NICs** feature is enabled. Typically this is enabled by default. However, older distributions may require additional steps. See [Configuring Multi-Queue NICS](/docs/products/compute/compute-instances/guides/multiqueue-nic/). - -## Downgrade to a smaller plan - -If you're looking to reduce computing costs, you can downgrade to a plan that uses fewer resources. This can also apply if you've tuned your application to use system resources more efficiently. - -1. Determine the amount of disk space you're using on your compute instance. Log in to your instance via [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/) and run the following command and review the *Used* column data: - - ```command - df -h - ``` - -2. Review Compute Instance plans to see if you can downsize. See the [Pricing Page](https://www.linode.com/pricing/). - - {{< note >}} - If you're close to a downgraded size plan, you can try to free up space on your compute instance. See the options for doing this in the [Download Files from Your Linode](/docs/guides/download-files-from-a-compute-instance/) guide. - {{< /note >}} - -3. Resize the compute instance's disks to fit within the new plan. See [Resize a Disk](/docs/products/compute/compute-instances/guides/disks-and-storage/). - -## Switch to a different plan type - -When resizing your instance, you can also switch to a different plan type that better suits your workload. Here are the Compute Instance plan types Akamai offers: - -- **Dedicated CPU**. Optimized for CPU-intensive applications. This plan type is equipped with dedicated vCPU cores, suitable for almost any workload that requires consistently high CPU performance. Use cases include production (and high traffic) websites, e-commerce sites, machine learning, data processing, and much more. See [Dedicated CPU Compute Instances](https://www.linode.com/products/dedicated-cpu/). - -- **Shared CPU**. Balancing performance with value. This plan type is a solid foundation for many common use cases, including development, low-traffic websites, or any workload that doesn't require consistent 100% CPU usage. See [Shared CPU Compute Instances](https://www.linode.com/products/shared/). - -- **Premium CPU**. Guaranteed hardware for CPU-intensive workloads. Built off of our Dedicated CPU offering, this plan comes equipped with the latest AMD EPYC™ CPUs to make sure your applications are running on the best available hardware with consistent high performance. Use cases include enterprise-grade production applications, video transcoding, and more. See [Premium CPU Compute Instances](https://www.linode.com/products/premium-cpu/). - -- **High Memory**. Optimized for memory-intensive applications. This plan type is also equipped with dedicated vCPU cores, though they contain more memory than other similarly priced plans. Use cases include large or high-traffic databases, caching servers, and more. See [High Memory Compute Instances](https://www.linode.com/products/high-memory/). - -- **GPU:** The only plan type that is equipped with high performance NVIDIA GPU cards. GPU plans are capable of processing large amounts of data in parallel, performing complex calculations much more efficiently. See [GPU Compute Instances](https://www.linode.com/products/gpu/). - -{{< note >}} -- See the [Choosing a Compute Instance Type and Plan](/docs/products/compute/compute-instances/plans/choosing-a-plan/) guide for advice and a comparison of each plan. - -- Pricing and plan options may vary by region. See our [Pricing](https://www.linode.com/pricing/) page for more information on pricing options and [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/#product-availability) for plan and product availability. -{{< /note >}} - -### How to switch - -Follow the instructions in [Resize a Linode](#resizing-a-linode). When choosing the plan, select the tab that corresponds with your desired plan type. - -## Troubleshooting - -- **If a warm resize fails**. Cloud Manager generates a notification, and you get an email notification regarding the failed job. There are several reasons a warm resize may fail, including the inability to successfully reboot due to internal configuration settings. If this happens, try a cold resize. - -- **If a cold resize fails**. Retry it. If it continues to fail, reach out to our [Support](/docs/products/platform/get-started/guides/support/) department for assistance. - -For additional information on troubleshooting resizes or migrations, please see our [Compute Migrations](/docs/products/compute/compute-instances/guides/compute-migrations/) guide. diff --git a/docs/products/compute/compute-instances/guides/resize/resize-linode-plan.jpg b/docs/products/compute/compute-instances/guides/resize/resize-linode-plan.jpg deleted file mode 100644 index fd094bb913d..00000000000 Binary files a/docs/products/compute/compute-instances/guides/resize/resize-linode-plan.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/resize/resize-linode-plan.png b/docs/products/compute/compute-instances/guides/resize/resize-linode-plan.png deleted file mode 100644 index 63e9c28ae94..00000000000 Binary files a/docs/products/compute/compute-instances/guides/resize/resize-linode-plan.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/resize/resizing_a_linode.png b/docs/products/compute/compute-instances/guides/resize/resizing_a_linode.png deleted file mode 100644 index 3433d53614e..00000000000 Binary files a/docs/products/compute/compute-instances/guides/resize/resizing_a_linode.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/resize/select-plan-type-tab.png b/docs/products/compute/compute-instances/guides/resize/select-plan-type-tab.png deleted file mode 100644 index 9a89e2b4226..00000000000 Binary files a/docs/products/compute/compute-instances/guides/resize/select-plan-type-tab.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/resource-usage-email-alerts/index.md b/docs/products/compute/compute-instances/guides/resource-usage-email-alerts/index.md deleted file mode 100644 index b96debf9c21..00000000000 --- a/docs/products/compute/compute-instances/guides/resource-usage-email-alerts/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Configure Email Alerts for Resource Usage on Compute Instances -description: "Learn how to turn on and off email alerts for usage activity on various Compute Instance resources, such as CPU usage." -aliases: ['/products/tools/monitoring/guides/monitoring-email-alerts/'] ---- - -{{% content "monitoring-configure-email-alerts-shortguide" %}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/set-up-and-secure/create-instance-details.png b/docs/products/compute/compute-instances/guides/set-up-and-secure/create-instance-details.png deleted file mode 100644 index 8b20a1cb1de..00000000000 Binary files a/docs/products/compute/compute-instances/guides/set-up-and-secure/create-instance-details.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/set-up-and-secure/index.md b/docs/products/compute/compute-instances/guides/set-up-and-secure/index.md deleted file mode 100644 index bb2a2462ef5..00000000000 --- a/docs/products/compute/compute-instances/guides/set-up-and-secure/index.md +++ /dev/null @@ -1,575 +0,0 @@ ---- -title: "Setting Up and Securing a Compute Instance" -title_meta: "How to Set Up and Secure a Compute Instance" -description: "Learn how to set up and secure a new Compute Instance, including updating your software, creating a user account, and hardening SSH." -published: 2022-02-25 -modified: 2024-01-04 -keywords: ["security", "secure", "firewall", "ssh", "add user", "quick start"] -tags: ["ssh","security"] -bundles: ['centos-security', 'debian-security'] -aliases: ['/securing-your-server/','/security/linux-security-basics/','/security/securing-your-server/index.cfm/','/security/basics/securing-your-server/','/security/securing-your-server/','/guides/securing-your-server/','/guides/set-up-and-secure/'] ---- - -After you have successfully created a Compute Instance, there are a few initial configuration steps you should perform within your new Linux system. This includes updating your system, setting the timezone, configuring a custom hostname, adding a limited user, hardening SSH to prevent unauthorized access, and configuring a firewall. These steps ensure your instance is up to date, secure, and ready for use. - -{{< note >}} -While this guide is optional, it walks you through best practices and covers important steps to secure your server. It is recommended that you follow these instructions when deploying a new Compute Instance. Some guides within our library assume that you have performed these steps, such as setting your hostname and updating your software. -{{< /note >}} - -1. [View your Instance in Cloud Manager](#view-your-instance-in-the-cloud-manager) -1. [Connect to the Instance](#connect-to-the-instance) -1. [Perform System Updates](#perform-system-updates) -1. [Set the Timezone](#set-the-timezone) -1. [Configure a Custom Hostname](#configure-a-custom-hostname) -1. [Add a Limited User Account](#add-a-limited-user-account) -1. [Harden SSH Access](#harden-ssh-access) -1. [Configure a Firewall](#configure-a-firewall) -1. [Common Lockout Recovery Steps](#common-lockout-recovery-steps) - -## Before You Begin - -If you haven't done so already, review the following guides to learn more about using Linode and Compute Instances. - -- [Getting Started with Linode](/docs/products/platform/get-started/) -- [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) -- [Linode Beginner's Guide](/docs/products/compute/compute-instances/faqs/) - -## View your Instance in Cloud Manager - -Log in to [Cloud Manager](https://cloud.linode.com/), click the **Linodes** link in the left menu, and select your Compute Instance from the list. This opens the details page for that instance, which lets you view key information and further configure it to meet your needs. - -![Details page in Cloud Manager](create-instance-details.png) - -## Connect to the Instance - -Once the Compute Instance has been created and has finished booting up, you can connect to it. Connecting to your instance is usually done through the SSH (Secure Shell) protocol, though you can use the [Lish Console](/docs/products/compute/compute-instances/guides/lish/) to bypass SSH and connect directly to your instance. The Lish Console can be accessed through a web browser (Weblish) or via SSH on the command line. - -- **Weblish (via Cloud Manager):** Click the **Launch LISH Console** link at the top right corner of the Compute Instance's detail page. See [Using the Lish Console > Through a Browser](/docs/products/compute/compute-instances/guides/lish/#through-cloud-manager-weblish). - -- **SSH:** Copy the command from the *SSH Access* field under the **Access** section on the Compute Instance's detail page (see screenshot above) and paste it into your local computer's terminal. The command should look similar to the following, only with the IP address of your newly created instance. - - ```command - ssh root@192.0.2.17 - ``` - - - **Windows:** Windows 10 and 11 users can connect to their Compute Instance using the [Command Prompt (or PowerShell)](/docs/guides/connect-to-server-over-ssh-on-windows/#command-prompt-or-powershell---windows-10-or-11) application, provided their system is fully updated. For users of Windows 8 and earlier, [Secure Shell on Chrome](/docs/guides/connect-to-server-over-ssh-on-chrome/), [PuTTY](/docs/guides/connect-to-server-over-ssh-using-putty/), or many other third party tools can be used instead. See [Connecting to a Remote Server Over SSH on Windows](/docs/guides/connect-to-server-over-ssh-on-windows/). - - **macOS:** The *Terminal* application is pre-installed on macOS. See [Connecting to a Remote Server Over SSH on a Mac](/docs/guides/connect-to-server-over-ssh-on-mac/). - - **Linux:** You can use a terminal window, regardless of desktop environment or window manager. See [Connecting to a Remote Server Over SSH on Linux](/docs/guides/connect-to-server-over-ssh-on-linux/) - -- **Lish (via SSH):** Copy the command from the *LISH Console via SSH* field under the **Access** section on the Compute Instance's detail page (see screenshot above) and paste it into your local computer's terminal. The command should look similar to the one below, only with your username, data center, and Compute Instance label. Review [Using the Lish Console > Through SSH](/docs/products/compute/compute-instances/guides/lish/#through-ssh-using-a-terminal) for more instructions. - - ```command - ssh -t user@lish-newark.linode.com example-instance - ``` - -## Perform System Updates - -Updating your system frequently is the single biggest security precaution you can take for any operating system. Software updates range from critical vulnerability patches to minor bug fixes and many software vulnerabilities are actually patched by the time they become public. Updating also provides you with the latest software versions available for your distribution. - -{{< tabs >}} -{{< tab "Ubuntu, Debian, Kali Linux" >}} -```command -apt update && apt upgrade -``` - -{{< note >}} -When updating some packages, you may be prompted to use updated configuration files. If prompted, it is typically safer to keep the locally installed version. -{{< /note >}} -{{< note >}} -Linode's Kali Linux distribution image is a [minimum installation](https://www.kali.org/docs/troubleshooting/common-minimum-setup/). You will likely want to install individual [tools](https://www.kali.org/tools/) or [metapackages](https://www.kali.org/tools/kali-meta/), such as the [kali-linux-headless](https://www.kali.org/tools/kali-meta/#kali-linux-headless) metapackage. -{{< /note >}} -{{< /tab >}} -{{< tab "CentOS/RHEL 8+, Fedora" >}} -*This includes CentOS Stream 8 (and above), CentOS 8, other RHEL derivatives (including AlmaLinux 8 and Rocky Linux 8), and Fedora.* - -```command -dnf upgrade -``` -{{< /tab >}} -{{< tab "CentOS 7" >}} -```command -yum update -``` -{{< /tab >}} -{{< tab "openSUSE" >}} -```command -zypper update -``` -{{< /tab >}} -{{< tab "Alpine" >}} -```command -apk update && apk upgrade -``` -{{< /tab >}} -{{< tab "Arch" >}} -```command -pacman -Syu -``` -{{< /tab >}} -{{< tab "Gentoo" >}} -```command -emaint sync -a -``` - -After running a sync, it may end with a message that you should upgrade Portage using a `--oneshot` emerge command. If so, run the Portage update. Then update the rest of the system: - -```command -emerge -uDU --keep-going --with-bdeps=y @world -``` -{{< /tab >}} -{{< tab "Slackware" >}} -```command -slackpkg update -slackpkg upgrade-all -``` -{{< /tab >}} -{{< /tabs >}} - -## Set the Timezone - -All new Compute Instances are set to UTC time by default. However, you may prefer to use the time zone which you live in so log file timestamps are relative to your local time. - -{{< tabs >}} -{{< tab "Most Distributions" >}} -*This includes CentOS Stream 8 (and newer), CentOS 7 (and newer), other RHEL derivatives (including AlmaLinux 8 and Rocky Linux 8), Fedora, and Arch. These instructions also work for most Ubuntu, Debian, and openSUSE distributions, though other methods may be preferred in those cases.* - -1. Use `timedatectl` to output a list of available timezones. - - ```command - timedatectl list-timezones - ``` - -1. Use the arrow keys, `Page Up`, and `Page Down` to navigate through the list. Copy or make note of your desired time zone and press **q** to exit the list. - -1. Set the time zone using the command below, replacing *America/New_York* with your preferred time zone. - - ```command - timedatectl set-timezone 'America/New_York' - ``` -{{< /tab >}} -{{< tab "Ubuntu, Debian, Kali" >}} -The instructions under the [Most Distributions](#most-distributions-1) section above (which outlines the `timedatectl` command) are valid. That said, both Ubuntu and Debian come with a more friendly tool called `tzdata`, outlined below. - -1. Open the `tzdata` tool. - - ```command - dpkg-reconfigure tzdata - ``` - -1. Select the continent of your choice using the arrow keys and press **Enter**. -1. Select your region using the arrow keys and press **Enter**. -{{< /tab >}} -{{< tab "Alpine" >}} -1. Use the [setup-timezone](https://wiki.alpinelinux.org/wiki/Alpine_setup_scripts#setup-timezone) command to initiate the timezone selection process: - - ```command - setup-timezone - ``` - -1. Enter the timezone you are located within. If you aren't sure of the timezone string to use, enter `?` to display a list of available timezones - -1. If you selected a region with sub-timezones, enter `?` again to see a list of available sub-timezones and then enter the sub-timezone you are located within. -{{< /tab >}} -{{< tab "Gentoo" >}} -1. View a list of available time zones. - - ```command - ls /usr/share/zoneinfo - ``` - -1. Write the selected time zone to `/etc/timezone` (for example, EST for Eastern Standard Time). - - ```command - echo "EST" > /etc/timezone - ``` - -1. Configure the `sys-libs/timezone-data` package, which sets `/etc/localtime`. - - ```command - emerge --config sys-libs/timezone-data - ``` -{{< /tab >}} -{{< tab "openSUSE" >}} -The instructions under the [Most Distributions](#most-distributions-1) section above (which outlines the `timedatectl` command) are valid. openSUSE also has a more friendly way to select a timezone, discussed below. - -1. Open the YaST2 timezone selector tool. - - ```command - yast2 timezone - ``` - -1. Use the arrow keys to select your region within the *Region* pane. - -1. Press **tab** to switch to the *Time Zone* pane and then use the arrow keys to select your time zone or sub-region. - -1. Press **F10** to save the changes. Alternatively, press **tab** until the `[OK]` text button is highlighted. Then press **enter**. -{{< /tab >}} -{{< tab "Slackware" >}} -1. Run the `timeconfig` tool. - - ```command - timeconfig - ``` - -1. Select `NO Hardware clock is set to local time`. -1. Select a timezone. -{{< /tab >}} -{{< /tabs >}} - -### Check the Time - -Use the `date` command to view the current date and time according to your server. - -```output -root@localhost:~# date -Thu Feb 16 12:17:52 EST 2018 -``` - -## Configure a Custom Hostname - -A hostname is used to identify your Compute Instance using an easy-to-remember name. It can be descriptive and structured (detailing what the system is used for) or a generic word or phrase. Here are some examples of hostnames: - -- **Descriptive and/or Structured:** `web`, `staging`, `blog`, or something more structured like `[purpose]-[number]-[environment]` (ex: `web-01-prod`). - -- **Generic/Series:** Such as the name of a fruit (`apple`, `watermelon`), a planet (`mercury`, `venus`), or animal (`leopard`, `sloth`). - -This hostname can be used as part of a FQDN (fully qualified domain name) for the system (ex: `web-01-prod.example.com`). - -{{< tabs >}} -{{< tab "Most distributions" >}} -*This includes Ubuntu 16.04 (and newer), CentOS Stream 8 (and newer), CentOS 7 (and newer), other RHEL derivatives (including AlmaLinux 8 and Rocky Linux 8), Debian 8 (and newer), Fedora, openSUSE, Kali Linux, and Arch.* - -Replace `example-hostname` with one of your choice. - -```command -hostnamectl set-hostname example-hostname -``` -{{< /tab >}} -{{< tab "Alpine" >}} -See [Update Your Systems hosts File](#update-your-systems-hosts-file). -{{< /tab >}} -{{< tab "Gentoo" >}} -```command -echo "HOSTNAME=\"example-hostname\"" > /etc/conf.d/hostname -/etc/init.d/hostname restart -``` -{{< /tab >}} -{{< tab "Slackware" >}} -```command -echo "example-hostname" > /etc/HOSTNAME -hostname -F /etc/HOSTNAME -``` -{{< /tab >}} -{{< /tabs >}} - -After you've made the changes above, you may need to log out and log back in again to see the terminal prompt change from `localhost` to your new hostname. The command `hostname` should also show it correctly. See our guide on using the [hosts file](/docs/guides/using-your-systems-hosts-file/) if you want to configure a fully qualified domain name. - -### Update Your System's `hosts` File - -The `hosts` file creates static associations between IP addresses and hostnames or domains which the system prioritizes before DNS for name resolution. - -1. Open the `hosts` file in a text editor, such as [Nano](/docs/guides/use-nano-to-edit-files-in-linux/). - - ```command - nano /etc/hosts - ``` - -1. Add a line for your Compute Instance's public IP address. You can associate this address with your instance's **Fully Qualified Domain Name** (FQDN) if you have one, and with the local hostname you set in the steps above. In the example below, `203.0.113.10` is the public IP address, `example-hostname` is the local hostname, and `example-hostname.example.com` is the FQDN. - - ```file {title="/etc/hosts"} - 127.0.0.1 localhost.localdomain localhost - 203.0.113.10 example-hostname.example.com example-hostname - ``` - -1. Add a line for your Compute Instance's IPv6 address. Applications requiring IPv6 will not work without this entry: - - ```file {title="/etc/hosts"} - 127.0.0.1 localhost.localdomain localhost - 203.0.113.10 example-hostname.example.com example-hostname - 2600:3c01::a123:b456:c789:d012 example-hostname.example.com example-hostname - ``` - -The value you assign as your system's FQDN should have an "A" record in DNS pointing to your Compute Instance's IPv4 address. For IPv6, you should also set up a DNS "AAAA" record pointing to your instance's IPv6 address. - -See our guide to [Adding DNS Records](/docs/products/networking/dns-manager/) for more information on configuring DNS. For more information about the `hosts` file, see [Using your System's hosts File](/docs/guides/using-your-systems-hosts-file/) - -## Add a Limited User Account - -Up to this point, you have accessed your Compute Instance as the `root` user, which has unlimited privileges and can execute *any* command--even one that could accidentally disrupt your server. We recommend creating a limited user account and using that at all times. Administrative tasks will be done using `sudo` to temporarily elevate your limited user's privileges so you can administer your server. Later, when you want to restrict sudo access for users, see [Linux Users and Groups](/docs/guides/linux-users-and-groups/#understanding-the-sudo-linux-group-and-user). - -{{< note >}} -Not all Linux distributions include `sudo` on the system by default, but all the images provided by Linode have sudo in their package repositories. If you get the output `sudo: command not found`, install sudo before continuing. -{{< /note >}} - - -{{< tabs >}} -{{< tab "Ubuntu, Debian, Kali Linux" >}} -1. Create the user, replacing `example_user` with your desired username. You'll then be asked to assign the user a password: - - ```command - adduser example_user - ``` - -1. Add the user to the `sudo` group so you'll have administrative privileges: - - ```command - adduser example_user sudo - ``` -{{< /tab >}} -{{< tab "CentOS/RHEL, Fedora" >}} -1. Create the user, replacing `example_user` with your desired username, and assign a password: - - ```command - useradd example_user && passwd example_user - ``` - -1. Add the user to the `wheel` group for sudo privileges: - - ```command - usermod -aG wheel example_user - ``` -{{< /tab >}} -{{< /tabs >}} - -### Log in as the New User - -1. After creating your limited user, disconnect from your Compute Instance: - - ```command - exit - ``` - -1. Log back in as your new user. Replace `example_user` with your username, and the example IP address with your instance's IP address: - - ```command - ssh example_user@192.0.2.17 - ``` - -Now you can administer your Compute Instance from your new user account instead of `root`. Nearly all superuser commands can be executed with `sudo` (example: `sudo iptables -L -nv`) and those commands will be logged to `/var/log/auth.log`. - -## Harden SSH Access - -By default, password authentication is used to connect to your Compute Instance via SSH. A cryptographic key-pair is more secure because a private key takes the place of a password, which is generally much more difficult to decrypt by brute-force. In this section we'll create a key-pair and configure your system to not accept passwords for SSH logins. - -### Create and Upload Your SSH Key {#upload-ssh-key} - -To protect your user account with public key authentication, you first need to create an SSH key pair and upload the public key to your server. - -1. Locate your existing SSH public key or, if you don't yet have one, create a new SSH key pair. - - - **If you have an existing SSH key,** find the public key on your local machine. SSH keys are typically stored in a hidden `.ssh` directory within the user's home directory: - - - **Linux:** `/home/username/.ssh/` - - **macOS:** `/Users/username/.ssh/` - - **Windows:** `C:\Users\Username\.ssh\` - - Since SSH keys are generated as a private and public key pair, there should be two files for each SSH key. They have similar filenames, with the public key using a `.pub` extension and the private key using no extension. While SSH keys can have custom filenames, many people generate them using their default names. These default filenames start with `id_` followed by the type of key, such as `id_rsa`, `id_ed25519`, and `id_ecdsa`. See example private and public key filenames below: - - - **Private key:** `id_ed25519` - - **Public key:** `id_ed25519.pub` - - - **If you do not yet have an SSH key pair,** generate one now. We recommend using the Ed25519 algorithm with a secure passphrase. The command below works for Linux, macOS, and most fully updated Windows 10 and 11 machines. Replace `user@domain.tld` with your own email address or whatever custom comment string you wish to use. This helps with differentiate SSH keys and identify the owner. - - ```command - ssh-keygen -t ed25519 -C "user@domain.tld" - ``` - - When prompted for the filename, you can press Enter to use the defaults. When prompted for the optional passphrase, we recommend using a string similar to a strong password (with a mix of letters, numbers, and symbols). - - For more detailed instructions, on creating an SSH key, review the [Generate an SSH Key Pair](/docs/guides/use-public-key-authentication-with-ssh/#generate-an-ssh-key-pair) guide. Users of Windows 7 and earlier should review the [PuTTY](/docs/guides/use-public-key-authentication-with-ssh/#public-key-authentication-with-putty-on-windows) section. - -1. Upload the public key to your Compute Instance. Replace `example_user` with the name of the user you plan to administer the server as and `192.0.2.17` with your instance's IP address. - - {{< tabs >}} - {{< tab "Linux" >}} - From your local computer: - - ```command - ssh-copy-id example_user@192.0.2.17 - ``` - {{< /tab >}} - {{< tab "macOS" >}} - On your Compute Instance (while signed in as your limited user): - - ```command - mkdir -p ~/.ssh && sudo chmod -R 700 ~/.ssh/ - ``` - - From your local computer: - - ```command - scp ~/.ssh/id_rsa.pub example_user@203.0.113.10:~/.ssh/authorized_keys - ``` - - {{< note >}} - `ssh-copy-id` is available in [Homebrew](http://brew.sh/) if you prefer it over SCP. Install with `brew install ssh-copy-id`. - {{< /note >}} - {{< /tab >}} - {{< tab "Windows 10 or 11" >}} - On your Compute Instance (while signed in as your limited user): - - ```command - mkdir -p ~/.ssh && sudo chmod -R 700 ~/.ssh/ - ``` - - From your local computer: - - ```command - scp C:\Users\MyUserName\.ssh/id_rsa.pub example_user@192.0.2.17:~/.ssh/authorized_keys - ``` - {{< /tab >}} - {{< tab "Earlier Windows Versions" >}} - - **Option 1:** This can be done using [WinSCP](http://winscp.net/). In the login window, enter your Compute Instance's public IP address as the hostname, and your non-root username and password. Click *Login* to connect. - - Once WinSCP has connected, you'll see two main sections. The section on the left shows files on your local computer and the section on the right shows files on your instance. Using the file explorer on the left, navigate to the file where you've saved your public key, select the public key file, and click *Upload* in the toolbar above. - - You'll be prompted to enter a path where you'd like to place the file on your Compute Instance. Upload the file to `/home/example_user/.ssh/authorized_keys`, replacing `example_user` with your username. - - - **Option 2:** Copy the public key directly from the PuTTY key generator into the terminal emulator connected to your Compute Instance (as a non-root user): - - ```command - mkdir ~/.ssh; nano ~/.ssh/authorized_keys - ``` - - The above command will open a blank file called `authorized_keys` in a text editor. Copy the public key into the text file, making sure it is copied as a single line exactly as it was generated by PuTTY. Press **CTRL+X**, then **Y**, then **Enter** to save the file. - {{< /tab >}} - {{< /tabs >}} - -1. Finally, you'll want to set permissions for the public key directory and the key file itself. On your Compute Instance, run the following command: - - ```command - sudo chmod -R 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys - ``` - - This provides an extra layer of security by preventing other users from accessing the public key directory as well as the file itself. For more information on how this works, see our guide on [how to modify file permissions](/docs/guides/modify-file-permissions-with-chmod/). - -1. Now exit and log back in to your Compute Instance. In most cases, the first authentication method attempted will be public key authentication. If you've successfully uploaded a public key for your user, you should be logged in without entering your user's password (though you will need to enter the passphrase for the SSH key). - -This should trigger If you specified a passphrase for your private key, you'll need to enter it. - -### SSH Daemon Options - -Lastly, edit the SSH configuration file to disallow root login and disable password authentication over SSH. - -1. Open the SSH configuration file on your Compute Instance using a Linux text editor, such as nano or vim: - - ```command - sudo nano /etc/ssh/sshd_config - ``` - -1. **Disallow root logins over SSH.** This requires all SSH connections be by non-root users. Once a limited user account is connected, administrative privileges are accessible either by using `sudo` or changing to a root shell using `su -`. - - ```file {title="/etc/ssh/sshd_config" lang="aconf"} - # Authentication: - ... - PermitRootLogin no - ``` - -1. **Disable SSH password authentication.** This requires all users connecting via SSH to use key authentication. Depending on the Linux distribution, the line `PasswordAuthentication` may need to be added, or uncommented by removing the leading `#`. - - ```file {title="/etc/ssh/sshd_config" lang="aconf"} - # Change to no to disable tunnelled clear text passwords - PasswordAuthentication no - ``` - - {{< note >}} - You may want to leave password authentication enabled if you connect to your Compute Instance from many different computers. This will allow you to authenticate with a password instead of generating and uploading a key-pair for every device. - {{< /note >}} - -1. **Listen on only one internet protocol.** The SSH daemon listens for incoming connections over both IPv4 and IPv6 by default. Unless you need to SSH into your Compute Instance using both protocols, disable whichever you do not need. *This does not disable the protocol system-wide, it is only for the SSH daemon.* Depending on the Linux distribution, the line `AddressFamily` may need to be added, or uncommented by removing the leading `#` - - Use the option: - - - `AddressFamily inet` to listen only on IPv4. - - `AddressFamily inet6` to listen only on IPv6. - - ```file {title="/etc/ssh/sshd_config" lang="aconf"} - # Port 22 - AddressFamily inet - ``` - -1. Restart the SSH service to load the new configuration. - - - **Distributions with systemd:** If you’re using a Linux distribution which uses systemd (CentOS 7, Debian 8, Fedora, Ubuntu 15.10+), restart the service using systemctl: - - ```command - sudo systemctl restart sshd - ``` - - - **Ubuntu 22.10+**: If you are using Ubuntu 22.10 or later, `sshd` uses socket-based activation. Run this command instead of restarting the service. - - ```command - systemctl enable --now ssh.service - ``` - - - **Distributions without systemd:** If your init system is SystemV or Upstart (CentOS 6, Debian 7, Ubuntu 14.04), run the command below to restart the service: - - ```command - sudo service sshd restart - ``` - -### Use Fail2Ban for SSH Login Protection - -[*Fail2Ban*](http://www.fail2ban.org/wiki/index.php/Main_Page) is an application that bans IP addresses from logging in to your server after too many failed login attempts. Since legitimate logins usually take no more than three tries to succeed (and with SSH keys, no more than one), a server being spammed with unsuccessful logins indicates attempted malicious access. - -Fail2Ban can monitor a variety of protocols including SSH, HTTP, and SMTP. By default, Fail2Ban monitors SSH only, and is a helpful security deterrent for any server since the SSH daemon is usually configured to run constantly and listen for connections from any remote IP address. - -For complete instructions on installing and configuring Fail2Ban, see our guide: [A Tutorial for Using Fail2ban to Secure Your Server](/docs/guides/using-fail2ban-to-secure-your-server-a-tutorial/). - -## Configure a Firewall - -{{% content "cloud-firewall-shortguide" %}} - -Using a *firewall* to block unwanted inbound traffic to your Compute Instance provides a highly effective security layer. By being very specific about the traffic you allow in, you can prevent intrusions and network mapping. A best practice is to allow only the traffic you need, and deny everything else. See our documentation on some of the most common firewall applications: - -- [nftables](/docs/guides/how-to-use-nftables/) or its predecessor, [iptables](/docs/guides/control-network-traffic-with-iptables/), is the controller for netfilter, the Linux kernel's packet filtering framework. One of these utilities is included in most Linux distributions by default. - -- [firewalld](/docs/guides/introduction-to-firewalld-on-centos/) is a firewall management tool that serves as a front end to nftables or iptables. It is preinstalled on the RHEL family of distributions (and others), including CentOS, AlmaLinux, Rocky Linux, Fedora, and openSUSE Leap. - -- [UFW](/docs/guides/configure-firewall-with-ufw/) is another firewall management tool that operates as a front end to nftables or iptables. It is used by default on Ubuntu and is also available on other Debian-based distributions. - -## Common Lockout Recovery Steps - -If for whatever reason you find yourself locked out of your Compute Instance after putting your security controls into place, there are still a number of ways that you can regain access to your instance. - -- Access your Compute Instance through our out-of-band [Lish console](/docs/products/compute/compute-instances/guides/lish/) to regain access to the internals of your system without relying on SSH. - -- If you need to re-enable password authentication and/or root login over ssh to your instance, you can do this by reversing the following sections of this file to reflect these changes - - ```file {title="/etc/ssh/sshd_config" lang="aconf"} - # Authentication: - ... - PermitRootLogin yes - ... - PasswordAuthentication yes - ``` - - From there, you just need to restart SSH. - - If you’re using a Linux distribution which uses systemd (CentOS 7, Debian 8, Fedora, Ubuntu 15.10+) - - ```command - sudo systemctl restart sshd - ``` - - If your init system is SystemV or Upstart (CentOS 6, Debian 7, Ubuntu 14.04): - - ```command - sudo service sshd restart - ``` - -- If you need to remove your public key from your Compute Instance, you can enter the following command: - - ```command - rm ~/.ssh/authorized_keys - ``` - - You can then replace your key by re-following the [Create an Authentication Key-pair](#create-an-authentication-key-pair) section of this guide. - -## Next Steps - -These are the most basic steps to harden any Linux server, but further security layers will depend on its intended use. Additional techniques can include application configurations, using [intrusion detection](/docs/guides/ossec-ids-debian-7/), installing a form of [access control](https://en.wikipedia.org/wiki/Access_control#Access_Control), [fine tuning sudo access](/docs/guides/linux-users-and-groups/#understanding-the-sudo-linux-group-and-user), [removing exposed services](/docs/guides/remove-unused-network-facing-services), and [more](/docs/security/). - -Now you can begin setting up your Compute Instance for any purpose you choose. We have a library of documentation to assist you with a variety of topics ranging from [migration from shared hosting](/docs/guides/migrate-from-shared-hosting-to-linode/) to [enabling two-factor authentication](/docs/products/platform/accounts/guides/user-security-controls/) to [hosting a website](/docs/guides/hosting-a-website-ubuntu-18-04/). - -{{% content "email-warning-shortguide" %}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/systemd-networkd/index.md b/docs/products/compute/compute-instances/guides/systemd-networkd/index.md deleted file mode 100644 index 09def22694d..00000000000 --- a/docs/products/compute/compute-instances/guides/systemd-networkd/index.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: "Network Configuration Using systemd-networkd" -description: "Learn how to configure networking using the systemd-networkd utility on Ubuntu, Arch, and other modern Linux distributions" -published: 2022-05-27 -modified: 2022-06-17 -keywords: ["static", "ip address", "systemd-networkd"] -tags: ["networking","linode platform"] -aliases: ['/guides/systemd-networkd/'] ---- - -The [systemd-networkd](https://wiki.archlinux.org/title/systemd-networkd) tool is a newer tool developed as part of systemd. Arch and modern versions of Ubuntu (17.10 and above) currently use systemd-networkd as their default network configuration software. - -{{< note >}} -By default, Linode's Network Helper tool manages networking in Ubuntu using systemd-networkd. Ubuntu also has utility called Netplan that serves as a front end for configuring either systemd-networkd or NetworkManager. To use Netplan instead, review the [Network Configuration Using Netplan](/docs/products/compute/compute-instances/guides/netplan/) guide. -{{< /note >}} - -{{< note >}} -This guide serves as a supplement to the main [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide. Please review that guide before making any configuration changes to your Compute Instance. -{{< /note >}} - -## Configuration Files - -Here are details regarding the network configuration files for systemd-networkd, including information on the default configuration file location. - -- **File extension:** `.network` -- **File location:** `/etc/systemd/network/` -- **Naming convention:** `[priority]-[interface].network`, with *[priority]* being used to order the files (files are processed alpha-numerically\*) and *[interface]* providing a convenient way for a user to associate a file with a particular interface. -- **Default configuration file:** `/etc/systemd/network/05-eth0.network`. - -\* *When systemd-networkd brings up the network interfaces, the configuration files are processed alpha-numerically. As such, you'll see that files are typically prepended with a 2-digit number to help order them. The default configuration file is prepended with `05`. If we wanted to create a configuration file for a different interface, we could prepend it with a number below `05` (to be processed before) or above (to be processed after).* - -## Starter Configuration - -Here is an example of a typical configuration file for systemd-networkd. It statically defines the IPv4 address and allows SLAAC to configure the IPv6 address. - -```file {title="/etc/systemd/network/05-eth0.network"} -[Match] -Name=eth0 - -[Network] -DHCP=no -DNS=203.0.113.1 203.0.113.2 203.0.113.3 -Domains=ip.linodeusercontent.com -IPv6PrivacyExtensions=false - -Gateway=192.0.2.1 -Address=192.0.2.123/24 -``` - -- [**Name**](https://www.freedesktop.org/software/systemd/man/systemd.network.html#Name=): `eth0`, the default interface configured for the public internet on most Compute Instances. When using a VLAN, the public internet interface may be configured differently. - -- [**DHCP**](https://www.freedesktop.org/software/systemd/man/systemd.network.html#DHCP=): `no`, which disables DHCP and lets you statically define the main IPv4 address in later fields. - -- [**DNS**](https://www.freedesktop.org/software/systemd/man/systemd.network.html#DNS=): A list of IP addresses that map to Linode's DNS resolvers. The IP addresses provided in this example are placeholders and do not function. - -- [**Domains**](https://www.freedesktop.org/software/systemd/man/systemd.network.html#Domains=): `ip.linodeusercontent.com`, which is defined as a "search domain". This is a quick way of converting single-label hostnames to FQDNs, but isn't often needed. - -- [**IPv6PrivacyExtensions**](https://www.freedesktop.org/software/systemd/man/systemd.network.html#IPv6PrivacyExtensions=): `false`, which disables privacy extensions and helps to resolve any issues with automatically configuring your IPv6 SLAAC address. - -- [**Gateway**](https://www.freedesktop.org/software/systemd/man/systemd.network.html#Gateway=): Statically configures the IPv4 gateway address. - -- [**Address**](https://www.freedesktop.org/software/systemd/man/systemd.network.html#Gateway=): Statically configures the IPv4 address. - -## Configuring IP Addresses Manually - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and review your Compute Instance's IP addresses. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/). Make a note of the following pieces of information or keep this page accessible so you can reference it later. - - - Public IPv4 address(es) and the associated IPv4 gateway - - Private IPv4 address (if one has been added) - - IPv6 SLAAC address and the associated IPv6 gateway - - IPv6 /64 or /56 routed range (if one has been added) - - DNS resolvers (if you want to use Linode's resolvers) - -1. Disable Network Helper on the Compute Instance so that it doesn't overwrite any of your changes on the next system reboot. For instructions, see the [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting) guide. This guide covers disabling Network Helper *globally* (for all Compute Instances on your account) or just for a single instance. - -1. Log in to the Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). You may want to consider using Lish to avoid getting locked out in the case of a configuration error. - -1. Perform any necessary configuration steps as outlined in the workflows below. You can edit your network configuration file using a text editor like [nano](/docs/guides/use-nano-to-edit-files-in-linux/) or [vim](/docs/guides/what-is-vi/). - - ```command - sudo nano /etc/systemd/network/05-eth0.network - ``` - -1. Once you've edited the configuration file to fit your needs, you need to apply the changes or reboot the Compute Instance. To apply your changes with systemd-networkd, restart the service: - - ```command - sudo systemctl restart systemd-networkd - ``` - -## Changing the Primary IPv4 Address - -To change the IPv4 address configured on the system, set the `Gateway` and `Address` parameters to match the new IP address and its corresponding gateway IP address. - -```file {title="/etc/systemd/network/05-eth0.network"} -... -Gateway=192.0.2.1 -Address=192.0.2.123/24 -``` - -## Configuring the Primary IPv4 Address through DHCP - -DHCP can be used to automatically configure your primary IPv4 address. The primary IPv4 address is defined as the IPv4 address assigned to your system that is in the first position when sorted numerically. To enable DHCP, set the `DHCP` parameter to `yes` and remove (or comment out) the lines that define the `Gateway` and `Address` of the primary IPv4 address. - -```file {title="/etc/systemd/network/05-eth0.network"} -... -[Network] -DHCP=yes -... -# Gateway=192.0.2.1 -# Address=192.0.2.123/24 -``` - -{{< note type="alert" >}} -When using DHCP, the IPv4 address configured on your system may change if you add or remove IPv4 addresses on your Compute Instance. If this happens, any tool or system using the original IPv4 address will no longer be able to connect. -{{< /note >}} - -## Configuring the Primary IPv6 Address through SLAAC - -SLAAC is used to automatically configure your primary IPv6 address. For this to work, your system must accept router advertisements. You also may need to disable IPv6 privacy extensions. Within systemd-networkd, this means setting `IPv6PrivacyExtensions` to `false` and `IPv6AcceptRA` to `true`. - -```file {title="/etc/systemd/network/05-eth0.network"} -... -[Network] -... -IPv6PrivacyExtensions=false -IPv6AcceptRA=true -``` - -{{< note >}} -The `IPv6AcceptRA` parameter isn't strictly required as long as running the `net.ipv6.conf.eth0.autoconf` kernel variable is set to `1` (not a `0`). You can determine the setting by running the following command. - - sysctl net.ipv6.conf.eth0.autoconf -{{< /note >}} - -If you wish to disable IPv6 SLAAC addressing and instead statically configure your IPv6 address (not recommended), you can explicitly set the `IPv6AcceptRA` parameter to `false` and then add your primary IPv6 address (using the prefix of `/128`). - -```file {title="/etc/systemd/network/05-eth0.network"} -... -IPv6AcceptRA=false -Address=[ip-address]/128 -``` - -## Configuring Additional IP Addresses - -Additional IP addresses can be configured by adding another `Address` parameter within the `[Network]` section of the configuration file. - -```file {title="/etc/systemd/network/05-eth0.network"} -... -Address=[ip-address]/[prefix] -``` - -In the example above, make the following replacements: - -- **[ip-address]**: The IP address that you wish to statically configure. If configuring an address from an IPv6 range, you can choose any address within that range. For example, within the range *2001:db8:e001:1b8c::/64*, the address `2001:db8:e001:1b8c::1` can be used. -- **[prefix]**: The prefix is based on the type of IP address you are adding: - - Public IPv4 address: `/24` - - Private IPv4 address: `/17` - - IPv6 SLAAC address: `/128` (though it's recommended to configure this automatically through SLAAC) - - IPv6 address from a range: `/64` or `/56` (depending on the size of the range) - -## Changing the DNS Resolvers - -DNS resolvers are the entities that resolve domain names to their corresponding IPv4 address. By default, the Compute Instance should be using the DNS resolvers for the data center in which it resides. You can change these by setting the `DNS` parameter to a space delimited list of the IP addresses for your preferred DNS resolvers. - -```file {title="/etc/systemd/network/05-eth0.network"} -... -DNS=203.0.113.1 203.0.113.2 203.0.113.3 -``` - -In the above example, replace the IP addresses provided with the IP addresses of the DNS resolvers you wish to use. Both IPv4 and IPv6 addresses can be used together. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/index.md b/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/index.md deleted file mode 100644 index ba0a4f963ad..00000000000 --- a/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/index.md +++ /dev/null @@ -1,446 +0,0 @@ ---- -title: "Troubleshooting Basic Connection Issues on Compute Instances" -description: 'Troubleshooting steps to help restore basic connectivity to your Linode when it is unresponsive.' -published: 2019-02-01 -modified: 2023-03-14 -keywords: ['linux','reboot','lish','troubleshoot','packet loss'] -tags: ["networking", "linode platform"] -bundles: ['troubleshooting'] -aliases: ['/troubleshooting/troubleshooting-basic-connection-issues/','/guides/troubleshooting-basic-connection-issues/','/troubleshooting/disaster-recovery-guide/','/guides/disaster-recovery-guide/'] ---- - -This guide presents troubleshooting strategies for Compute Instances that are unresponsive to any network access. One reason that an instance may be unresponsive is if you recently performed a distribution upgrade or other broad software updates to your system, as those changes can lead to unexpected problems for your core system components. - -Similarly, your server may be unresponsive after maintenance was applied by Linode to your server's host (frequently, this is correlated with software/distribution upgrades performed on your deployment before the host's maintenance). This guide is designed as a useful resource for either of these scenarios. If you need to troubleshoot memory and networking, read our guide on [Troubleshooting Memory and Networking Issues](/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/). - -If you can [ping](/docs/guides/linux-system-administration-basics/#the-ping-command) your Compute Instance, but you cannot access SSH or other services, this guide will not assist with troubleshooting those services. Instead, refer to the [Troubleshooting SSH](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) or [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/) guides. - -{{< note title="Additional resources for help" type=secondary isCollapsible=true >}} -This guide explains how to use different troubleshooting commands on your Compute Instance. These commands can produce diagnostic information and logs that may expose the root of your connection issues. For some specific examples of diagnostic information, this guide also explains the corresponding cause of the issue and presents solutions for it. - -If the information and logs you gather do not match a solution outlined here, consider searching the [Linode Community Site](https://www.linode.com/community/questions/) for posts that match your system's symptoms. Or, post a new question in the Community Site and include your commands' output. - -Linode is not responsible for the configuration or installation of software on your Compute Instance. Refer to Linode's [Scope of Support](/docs/products/platform/get-started/guides/support/#scope-of-support) for a description of which issues Linode Support can help with. -{{< /note >}} - -## Before You Begin - -There are a few core troubleshooting tools you should familiarize yourself with that are used when diagnosing connection problems. - -### The Linode Shell (Lish) - -[*Lish*](/docs/products/compute/compute-instances/guides/lish/) is a shell that provides access to your Compute Instance's serial console. Lish does not establish a network connection to your Compute Instance, so you can use it when your networking is down or SSH is inaccessible. Much of your troubleshooting for basic connection issues will be performed from the Lish console. - -To learn about Lish in more detail, and for instructions on how to connect to your Compute Instance via Lish, review the [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/) guide. In particular, [using your web browser](/docs/products/compute/compute-instances/guides/lish/#through-cloud-manager-weblish) is a fast and simple way to access Lish. - -### MTR - -When your network traffic leaves your computer to your Compute Instance, it travels through a series of routers that are administered by your internet service provider, by Linode's transit providers, and by the various organizations that form the [Internet's backbone](https://en.wikipedia.org/wiki/Internet_backbone). It is possible to analyze the route that your traffic takes for possible service interruptions using a tool called [MTR](/docs/guides/diagnosing-network-issues-with-mtr/). - -MTR is similar to the [traceroute](/docs/guides/linux-system-administration-basics/#the-traceroute-command) tool, in that it will trace and display your traffic's route. MTR also runs several iterations of its tracing algorithm, which means that it can report statistics like average packet loss and latency over the period that the MTR test runs. - -Review the installation instructions in Linode's [Diagnosing Network Issues with MTR](/docs/guides/diagnosing-network-issues-with-mtr/#install-mtr) guide and install MTR on your computer. - -## Is your Compute Instance Running? - -Log in to [Cloud Manager](https://cloud.linode.com/) and inspect the Compute Instance's dashboard. If the instance is powered off, turn it on. - -### Inspect the Lish Console - -If the Compute Instance is listed as running in Cloud Manager, or after you boot it from the Manager, open the Lish console and look for a login prompt. If a login prompt exists, try logging in with your root user credentials (or any other Linux user credentials that you previously created on the server). - -{{< note >}} -The root user is available in Lish even if root user login is disabled in your SSH configuration. -{{< /note >}} - -1. If you can log in at the Lish console, move on to the [diagnose network connection issues](#diagnose-network-connection-issues) section of this guide. - - If you see a log in prompt, but you have forgotten the credentials for your Compute Instance, follow the instructions for [resetting your root password](/docs/products/compute/compute-instances/guides/reset-root-password/) and then attempt to log in at the Lish console again. - -2. If you do not see a login prompt, your Compute Instance may have [issues with booting](#troubleshoot-booting-issues). - -## Troubleshoot Booting Issues - -If your Compute Instance isn't booting normally, you will not be able to rely on the Lish console to troubleshoot your deployment directly. To continue, you will first need to reboot your Compute Instance into [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rescuing), which is a special recovery environment that Linode provides. - -When you boot into Rescue Mode, you are booting your Compute Instance into the [Finnix recovery Linux distribution](https://www.finnix.org). This Finnix image includes a working network configuration, and you will be able to mount your Compute Instance's disks from this environment, which means that you will be able to access your files. - -1. Review the Rescue and Rebuild guide for instructions and [boot into Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#boot-into-rescue-mode). If your Compute Instance does not reboot into Rescue Mode successfully, please [contact Linode Support](/docs/products/platform/get-started/guides/support/#contact-customer-support). - -1. Connect to Rescue Mode via the Lish console as you would normally. You will not be required to enter a username or password to start using the Lish console while in Rescue Mode. - -### Perform a File System Check - -If your Compute Instance can't boot, then it may have experienced filesystem corruption. - -1. Review the Rescue and Rebuild guide for instructions on [running a filesystem check](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#performing-a-file-system-check). - - {{< note type="warning" >}} - Never run a filesystem check on a disk that is mounted. - {{< /note >}} - -1. If your filesystem check reports errors that cannot be fixed, you may need to [rebuild your Compute Instance](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rebuilding). - -1. If the filesystem check reports errors that it has fixed, try rebooting your Compute Instance under your normal [configuration profile](/docs/products/compute/compute-instances/guides/configuration-profiles/#boot-from-a-configuration-profile). After you reboot, you may find that your connection issues are resolved. If you still cannot connect as normal, restart the troubleshooting process from the [beginning of this guide](#is-your-compute-instance-running). - -1. If the filesystem check does not report any errors, there may be another reason for your booting issues. Continue to [inspecting your system and kernel logs](#inspect-system-and-kernel-logs). - -### Inspect System and Kernel Logs - -In addition to being able to mount your Compute Instance's disks, you can also *change root* (sometimes abbreviated as *chroot*) within Rescue Mode. *Chrooting* will make Rescue Mode's working environment emulate your normal Linux distribution. This means your files and logs will appear where you normally expect them, and you will be able to work with tools like your standard package manager and other system utilities. - -To proceed, review the Rescue and Rebuild guide's instructions on [changing root](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#change-root). Once you have chrooted, you can then investigate your Compute Instance's logs for messages that may describe the cause of your booting issues. - -In systemd Linux distributions (like Debian 8+, Ubuntu 16.04+, CentOS 7+, and recent releases of Arch), you can run the [`journalctl` command](/docs/guides/how-to-use-journalctl/) to view system and kernel logs. In these and other distributions, you may also find system log messages in the following files: - -- `/var/log/messages` -- `/var/log/syslog` -- `/var/log/kern.log` -- `/var/log/dmesg` - -You can use the [`less` command](/docs/guides/how-to-use-less/) to review the contents of these files (e.g. `less /var/log/syslog`). Try pasting your log messages into a search engine or searching in the [Linode Community Site](https://www.linode.com/community/questions/) to see if anyone else has run into similar issues. If you don't find any results, you can try asking about your issues in a new post on the Linode Community Site. If it becomes difficult to find a solution, you may need to [rebuild your Linode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rebuilding). - -### Quick Tip for Ubuntu and Debian Systems - -After you have chrooted inside Rescue Mode, the following command may help with issues related to your package manager's configuration: - -```command -dpkg --configure -a -``` - -After running this command, try rebooting your Compute Instance into your normal configuration profile. If your issues persist, you may need to investigate and research your system logs further, or consider [rebuilding your Compute Instance](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rebuilding). - -## Diagnose Network Connection Issues - -If you can boot your Compute Instance normally and access the Lish console, you can continue investigating network issues. Networking issues may have two causes: - -- There may be a network routing problem between your local system and your Compute Instance, or: - -- If the traffic is properly routed, your Compute Instance's network configuration may be malfunctioning. - -### Check for Network Route Problems - -To diagnose routing problems, run and analyze an MTR report from your computer to your Compute Instance. For instructions on how to use MTR, review Linode's [MTR guide](/docs/guides/diagnosing-network-issues-with-mtr/#analyze-mtr-reports). It is useful to run your MTR report for 100 cycles in order to get a good sample size (note that running a report with this many cycles will take more time to complete). This recommended command includes other helpful options: - -```command -mtr -rwbzc 100 -i 0.2 -rw 198.51.100.0 -``` - -Once you have generated this report, compare it with the following example scenarios. - -{{< note >}} -If you are located in China, and the output of your MTR report shows *high packet loss* or an *improperly configured router*, then your IP address may have been blocked (added to a blocklist) by the GFW (Great Firewall of China). Linode is not able to change your IP address if it has been blocked by the GFW. If you have this issue, review this [community post](https://www.linode.com/community/questions/17192/ssh-refused) for troubleshooting help. -{{< /note >}} - -- **High Packet Loss** - - ```command - mtr --report www.google.com - ``` - - ```output - HOST: localhost Loss% Snt Last Avg Best Wrst StDev - 1. 63.247.74.43 0.0% 10 0.3 0.6 0.3 1.2 0.3 - 2. 63.247.64.157 0.0% 10 0.4 1.0 0.4 6.1 1.8 - 3. 209.51.130.213 60.0% 10 0.8 2.7 0.8 19.0 5.7 - 4. aix.pr1.atl.google.com 60.0% 10 6.7 6.8 6.7 6.9 0.1 - 5. 72.14.233.56 50.0% 10 7.2 8.3 7.1 16.4 2.9 - 6. 209.85.254.247 40.0% 10 39.1 39.4 39.1 39.7 0.2 - 7. 64.233.174.46 40.0% 10 39.6 40.4 39.4 46.9 2.3 - 8. gw-in-f147.1e100.net 40.0% 10 39.6 40.5 39.5 46.7 2.2 - ``` - - This example report shows high persistent packet loss starting mid-way through the route at hop 3, which indicates an issue with the router at hop 3. If your report looks like this, [open a support ticket with your MTR results](#open-a-support-ticket-with-your-mtr-results) for further troubleshooting assistance. - - {{< note >}} - If your route only shows packet loss at certain routers, and not through to the end of the route, then it is likely that those routers are purposefully limiting [ICMP](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol) responses. This is generally not a problem for your connection. Linode's MTR guide provides more context for [packet loss issues](/docs/guides/diagnosing-network-issues-with-mtr/#verify-packet-loss). - {{< /note >}} - - If your report resembles the example, [open a support ticket with your MTR results](#open-a-support-ticket-with-your-mtr-results) for further troubleshooting assistance. Also, consult Linode's MTR guide for more context on [packet loss issues](/docs/guides/diagnosing-network-issues-with-mtr/#verify-packet-loss). - -- **Improperly Configured Router** - - ```command - mtr --report www.google.com - ``` - - ```output - HOST: localhost Loss% Snt Last Avg Best Wrst StDev - 1. 63.247.74.43 0.0% 10 0.3 0.6 0.3 1.2 0.3 - 2. 63.247.64.157 0.0% 10 0.4 1.0 0.4 6.1 1.8 - 3. 209.51.130.213 0.0% 10 0.8 2.7 0.8 19.0 5.7 - 4. aix.pr1.atl.google.com 0.0% 10 6.7 6.8 6.7 6.9 0.1 - 5. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 - 6. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 - 7. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 - 8. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 - 9. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 - 10. ??? 0.0% 10 0.0 0.0 0.0 0.0 0.0 - ``` - - If your report shows question marks instead of the hostnames (or IP addresses) of the routers, and if these question marks persist to the end of the route, then the report indicates an improperly configured router. If your report looks like this, [open a support ticket with your MTR results](#open-a-support-ticket-with-your-mtr-results) for further troubleshooting assistance. - - {{< note >}} - If your route only shows question marks for certain routers, and not through to the end of the route, then it is likely that those routers are purposefully blocking [ICMP](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol) responses. This is generally not a problem for your connection. Linode's MTR guide provides more information about [router configuration issues](/docs/guides/diagnosing-network-issues-with-mtr/#an-isp-router-is-not-configured-properly). - {{< /note >}} - -- **Destination Host Networking Improperly Configured** - - ```command - mtr --report www.google.com - ``` - - ```output - HOST: localhost Loss% Snt Last Avg Best Wrst StDev - 1. 63.247.74.43 0.0% 10 0.3 0.6 0.3 1.2 0.3 - 2. 63.247.64.157 0.0% 10 0.4 1.0 0.4 6.1 1.8 - 3. 209.51.130.213 0.0% 10 0.8 2.7 0.8 19.0 5.7 - 4. aix.pr1.atl.google.com 0.0% 10 6.7 6.8 6.7 6.9 0.1 - 5. 72.14.233.56 0.0% 10 7.2 8.3 7.1 16.4 2.9 - 6. 209.85.254.247 0.0% 10 39.1 39.4 39.1 39.7 0.2 - 7. 64.233.174.46 0.0% 10 39.6 40.4 39.4 46.9 2.3 - 8. gw-in-f147.1e100.net 100.0 10 0.0 0.0 0.0 0.0 0.0 - ``` - - If your report shows no packet loss or low packet loss (or non-persistent packet loss isolated to certain routers) until the end of the route, and 100% loss at your Compute Instance, then the report indicates that your Compute Instance's network interface is not configured correctly. If your report looks like this, move down to [confirming network configuration issues from Rescue Mode](#confirm-network-configuration-issues-from-rescue-mode). - -{{< note >}} -If your report does not look like any of the previous examples, read through the [MTR guide](/docs/guides/diagnosing-network-issues-with-mtr/) for other potential scenarios. -{{< /note >}} - -### Confirm Network Configuration Issues from Rescue Mode - -If your MTR indicates a configuration issue within your Compute Instance, you can confirm the problem by using Rescue Mode: - -1. Reboot your Compute Instance into [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#boot-into-rescue-mode). - -1. Run another MTR report from your computer to your Compute Instance's IP address. - -1. As noted earlier, Rescue Mode boots with a working network configuration. If your new MTR report does not show the same packet loss that it did before, this result confirms that your deployment's network configuration needs to be fixed. Continue to [troubleshooting network configuration issues](#troubleshoot-network-configuration-issues). - -1. If your new MTR report still shows the same packet loss at your Compute Instance, this result indicates issues outside of your configuration. [Open a support ticket with your MTR results](#open-a-support-ticket-with-your-mtr-results) for further troubleshooting assistance. - -### Open a Support Ticket with your MTR Results - -Before opening a support ticket, you should also generate a *reverse MTR* report. The MTR tool is run from your Compute Instance and targets your machine's IP address on your local network, whether you're on your home LAN, for example, or public WiFi. To run an MTR from your Compute Instance, log in to your Lish console. To find your local IP, visit a website like https://www.whatismyip.com/. - -Once you have generated your original MTR and your reverse MTR, [open a Linode support ticket](/docs/products/platform/get-started/guides/support/#contact-customer-support), and include your reports and a description of the troubleshooting you've performed so far. Linode Support will try to help further diagnose the routing issue. - -## Troubleshoot Network Configuration Issues - -If you have determined that your network configuration is the cause of the problem, review the following troubleshooting suggestions. If you make any changes in an attempt to fix the issue, you can test those changes with these steps: - -1. Run another MTR report (or [ping](/docs/guides/linux-ping-command/) the Compute Instance) from your computer to your Compute Instance's IP. - -1. If the report shows no packet loss but you still can't access SSH or other services, this result indicates that your network connection is up again, but the other services are still down. Move onto [troubleshooting SSH](#troubleshoot-ssh) or [troubleshooting other services](#troubleshoot-other-services). - -1. If the report still shows the same packet loss, review the remaining troubleshooting suggestions in this section. - -If the recommendations in this section do not resolve your issue, try pasting your [diagnostic commands' output](#run-diagnostic-commands) into a search engine or searching for your output in the [Linode Community Site](https://www.linode.com/community/questions/) to see if anyone else has run into similar issues. If you don't find any results, you can try asking about your issues in a new post on the Linode Community Site. If it becomes difficult to find a solution, you may need to [rebuild your Compute Instance](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rebuilding). - -### Try Enabling Network Helper - -A quick fix may be to enable the [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) tool. Network Helper will attempt to generate the appropriate static networking configuration for your Linux distribution. After you enable Network Helper, reboot your Compute Instance for the changes to take effect. If Network Helper was already enabled, continue to the remaining troubleshooting suggestions in this section. - -### Did You Upgrade to Ubuntu 18.04+ From an Earlier Version? - -If you performed an inline upgrade from an earlier version of Ubuntu to Ubuntu 18.04+, you may need to enable the `systemd-networkd` service: - -```command -sudo systemctl enable systemd-networkd -``` - -Afterwards, reboot your Compute Instance. - -### Run Diagnostic Commands - -To collect more information about your network configuration, collect output from the diagnostic commands appropriate for your distribution: - -- **Debian 7, Ubuntu 14.04** - - ```command - sudo service network status - cat /etc/network/interfaces - ip a - ip r - sudo ifdown eth0 && sudo ifup eth0 - ``` - -- **Debian 8 and 9, Ubuntu 16.04** - - ```command - sudo systemctl status networking.service -l - sudo journalctl -u networking --no-pager | tail -20 - cat /etc/network/interfaces - ip a - ip r - sudo ifdown eth0 && sudo ifup eth0 - ``` - -- **Ubuntu 18.04** - - ```command - sudo networkctl status - sudo systemctl status systemd-networkd -l - sudo journalctl -u systemd-networkd --no-pager | tail -20 - cat /etc/systemd/network/05-eth0.network - ip a - ip r - sudo netplan apply - ``` - -- **Arch, CoreOS** - - ```command - sudo systemctl status systemd-networkd -l - sudo journalctl -u systemd-networkd --no-pager | tail -20 - cat /etc/systemd/network/05-eth0.network - ip a - ip r - ``` - -- **CentOS 6** - - ```command - sudo service network status - cat /etc/sysconfig/network-scripts/ifcfg-eth0 - ip a - ip r - sudo ifdown eth0 && sudo ifup eth0 - ``` - -- **CentOS 7, Fedora** - - ```command - sudo systemctl status NetworkManager -l - sudo journalctl -u NetworkManager --no-pager | tail -20 - sudo nmcli - cat /etc/sysconfig/network-scripts/ifcfg-eth0 - ip a - ip r - sudo ifdown eth0 && sudo ifup eth0 - ``` - -### Inspect Error Messages - -Your commands' output may show error messages, including generic errors like `Failed to start Raise network interfaces`. There may also be more specific errors that appear. Two common errors that can appear are related to Sendmail and iptables: - -#### Sendmail - -If you find a message similar to the following, it is likely that a broken Sendmail update is at fault: - -```output -/etc/network/if-up.d/sendmail: 44: .: Can't open /usr/share/sendmail/dynamic run-parts: /etc/network/if-up.d/sendmail exited with return code 2 -``` - -The Sendmail issue can usually be resolved by running the following command and restarting your Compute Instance: - -```command -sudo mv /etc/network/if-up.d/sendmail ~ -ifdown -a && ifup -a -``` - -{{< note >}} -Read more about the Sendmail bug [here](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=873978). -{{< /note >}} - -#### iptables - -Malformed rules in your iptables ruleset can sometimes cause issues for your network scripts. An error similar to the following can appear in your logs if this is the case: - -```output -Apr 06 01:03:17 xlauncher ifup[6359]: run-parts: failed to exec /etc/network/if- Apr 06 01:03:17 xlauncher ifup[6359]: run-parts: /etc/network/if-up.d/iptables e -``` - -Run the following command and restart your Compute Instance to resolve this issue: - -```command -sudo mv /etc/network/if-up.d/iptables ~ -``` - -Please note that your firewall will be down at this point, so you will need to re-enable it manually. Review the [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) guide for help with managing iptables. - -### Was your Interface Renamed? - -In your commands' output, you might notice that your `eth0` interface is missing and replaced with another name (for example, `ensp` or `ensp0`). This behavior can be caused by systemd's [Predictable Network Interface Names](https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/) feature. - -1. Disable the use of Predictable Network Interface Names with these commands: - - ```command - ln -s /dev/null /etc/systemd/network/99-default.link - ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules - ``` - -1. Reboot your Compute Instance for the changes to take effect. - -### Review Firewall Rules - -If your interface is up but your networking is still down, your firewall (which is likely implemented by the `iptables` software) may be blocking all connections, including basic ping requests. To review your current firewall ruleset, run: - -```command -sudo iptables -L # displays IPv4 rules -sudo ip6tables -L # displays IPv6 rules -``` - -{{< note >}} -Your deployment may be running FirewallD or UFW, which are front-end software packages used to more easily manage your iptables rules. Run these commands to find out if you are running either package: - -```command -sudo ufw status -sudo firewall-cmd --state -``` - -Review [How to Configure a Firewall with UFW](/docs/guides/configure-firewall-with-ufw/#ufw-status) and [Introduction to FirewallD on CentOS](/docs/guides/introduction-to-firewalld-on-centos/#firewall-zones) to learn how to manage and inspect your firewall rules with those packages. -{{< /note >}} - -Firewall rulesets can vary widely. Review our [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) guide to analyze your rules and determine if they are blocking connections. - -### Disable Firewall Rules - -In addition to analyzing your firewall ruleset, you can also temporarily disable your firewall to test if it is interfering with your connections. Leaving your firewall disabled increases your security risk, so we recommend re-enabling it afterwards with a modified ruleset that will accept your connections. Review [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) for help with this subject. - -1. Create a temporary backup of your current iptables: - - ```command - sudo iptables-save > ~/iptables.txt - ``` - -1. Set the `INPUT`, `FORWARD` and `OUTPUT` packet policies as `ACCEPT`: - - ```command - sudo iptables -P INPUT ACCEPT - sudo iptables -P FORWARD ACCEPT - sudo iptables -P OUTPUT ACCEPT - ``` - -1. Flush the `nat` table that is consulted when a packet that creates a new connection is encountered: - - ```command - sudo iptables -t nat -F - ``` - -1. Flush the `mangle` table that is used for specialized packet alteration: - - ```command - sudo iptables -t mangle -F - ``` - -1. Flush all the chains in the table: - - ```command - sudo iptables -F - ``` - -1. Delete every non-built-in chain in the table: - - ```command - sudo iptables -X - ``` - -1. Repeat these steps with the `ip6tables` command to flush your IPv6 rules. Be sure to assign a different name to the IPv6 rules file. (e.g. `~/ip6tables.txt`). - -## Next Steps - -If you are able to restore basic networking, but you still can't access SSH or other services, refer to the [Troubleshooting SSH](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) or [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/) guides. - -If your connection issues were the result of maintenance performed by Linode, review the [Reboot Survival Guide](/docs/guides/reboot-survival-guide/) for methods to prepare a Compute Instance for any future maintenance. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/feature.png b/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/feature.png deleted file mode 100644 index fc97aa8270a..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/feature.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-details.png b/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-details.png deleted file mode 100644 index a1cbc0faaa1..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-details.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-home.png b/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-home.png deleted file mode 100644 index e011656d19e..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-home.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-listing-non-cmr.jpg b/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-listing-non-cmr.jpg deleted file mode 100644 index 535978599eb..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-listing-non-cmr.jpg and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-listing-non-cmr.png b/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-listing-non-cmr.png deleted file mode 100644 index aedf9a833f4..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/firewall-listing-non-cmr.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/index.md b/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/index.md deleted file mode 100644 index 6105a023062..00000000000 --- a/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/index.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: Troubleshooting Firewall Issues on Compute Instances -description: This guide presents troubleshooting strategies for Compute Instances that may be unresponsive due to issues caused by a firewall. -published: 2020-08-04 -modified: 2023-11-01 -keywords: ["Linode troubleshooting", "Cloud Firewall", "Firewall","troubleshoot"] -bundles: ['troubleshooting'] -image: feature.png -aliases: ['/troubleshooting/troubleshooting-firewalls/','/guides/troubleshooting-firewalls/'] ---- - -This guide presents troubleshooting strategies for Compute Instances that may be unresponsive due to issues caused by a firewall. This could be a [Cloud Firewall](/docs/products/networking/cloud-firewall/get-started/), which is applied on the network level or a software firewall, like UFW (Uncomplicated Firewall), that is configured on your Compute Instance's operating system. - -In many cases, you might suspect a firewall issue if some of your services are inaccessible, or in situations of limited access. A firewall issue may also be suspected if you have connectivity problems not long after implementing new firewall rules. - -While a firewall is often responsible for cases of limited access, these issues may also potentially be caused by a wide array of other issues such as limited network access, resource contention like throttled memory, or internal processes or services that are not configured to communicate over the internet. - -## The Linode Shell (Lish) - -[*Lish*](/docs/products/compute/compute-instances/guides/lish/) is a shell that provides access to your Compute Instance's serial console and is a helpful tool for diagnosing and troubleshooting connection problems. Lish does not establish a network connection to your instance, so you can use it when your networking is down or your Compute Instance's Secure Shell (SSH) port is inaccessible. If you find yourself locked out of SSH, you can use Lish to perform much of the troubleshooting for basic connection issues. - -To learn about Lish in more detail, and for instructions on how to connect to your Compute Instance via Lish, review the [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/) guide. A fast and simple way to access Lish is by [the your web browser option](/docs/products/compute/compute-instances/guides/lish/#through-cloud-manager-weblish). - -{{< note >}} -When using Lish, you can log in to your Compute Instance with the `root` user, even if `root` user login is disabled by your system's SSH configuration file. -{{< /note >}} - -## Is the Compute Instance Powered On? - -Ensure that your Compute Instance is powered on and running. - -1. Log into [Cloud Manager](https://cloud.linode.com/) and navigate to the Compute Instance listing page. - -1. Verify your Compute Instance's displayed status to determine if it's running or offline. If it your instance is offline, use the **more options** ellipsis to power it on. - -## Is there a Cloud Firewall Assigned to my Compute Instance? - -If you are using Cloud Firewalls, then it's important to verify which Cloud Firewall(s) your Compute Instance is assigned to and to check its Cloud Firewall rules. Likewise, if your Compute Instance is sitting behind a NodeBalancer, you may want to investigate whether or not that NodeBalancer is assigned to any Cloud Firewalls. Note that only inbound rules apply to NodeBalancers. - -1. Log into [Cloud Manager](https://cloud.linode.com) and select **Firewalls** from the menu. - -1. The Firewalls listing page displays a list of all the Cloud Firewalls currently active on your account. - -1. Find the Compute Instance or NodeBalancer you are troubleshooting under the **Services** column to determine which Cloud Firewall(s) is assigned to it. - -1. Next, check the **Status** column to confirm that the Cloud Firewall is **Enabled**. - - ![firewall-home](firewall-listing-non-cmr.jpg) - -1. If the Cloud Firewall is enabled, check to see which rules are currently active by clicking on the label of the Cloud Firewall. This takes you to your Cloud Firewall's **Rules** page. - -1. The **Rules** page displays a list of all of the Cloud Firewall rules that are filtering your service's network traffic. If you notice that the Cloud Firewall rules do not allow traffic for a specific service's port that you are troubleshooting, you may consider [updating your rule's](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/) to allow connections for that port. - - {{< note >}} - If the Cloud Firewall is assigned to more than one Compute Instance or NodeBalancer, modifying the Cloud Firewall rules affect all services assigned to the Cloud Firewall. - {{< /note >}} - - {{< note >}} - Cloud Firewall rules are applied on the network level and are not detectable internally on Compute Instances. For more information on setting up and using Cloud Firewall, see the guide [A Tutorial for Adding and Configuring Linode Cloud Firewalls](/docs/products/networking/cloud-firewall/get-started/). - {{< /note >}} - -## Checking Firewall Rules with UFW - -*Uncomplicated Firewall (UFW)* is an [iptables](/docs/guides/control-network-traffic-with-iptables/) front end that is designed for ease-of-use. See our [How to Configure a Firewall with UFW](/docs/guides/configure-firewall-with-ufw/) for a deeper dive into UFW. - -{{< note >}} -All steps in this section are performed on your Compute Instance. [Connect to your Compute Instance via SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) or using [Lish](/docs/products/compute/compute-instances/guides/lish/). -{{< /note >}} - -To see all active UFW rules, enter the following command: - -```command -sudo ufw status -``` - -Your output will be similar to the following: - -```output -Status: active - -To Action From --- ------ ---- -22 ALLOW Anywhere -80/tcp ALLOW Anywhere -443 ALLOW Anywhere -22 (v6) ALLOW Anywhere (v6) -80/tcp (v6) ALLOW Anywhere (v6) -443 (v6) ALLOW Anywhere (v6) -``` - -If the status is active, the rules listed are all in place and may be blocking one of your services. To remove any individual firewall rule, use the following syntax: - -```command -sudo ufw delete -``` - -For example, to delete the Allow rule for port 80 from the example output above, enter the following command: - -```command -sudo ufw delete allow 80 -``` - -## Checking Firewall Rules with FirewallD - -*firewalld* is the default firewall tool for CentOS and Fedora. While also a front end for iptables like UFW, firewalld has some unique features, like configuration sets and zones. - -{{< note >}} -All steps in this section are performed on your Compute Instance. [Connect to your Compute Instance via SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) or using [Lish](/docs/products/compute/compute-instances/guides/lish/). -{{< /note >}} - -To list all configurations for all zones, enter the following command: - -```command -sudo firewall-cmd --list-all-zones -``` - -If you find a rule that doesn't belong, you can safely remove it using the following syntax: - -```command -sudo firewall-cmd --zone=zonename --remove-service=servicename --permanent -``` - -For more information on understanding firewalld, see our [Introduction to FirewallD on CentOS](/docs/guides/introduction-to-firewalld-on-centos/) guide. - - -## Checking Firewall Rules with iptables - -*iptables* is the most common firewall used on Linux systems. If you're unsure of which firewall software you may be using, chances are that it's iptables in some form. - -{{< note >}} -All steps in this section are performed on your Compute Instance. [Connect to your Compute Instance via SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) or using [Lish](/docs/products/compute/compute-instances/guides/lish/). -{{< /note >}} - -To list all active firewall rules using iptables, enter the following commands for IPv4 and IPv6 respectfully: - -```command -sudo iptables -L -nv -sudo ip6tables -L -nv -``` - -Removing rules uses the same syntax to add rules, with the addition of the `-D` or `--delete` option. For example, use the following commands to delete a rule that drops connections to port 110, on the eth0 interface, towards the IPv4 address 198.51.100.0: - -```command -iptables --delete INPUT -j DROP -p tcp --destination-port 110 -i eth0 -d 198.51.100.0 -``` - -or - -```command -iptables -D INPUT -j DROP -p tcp --destination-port 110 -i eth0 -d 198.51.100.0 -``` - -For more information on reading and interpreting iptables rules see our guide on iptables, [A Tutorial for Controlling Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/#basic-iptables-rulesets-for-ipv4-and-ipv6) \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/939-troubleshooting2.png b/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/939-troubleshooting2.png deleted file mode 100644 index 86a9985edfb..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/939-troubleshooting2.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/941-troubleshooting3-1.png b/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/941-troubleshooting3-1.png deleted file mode 100644 index 906e4ef85bc..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/941-troubleshooting3-1.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/944-troubleshooting4-1.png b/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/944-troubleshooting4-1.png deleted file mode 100644 index d5a8ed2242d..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/944-troubleshooting4-1.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/952-troubleshooting1-1-small.png b/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/952-troubleshooting1-1-small.png deleted file mode 100644 index c8596ea13c1..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/952-troubleshooting1-1-small.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/953-troubleshooting1-1.png b/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/953-troubleshooting1-1.png deleted file mode 100644 index edac6fbdf3b..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/953-troubleshooting1-1.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/disk-storage-allocation.png b/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/disk-storage-allocation.png deleted file mode 100644 index 3cf549168fb..00000000000 Binary files a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/disk-storage-allocation.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/index.md b/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/index.md deleted file mode 100644 index 01c20ecc4e9..00000000000 --- a/docs/products/compute/compute-instances/guides/troubleshooting-general-issues/index.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -title: Troubleshooting General Issues on Compute Instances -description: 'This guide provides you with a reference for common troubleshooting scenarios you may encounter when managing your Linode. Multiple sections are included.' -published: 2012-04-05 -modified: 2023-03-14 -keywords: ['troubleshooting','troubleshoot'] -tags: ["linode platform"] -bundles: ['troubleshooting'] -aliases: ['/quick-start-troubleshooting/','/troubleshooting/troubleshooting/'] ---- - -This guide provides common troubleshooting scenarios you may encounter when managing your Compute Instance. Each troubleshooting section provides ways to further diagnose your issue and the corresponding steps, when applicable, to resolve the issue. We recommend using this guide in the following way: - -- Browse the guide's headings and select the issue that best describes your problem. - -- Follow the troubleshooting steps in the order they are presented. - -- Once you've confirmed a specific problem, try fixing it with the suggested solutions. - -If the troubleshooting steps in this guide don't apply to your issue, review these additional troubleshooting guides that cover other topics: - -- [Troubleshooting Connection Issues](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/) -- [Troubleshooting SSH Issues](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) -- [Troubleshooting Memory Issues](/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/) -- [Troubleshooting Firewall Issues](/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/) -- [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/) - -{{< note title="Additional resources for help" type=secondary isCollapsible=true >}} -This guide explains how to use different troubleshooting commands on your Compute Instance. These commands can produce diagnostic information and logs that may expose the root of your connection issues. For some specific examples of diagnostic information, this guide also explains the corresponding cause of the issue and presents solutions for it. - -If the information and logs you gather do not match a solution outlined here, consider searching the [Linode Community Site](https://www.linode.com/community/questions/) for posts that match your system's symptoms. Or, post a new question in the Community Site and include your commands' output. - -Linode is not responsible for the configuration or installation of software on your Compute Instance. Refer to Linode's [Scope of Support](/docs/products/platform/get-started/guides/support/#scope-of-support) for a description of the issues with which Linode Support can help. -{{< /note >}} - -## Compute Instance is Unresponsive - -If your Compute Instance is unresponsive, either at the Lish console or to basic network requests, read through the [Troubleshooting Basic Connection Issues](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/) guide. - -## Compute Instance is Slow - -{{< note >}} -You should follow all steps in the [Troubleshooting Basic Connection Issues](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/) guide before using the checklist in this section. -{{< /note >}} - -### Is the Disk Full? - -If your Compute Instance's disk is full, this can cause performance degradation and instability for your applications. Use the following command to determine the free space on your instance's filesystem: - -```command -df -h -``` - -The output will resemble the following example: - -```output -Filesystem Size Used Avail Use% Mounted on -/dev/root 189G 166G 14G 93% / -devtmpfs 3.9G 0 3.9G 0% /dev -tmpfs 3.9G 16K 3.9G 1% /dev/shm -tmpfs 3.9G 399M 3.6G 10% /run -tmpfs 5.0M 0 5.0M 0% /run/lock -tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup -tmpfs 799M 0 799M 0% /run/user/1000 -``` - -In the example output, you can see that the root filesystem is 93% full. Issue the following command to list all files over 200MB on your root filesystem: - -```command -sudo find / -xdev -type f -size +200M -exec ls -lah {} \; -``` - -You can adjust the `+200M` value in this command, as needed, to search for files above a specific size. - -#### Deleted Files - -If a service deletes a file that it is no longer needed, the file remains on your disk until the next time the service has been rebooted. The following example demonstrates how deleted files belonging to Apache can continue to take up space after they have been deleted. - -Use the following command to check for deleted files that are currently open: - -```command -sudo lsof | grep deleted | numfmt --field=8 --to=iec -``` - -This command will check the output of `lsof` for files marked as deleted, and will convert the file sizes so that they're more easily readable. In this example Apache is holding on to several old files: - -```output -apache2 32341 www-data 13u REG 8,0 0 24K /tmp/.ZendSem.OmCTIC (deleted) -apache2 32341 www-data 14w REG 0,19 0 243M /run/lock/apache2/proxy.13748 (deleted) -apache2 32341 www-data 15w REG 0,19 0 243M /run/lock/apache2/mpm-accept.13748 (deleted) -apache2 32342 www-data 12w REG 0,19 0 158M /run/lock/apache2/ssl-cache.13747 (deleted) -apache2 32342 www-data 13u REG 8,0 0 24K /tmp/.ZendSem.OmCTIC (deleted) -apache2 32342 www-data 14w REG 0,19 0 243M /run/lock/apache2/proxy.13748 (deleted) -apache2 32342 www-data 15wW REG 0,19 0 243M /run/lock/apache2/mpm-accept.13748 (deleted) -apache2 32343 www-data 12w REG 0,19 0 158M /run/lock/apache2/ssl-cache.13747 (deleted) -``` - -To free up this space, you can simply restart the Apache service on your Compute Instance. This command restarts the Apache service using [systemd](/docs/guides/what-is-systemd/) on Ubuntu 18.04: - -```command -sudo systemd restart apache2 -``` - -### Is the Compute Instance Out of Memory? - -The applications on your Compute Instance require a certain amount of physical memory to function correctly. If all of the available physical memory is consumed, your system could slow down, display out of memory errors, or become unresponsive. Here's how to tell if your instance is out of memory: - -1. Log in to [Cloud Manager](https://cloud.linode.com). -1. Click the **Linodes** link in the sidebar to view a list of all your Compute Instance. -1. Select a Compute Instance to view its dashboard. -1. Click on the **Launch Console** link in the upper-right hand corner to launch the LISH Console. The LISH console window appears. If memory errors are displayed in the LISH console, stop some running services to free up memory or [upgrade to a larger plan](/docs/products/compute/compute-instances/guides/resize/). -1. Read through the [Troubleshooting Memory and Networking Issues](/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/) guide for troubleshooting commands which display your memory use. -1. If an application is consuming all of your available memory, you have three options. You can kill the application, change the application's settings to reduce its memory footprint, or [upgrade your instance](https://www.linode.com/pricing) to a larger plan. - -If your Compute Instance is not out of memory, continue to the next section. - -### Is there a Disk I/O Bottleneck? - -Disk input/output (I/O) bottlenecks can occur when an application or service is reading or writing an excessive amount of information to disk and the processor has to wait to process the information. High I/O wait can significantly slow down your server. To determine if your server currently has an I/O bottleneck, follow the steps below: - -1. [Log in to your Compute Instance via SSH](/docs/products/compute/compute-instances/get-started/#connect-to-the-instance). -1. Enter `top` to access the `top` monitoring utility. The screen shown below appears. - - ![Check for Disk I/O bottleneck.](939-troubleshooting2.png) - -1. Examine the I/O wait percentage, as shown above. If the number is zero, your server does not currently have a bottleneck. -1. If your I/O wait percentage is above zero, verify that your server has enough [free memory available](/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/). In many cases, high I/O is an indication that your server has started "swapping," or using disk space as memory. -1. If your server has free memory available and is not using swap space, use `iotop` or [vmstat](/docs/guides/use-vmstat-to-monitor-system-performance/) to find the application responsible for the excessive I/O. Databases are often a source of excessive I/O. You may need to stop and/or reconfigure the application. - - {{< note >}} - You must run `iotop` as `root` or with `sudo`. - {{< /note >}} - -1. If you cannot determine the source of the IO bottleneck, contact [Linode support](/docs/products/platform/get-started/guides/support/) for assistance. - -Since `top` only reports what is currently happening, and most I/O issues are temporary, it helps to have a monitoring utility set up so you can see a graph of I/O trends and spot potential issues *before* they become major problems. See the guides in [Server Monitoring](/docs/uptime/monitoring/) for instructions on setting up a server monitoring utility. - -## Website is Not Loading - -If your website is unresponsive or not loading correctly, read through the [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/) guide. - -{{< note >}} -You should follow all steps in the [Compute Instance is Slow](#compute-instance-is-slow) section before following the [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/) guide. -{{< /note >}} - -## Can't Connect via SSH or FTP - -If you can't connect to your Compute Instance over SSH, read through the [Troubleshooting SSH](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) guide. - -{{< note >}} -You should follow all steps in the [Compute Instance is Slow](#compute-instance-is-slow) section before following the [Troubleshooting SSH](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) guide. -{{< /note >}} - -### Are You Using Telnet or FTP? - -Telnet and FTP are disabled on your Compute Instance by default, and we strongly recommend that you do not use those protocols. Instead, please use Secure Shell (SSH) and SSH File Transfer Protocol (SFTP) -- the secure versions of the Telnet and FTP protocols. All Compute Instances come with an SSH server enabled, and you can connect to port 22 with SSH and SFTP clients. For more information, see [Connecting to Your Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance). - -## Forgot My Username or Password - -### System User/Root Password - -If you've forgotten the password for the root user on your Compute Instance, you can follow the steps for [resetting your root password](/docs/products/compute/compute-instances/guides/reset-root-password/) from Cloud Manager. - -Once you have access to your Compute Instance as the root user, you can reset the password for any additional system users with the `passwd` command. The example resets the password for the `username` user: - -```command -passwd username -``` - -### Cloud Manager User - -- If you forget your Cloud Manager username, you can confirm it by supplying your email address on the [Recover Username](https://login.linode.com/forgot/username) page. - -- Assuming you know your Cloud Manager username, but you've forgotten the password, you can retrieve it on the [Forgot Password](https://login.linode.com/forgot/password) page. - -If you've followed these steps, but you're still having trouble accessing your account, please [contact Support](https://www.linode.com/support/). - -## Cloud Manager is Displaying "Incorrect" Information - -Use the following checklist if Cloud Manager is displaying "incorrect" information. - -### Did You Recently Change your Account? - -If you recently created a new account, resized an existing Compute Instance, or added extra bandwidth, the bandwidth displayed in Cloud Manager will be prorated for the amount of time left in the current billing cycle. For example, if you create an account on the 15th day of the month, the Manager will indicate that your account has been allocated half of the plan's bandwidth for the current month. This information is an accurate representation of the bandwidth available for the rest of the billing period. When then next billing period starts, the Manager will indicate that all of the plan's bandwidth is available. View the [Billing and Payments](/docs/products/platform/billing/) guide for more information. - -### Did You Add Additional Storage? - -If you recently upgraded your plan, your Compute Instance won't be able to take advantage of the additional space until you resize the disk. You can use Cloud Manager to verify if there's additional storage space available for disks: - -1. Log in to [Cloud Manager](https://cloud.linode.com). -1. Click the **Linodes** link in the sidebar to view a list of your Compute Instances. -1. Select a Compute Instance and the **Storage** tab. -1. Compare the total available disk space with the **Size** Column in the **Disks** table. If you have free storage space, you can allocate that space to your existing disks, or create new disks as needed. - - ![Disk storage allocation](disk-storage-allocation.png) - - Follow our steps for [resizing a disk](/docs/products/compute/compute-instances/guides/disks-and-storage/#resize-a-disk) to take advantage of the extra space. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/index.md b/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/index.md deleted file mode 100644 index 2f0134b7b25..00000000000 --- a/docs/products/compute/compute-instances/guides/troubleshooting-memory-issues/index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Troubleshooting Memory Issues on Compute Instances -description: 'Many common issues with Compute Instances are caused by excessive memory consumption or errors. This guide provides suggestions for resolving this.' -published: 2009-08-05 -modified: 2023-03-14 -keywords: ["Linode troubleshooting", "Linux configuration","troubleshoot"] -tags: ["networking", "mysql", "apache"] -bundles: ['troubleshooting'] -aliases: ['/troubleshooting/troubleshooting-memory-and-networking-issues/','/troubleshooting/memory-networking/','/guides/troubleshooting-memory-and-networking-issues/'] ---- - -Many common issues with Compute Instances are caused by excessive memory consumption. When your Compute Instance is running low on physical memory, it may start to "swap thrash." This means it's attempting to use your swap partition heavily instead of real RAM. We recommend you limit your swap partition size to 256 MB; heavy use of swap in a virtualized environment will cause major performance problems. - -## Determining Free Memory and Swap Activity - -You can use the following command to display memory use on your Compute Instance: - -```command -free -m -``` - -You can use the following snippet to see a list of your running processes sorted by memory use: - -```command -ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less -``` - -To see IO activity on your Compute Instance, you may use the following command (you may need to install the `sysstat` package under Debian or Ubuntu first): - -```command -iostat -d -x 2 5 -``` - -This will give an extended device utilization report five times at two second intervals. If your Compute Instance is running out of memory, Apache, MySQL, and SpamAssassin are the usual suspects. - -## MySQL Low-Memory Settings - -In your MySQL configuration file (typically found in `/etc/mysql/my.cnf`), change your entries for the various settings shown below to match the recommended values: - -```file {title="/etc/mysql/my.cnf"} -key_buffer = 16K -max_allowed_packet = 1M -thread_stack = 64K -table_cache = 4 -sort_buffer = 64K -net_buffer_length = 2K -``` - -If you don't use InnoDB tables, you should disable InnoDB support by adding the following line: - -```command -skip-innodb -``` - -{{< note type="warning" >}} -The settings in this section are designed to help you temporarily test and troubleshoot MySQL. We recommend that you do not permanently use these settings. -{{< /note >}} - -## Apache 2 Low-Memory Settings - -Determine the type of MPM in use by your Apache install by issuing the following command. This will tell you which section to edit in your Apache configuration file. - -**Debian-based systems** : - -```command -apache2 -V | grep 'MPM' -``` - -**Fedora/CentOS systems** : - -```command -httpd -V | grep 'MPM' -``` - -In your Apache 2 configuration file (typically found at `/etc/apache2/apache2.conf` in Debian and Ubuntu systems, and `/etc/httpd/httpd.conf` in CentOS and other similar systems), change your entries for the various settings shown below to match the recommended values. - -```file {title="/etc/apache2/apache2.conf"} -KeepAlive Off ---- - -StartServers 1 -MinSpareServers 3 -MaxSpareServers 6 -ServerLimit 24 -MaxClients 24 -MaxRequestsPerChild 3000 -``` - -{{< note type="warning" >}} -The settings in this section are designed to help you temporarily test and troubleshoot Apache. We recommend that you do not permanently use these settings. -{{< /note >}} - -## Reducing SpamAssassin Memory Consumption - -If you're filtering mail through SpamAssassin in standalone mode and running into load issues, you'll need to investigate switching to something to keep the program persistent in memory as a daemon. We suggest looking at [amavisd-new](http://www.ijs.si/software/amavisd/). \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-services/index.md b/docs/products/compute/compute-instances/guides/troubleshooting-services/index.md deleted file mode 100644 index 831cfcfc6c5..00000000000 --- a/docs/products/compute/compute-instances/guides/troubleshooting-services/index.md +++ /dev/null @@ -1,222 +0,0 @@ ---- -title: "Troubleshooting Web Servers, Databases, and Other Services" -description: "Troubleshooting steps for when you can't connect to a service that your Compute Instance runs." -published: 2019-02-01 -modified: 2023-03-14 -keywords: ['linux','reboot','lish','troubleshoot','website','webserver'] -tags: ["web server", "database", "networking"] -bundles: ['troubleshooting'] -aliases: ['/troubleshooting/troubleshooting-web-servers-databases-other-services/','/guides/troubleshooting-web-servers-databases-other-services/'] ---- - -This guide presents troubleshooting strategies for when you can't connect to your web server, database, or other services running on your Compute Instance. This guide assumes that you have access to SSH. If you can't log in with SSH, review [Troubleshooting SSH](/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/) and then return to this guide. - -{{< note title="Additional resources for help" type=secondary isCollapsible=true >}} -This guide explains how to use different troubleshooting commands on your Compute Instance. These commands can produce diagnostic information and logs that may expose the root of your connection issues. For some specific examples of diagnostic information, this guide also explains the corresponding cause of the issue and presents solutions for it. - -If the information and logs you gather do not match a solution outlined here, consider searching the [Community Site](https://www.linode.com/community/questions/) for posts that match your system's symptoms. Or, post a new question in the Community Site and include your commands' output. - -Linode is not responsible for the configuration or installation of software on your Compute Instance. Refer to Linode's [Scope of Support](/docs/products/platform/get-started/guides/support/#scope-of-support) for a description of which issues Linode Support can help with. -{{< /note >}} - -## General Troubleshooting Strategies - -This section highlights troubleshooting strategies that apply to every service. - -### Check if the Service is Running - -The service may not be running. Check the status of the service: - -| **Distribution** | **Command** | -| -- | -- | -| systemd systems (Arch, Ubuntu 16.04+, Debian 8+, CentOS 7+, etc) | `sudo systemctl status -l` | -| sysvinit systems (CentOS 6, Ubuntu 14.04, Debian 7, etc) | `sudo service status` | - -### Restart the Service - -If the service isn't running, try restarting it: - -| **Distribution** | **Command** | -| -- | -- | -| systemd systems | `sudo systemctl restart ` | -| sysVinit systems | `sudo service restart` | - -### Enable the Service - -If your system was recently rebooted, and the service didn't start automatically at boot, then it may not be enabled. Enable the service to prevent this from happening in the future: - -| **Distribution** | **Command** | -| -- | -- | -| systemd systems | `sudo systemctl enable ` | -| sysVinit systems | `sudo chkconfig on` | - -### Check your Service's Bound IP Address and Ports - -Your service may be listening on an unexpected port, or it may not be bound to your public IP address (or whatever address is desirable). To view which address and ports a service is bound on, run the `ss` command with these options: - -```command -sudo ss -atpu -``` - -Review the application's documentation for help determining the address and port your service should bind to. - -{{< note >}} -One notable example is if a service is only bound to a public IPv4 address and not to an IPv6 address. If a user connects to your Compute Instance over IPv6, they will not be able to access the service. -{{< /note >}} - -### Analyze Service Logs - -If your service doesn't start normally, review your system logs for the service. Your system logs may be in the following locations: - -| **Distribution** | **System Logs** | -| -- | -- | -| systemd systems | [Run `journalctl`](/docs/guides/how-to-use-journalctl/) | -| Ubuntu 14.04, Debian 7 | `/var/log/syslog` | -| CentOS 6 | `/var/log/messages` | - -Your service's log location will vary by the application, but they are often stored in `/var/log`. [The `less` command](/docs/guides/how-to-use-less/) is a useful tool for browsing through your logs. - -Try pasting your log messages into a search engine or searching for your messages in the [Community Site](https://www.linode.com/community/questions/) to see if anyone else has run into similar issues. If you don't find any results, you can try asking about your issues in a new post on the Community Site. If it becomes difficult to find a solution, you may need to [rebuild your Compute Instance](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rebuilding). - -### Review Firewall Rules - -If your service is running but your connections still fail, your firewall (which is likely implemented by the `iptables` software) may be blocking the connections. To review your current firewall ruleset, run: - -```command -sudo iptables -L # displays IPv4 rules -sudo ip6tables -L # displays IPv6 rules -``` - -{{< note >}} -Your deployment may be running FirewallD or UFW, which are front ends used to more easily manage your iptables rules. Run these commands to find out if you are running either package: - -```command -sudo ufw status -sudo firewall-cmd --state -``` - -Review [How to Configure a Firewall with UFW](/docs/guides/configure-firewall-with-ufw/#ufw-status) and [Introduction to FirewallD on CentOS](/docs/guides/introduction-to-firewalld-on-centos/#firewall-zones) to learn how to manage and inspect your firewall rules with those packages. -{{< /note >}} - -Firewall rulesets can vary widely. Review the [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) guide to analyze your rules and determine if they are blocking connections. For example, a rule which allows incoming HTTP traffic could look like this: - -```output --A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT -``` - -### Disable Firewall Rules - -In addition to analyzing your firewall ruleset, you can also temporarily disable your firewall to test if it is interfering with your connections. Leaving your firewall disabled increases your security risk, so we recommend re-enabling it afterward with a modified ruleset that will accept your connections. Review [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) for help with this subject. - -1. Create a temporary backup of your current iptables: - - ```command - sudo iptables-save > ~/iptables.txt - ``` - -1. Set the `INPUT`, `FORWARD` and `OUTPUT` packet policies as `ACCEPT`: - - ```command - sudo iptables -P INPUT ACCEPT - sudo iptables -P FORWARD ACCEPT - sudo iptables -P OUTPUT ACCEPT - ``` - -1. Flush the `nat` table that is consulted when a packet that creates a new connection is encountered: - - ```command - sudo iptables -t nat -F - ``` - -1. Flush the `mangle` table that is used for specialized packet alteration: - - ```command - sudo iptables -t mangle -F - ``` - -1. Flush all the chains in the table: - - ```command - sudo iptables -F - ``` - -1. Delete every non-built-in chain in the table: - - ```command - sudo iptables -X - ``` - -1. Repeat these steps with the `ip6tables` command to flush your IPv6 rules. Be sure to assign a different name to the IPv6 rules file (e.g. `~/ip6tables.txt`). - -## Troubleshoot Web Servers - -If your web server is not running or if connections are timing out, review the [general troubleshooting strategies](#general-troubleshooting-strategies). - -{{< note >}} -Troubleshooting specific to Apache is outlined in [Troubleshooting Common Apache Issues](/docs/guides/troubleshooting-common-apache-issues/#check-virtual-host-definitions). -{{< /note >}} - -If your web server is responding with an error code, your troubleshooting will vary by what code is returned. For more detailed information about each request that's failing, read your web server's logs. Here are some commands that can help you find your web server's logs: - -- **Apache:** - - ```command - grep ErrorLog -r /etc/apache2 # On Ubuntu, Debian - grep ErrorLog -r /etc/httpd # On CentOS, Fedora, RHEL - ``` - -- **NGINX:** - - ```command - grep error_log -r /etc/nginx - ``` - -### Frequent Error Codes - -- **HTTP 401 Unauthorized, HTTP 403 Forbidden** - - The requesting user did not have sufficient permission or access to the requested URL. Review your web server authorization and access control configuration: - - - [Apache - Access Control](https://httpd.apache.org/docs/2.4/howto/access.html) - - - [Apache - Authentication and Authorization](https://httpd.apache.org/docs/2.4/howto/auth.html) - - - [NGINX - Restricting Access with HTTP Basic Authentication](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/) - -- **HTTP 404 Not Found** - - The URL that a user requested could not be found by the web server. Review your web server configuration and make sure your website files are stored in the right location on your filesystem: - - - [Apache - Mapping URLs to Filesystem Locations](https://httpd.apache.org/docs/2.4/urlmapping.html) - - - [NGINX - How nginx processes a request](http://nginx.org/en/docs/http/request_processing.html) - -- **HTTP 500, 502, 503, 504** - - The web server requested a resource from a process it depends on, but the process did not respond as expected. For example, if a database query needs to be performed for a web request, but the database isn't running, then a 50X code will be returned. To troubleshoot these issues, investigate the service that the web server depends on. - -## Troubleshoot Databases - -### Is your Disk Full? - -One common reason that a database may not start is if your disk is full. To check how much disk space you are using, run: - -```command -df -h -``` - -{{< note >}} -This reported disk usage is not the same as the reported storage usage in Cloud Manager. The storage usage in Cloud Manager refers to how much of the disk space you pay for is allocated to your Compute Instance's disks. The output of `df -h` shows how full those disks are. -{{< /note >}} - -You have several options for resolving disk space issues: - -- Free up space on your disk by locating and removing files you don't need, using a tool like [ncdu](https://dev.yorhel.nl/ncdu). - -- If you have any unallocated space on your Compute Instance (storage that you pay for already but which isn't assigned to your disk), [resize your disk](/docs/products/compute/compute-instances/guides/disks-and-storage/) to take advantage of the space. - -- [Upgrade your Compute Instance](/docs/products/compute/compute-instances/guides/resize/) to a higher-tier resource plan and then resize your disk to use the newly available space. If your Compute Instance has a pending free upgrade for your storage space, you can choose to take this free upgrade to solve the issue. - -### Database Performance Troubleshooting - -If your database is running but returning slowly, research how to optimize the database software for the resources your Compute Instance has. If you run MySQL or MariaDB, read [How to Optimize MySQL Performance Using MySQLTuner](/docs/guides/how-to-optimize-mysql-performance-using-mysqltuner/). \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/index.md b/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/index.md deleted file mode 100644 index ab50688fd4b..00000000000 --- a/docs/products/compute/compute-instances/guides/troubleshooting-ssh-issues/index.md +++ /dev/null @@ -1,295 +0,0 @@ ---- -title: "Troubleshooting SSH on Compute Instances" -description: "Troubleshooting steps for when you can't connect to your Compute Instance via SSH." -published: 2019-02-01 -modified: 2023-03-14 -keywords: ['linux','reboot','lish','ssh','troubleshoot'] -tags: ["ssh"] -bundles: ['troubleshooting'] -aliases: ['/troubleshooting/troubleshooting-ssh/','/guides/troubleshooting-ssh/'] ---- - -This guide presents troubleshooting strategies for when you can't connect to your Compute Instance via SSH. If you currently cannot [ping](/docs/guides/linux-system-administration-basics/#the-ping-command) your Compute Instance, then your server also likely has more basic connection issues. If this is the case, you should instead follow the [Troubleshooting Basic Connection Issues](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/) guide. If you restore basic networking to your Compute Instance but still can't access SSH, return to this guide. - -If you can access SSH but not other services, refer to the [Troubleshooting Web Servers, Databases, and Other Services](/docs/products/compute/compute-instances/guides/troubleshooting-services/) guide. - -{{< note type=secondary title="Additional resources for help" isCollapsible=true >}} -This guide explains how to use different troubleshooting commands on your Compute Instance. These commands can produce diagnostic information and logs that may expose the root of your connection issues. For some specific examples of diagnostic information, this guide also explains the corresponding cause of the issue and presents solutions for it. - -If the information and logs you gather do not match a solution outlined here, consider searching the [Linode Community Site](https://www.linode.com/community/questions/) for posts that match your system's symptoms. Or, post a new question in the Community Site and include your commands' output. - -Linode is not responsible for the configuration or installation of software on your Compute Instance. Refer to Linode's [Scope of Support](/docs/products/platform/get-started/guides/support/#scope-of-support) for a description of which issues Linode Support can help with. -{{< /note >}} - -## Before You Begin - -Before troubleshooting your SSH service, familiarize yourself with the Linode Shell. - -### The Linode Shell (Lish) - -[*Lish*](/docs/products/compute/compute-instances/guides/lish/) is a shell that provides access to your Compute Instance's serial console. Lish does not establish a network connection to your Compute Instance, so you can use it when your networking is down or SSH is inaccessible. While troubleshooting SSH, all commands you enter on your system will be performed from the Lish console. - -To learn about Lish in more detail, and for instructions on how to connect to your Compute Instance via Lish, review the [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/) guide. In particular, [using your web browser](/docs/products/compute/compute-instances/guides/lish/#through-cloud-manager-weblish) is a fast and simple way to access Lish. - -### Forgotten your Password? - -If you have forgotten your Linux user's password, you will not be able to log in with Lish. You can reset the root password for your Compute Instance with [these instructions](/docs/products/compute/compute-instances/guides/reset-root-password/). If you are logged in as root, you can change the password of another user with the `passwd` command: - -```command -passwd -``` - -If you reset your password and can log in with Lish, try logging in with SSH, as that may have been the cause of your connection problems. - -## Troubleshoot Unresponsive SSH Connections - -If your SSH connection attempts are timing out or are being immediately rejected, then your SSH daemon may not be running, or your firewall may be blocking SSH connections. This section will help troubleshoot these issues. - -If your connections are *not* timing out or being rejected, or if you are able to resolve these issues but you still can't access SSH because of rejected login attempts, then continue to the [Troubleshoot Rejected SSH Logins](#troubleshoot-rejected-ssh-logins) section. - -### Is SSH Running? - -1. To check on the status of your SSH daemon, run: - - | Distribution | Command | - | -- | -- | - | systemd systems (Arch, Ubuntu 16.04+, Debian 8+, CentOS 7+, etc) | `sudo systemctl status sshd -l` | - | CentOS 6 | `sudo service sshd status` | - | Ubuntu 14.04, Debian 7 | `sudo service ssh status` | - -1. If the command reports the service is running, review the [Is SSH Running on a Non-Standard Port?](#is-ssh-running-on-a-non-standard-port) section. - -1. If the command reports the service is not running, then try restarting it: - - | Distribution | Command | - | -- | -- | - | systemd systems | `sudo systemctl restart sshd` | - | CentOS 6 | `sudo service sshd restart` | - | Ubuntu 14.04, Debian 7 | `sudo service ssh restart` | - -1. Check the status of the service again. If it's still not running, view the logs for the service: - - | Distribution | Command | - | -- | -- | - | systemd systems | `sudo journalctl -u sshd -u ssh` | - | CentOS 6 | `less /var/log/secure` | - | Ubuntu 14.04, Debian 7 | `less /var/log/auth.log` | - - {{< note >}} - Review the [journalctl](/docs/guides/how-to-use-journalctl/) and [less](/docs/guides/how-to-use-less/) guides for help with navigating your logs when using those commands. - {{< /note >}} - -1. Review the [Is Another Service Bound on the Same Port?](#is-another-service-bound-on-the-same-port) section. Then: - - - If you can start the SSH service successfully, but your connections still time out or are rejected, then [review your firewall rules](#review-firewall-rules). - - - If you can't get the service to start, try pasting your logs into a search engine or searching for your logs in the [Linode Community Site](https://www.linode.com/community/questions/) to see if anyone else has run into similar issues. If you don't find any results, you can try asking about your issues in a new post on the Linode Community Site. - -### Is SSH Running on a Non-Standard Port? - -Run `netstat` on your Compute Instance to check which port is used by SSH: - -```command -sudo netstat -plntu | grep ssh -``` - -```output -tcp 0 0 0.0.0.0:41 0.0.0.0:* LISTEN 4433/sshd -tcp6 0 0 :::41 :::* LISTEN 4433/sshd -``` - -This example output shows that SSH is running on port 41. You can connect to SSH by manually specifying this port: - -```command -ssh username@192.0.2.4 -p 41 -``` - -Alternatively, you can [bind SSH](#bind-ssh-to-a-port-number) on the standard port (22). - -### Is Another Service Bound on the Same Port? - -Check your SSH logs for a message that looks like: - -```output -Jan 23 10:29:52 localhost sshd[4370]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use. -``` - -This error indicates that another service on your system is already using the same port that SSH binds to, and so SSH can't start. To resolve this issue, choose one of the following solutions. - -- **Bind SSH to a different port** - - Follow instructions for [setting SSH's port number](#bind-ssh-to-a-port-number), and specify a different number than the one that is already in-use. - -- **Stop the other service** - - 1. Use the `netstat` command to discover which other process is using the same port: - - ```command - sudo netstat -plntu | grep :22 - ``` - - ```output - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4433/some-other-service - tcp6 0 0 :::22 :::* LISTEN 4433/some-other-service - ``` - - 1. Stop and disable that other service: - - ```command - sudo systemctl stop some-other-service - sudo systemctl disable some-other-service - ``` - - Or, [kill](/docs/guides/use-killall-and-kill-to-stop-processes-on-linux/) the process using the process ID listed next to the process name in the output from `netstat`. - -- **Assign a different port to the other service** - - 1. Use the `netstat` command to find out what service is bound to the same port. - - 1. Then, change the configuration for that service to use a different port. - - 1. Restart SSH. - -### Bind SSH to a Port Number - -1. Open `/etc/ssh/sshd_config` in your editor. Search for a line in this file that declares the port for SSH: - - ```file {title="/etc/ssh/sshd_config"} - #Port 22 - ``` - -1. Uncomment this line and provide a different number. - -1. Save the file and restart the SSH service. - -### Review Firewall Rules - -If your service is running but your connections still fail, your firewall (which is likely implemented by the `iptables` software) may be blocking the connections. To review your current firewall ruleset, run: - -```command -sudo iptables-save # displays IPv4 rules -sudo ip6tables-save # displays IPv6 rules -``` - -{{< note >}} -Your deployment may be running FirewallD or UFW, which are front ends used to more easily manage your iptables rules. Run these commands to find out if you are running either package: - -```command -sudo ufw status -sudo firewall-cmd --state -``` - -Review [How to Configure a Firewall with UFW](/docs/guides/configure-firewall-with-ufw/#ufw-status) and [Introduction to FirewallD on CentOS](/docs/guides/introduction-to-firewalld-on-centos/#firewall-zones) to learn how to manage and inspect your firewall rules with those packages. -{{< /note >}} - -Firewall rulesets can vary widely. Review the [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) guide to analyze your rules and determine if they are blocking connections. A rule which allows incoming SSH traffic could look like this: - -```output --A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT -``` - -In some cases, [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page), a tool used for automating the creation of firewall rules to block IP addresses, may be responsible for creating rules that result in a lost connection. If you see firewall chains in place prefixed with `f2b` or `fail2ban`, see our [fail2ban guide](/docs/guides/using-fail2ban-to-secure-your-server-a-tutorial/#lockout-recovery) for troubleshooting this service. - -### Disable Firewall Rules - -In addition to analyzing your firewall ruleset, you can also temporarily disable your firewall to test if it is interfering with your connections. Leaving your firewall disabled increases your security risk, so we recommend re-enabling it afterward with a modified ruleset that will accept your connections. Review [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) for help with this subject. - -1. Create a temporary backup of your current iptables rules: - - ```command - sudo iptables-save > ~/iptables.txt - ``` - -1. Set the `INPUT`, `FORWARD` and `OUTPUT` packet policies as `ACCEPT`: - - ```command - sudo iptables -P INPUT ACCEPT - sudo iptables -P FORWARD ACCEPT - sudo iptables -P OUTPUT ACCEPT - ``` - -1. Flush the `nat` table that is consulted when a packet that creates a new connection is encountered: - - ```command - sudo iptables -t nat -F - ``` - -1. Flush the `mangle` table that is used for specialized packet alteration: - - ```command - sudo iptables -t mangle -F - ``` - -1. Flush all the chains in the table: - - ```command - sudo iptables -F - ``` - -1. Delete every non-built-in chain in the table: - - ```command - sudo iptables -X - ``` - -1. Repeat these steps with the `ip6tables` command to flush your IPv6 rules. Be sure to assign a different name to the IPv6 rules file (e.g. `~/ip6tables.txt`). - -## Troubleshoot Rejected SSH Logins - -If SSH is listening and accepting connections but is rejecting login attempts, review these instructions: - -### Is Root Login Permitted? - -SSH can be configured to disable logins for the root user. To check your SSH configuration, run: - -```command -grep PermitRootLogin /etc/ssh/sshd_config -``` - -If the value of the `PermitRootLogin` is `no`, then try logging in with another user. Or, set the value in `/etc/ssh/sshd_config` to `yes`, restart SSH, and try logging in as root again. - -{{< note >}} -This option can also be set with the value `without-password`. If this value is used, root logins are accepted with public key authentication. -{{< /note >}} - -### Are Password Logins Accepted? - -SSH can be configured to not accept passwords and instead accept public key authentication. To check your SSH configuration, run: - -```command -grep PasswordAuthentication /etc/ssh/sshd_config -``` - -If the value of the `PasswordAuthentication` is `no`, [create a key-pair](/docs/products/compute/compute-instances/guides/set-up-and-secure/#upload-ssh-key). Or, set the value in `/etc/ssh/sshd_config` to `yes`, restart SSH, and try logging in with your password again. - -### Is your Public Key Stored on the Server? - -If you prefer to use public key authentication, but your login attempts with your key are not working, double-check that the server has your public key. To check which keys are recognized for your user, run: - -```command -cat ~/.ssh/authorized_keys -``` - -If your public key is not listed in this file, add it to the file on a new line. - -On some systems, your authorized keys file may be listed in a different location. Run this command to show where your file is located: - -```command -grep AuthorizedKeysFile /etc/ssh/sshd_config -``` - -### Collect Login Attempt Logs - -If the previous troubleshooting steps do not resolve your issues, collect more information about how your logins are failing: - -- View your login attempts in the log files described in step 4 of [Is SSH Running?](#is-ssh-running). In particular, you can search these logs for your local IP address, and the results will show what error messages were recorded for your logins. To find out what your local IP is, visit a website like https://www.whatismyip.com/. - -- Use your SSH client in verbose mode, which will show details for each part of the connection process. Verbose mode is invoked by passing the `-v` option. Passing more than one `v` increases the verbosity. You can use up to three `v`s: - - ```command - ssh -v username@192.0.2.4 - ssh -vv username@192.0.2.4 - ssh -vvv username@192.0.2.4 - ``` - -Try pasting your logs into a search engine or searching for your logs in the [Linode Community Site](https://www.linode.com/community/questions/) to see if anyone else has run into similar issues. If you don't find any results, you can try asking about your issues in a new post on the Linode Community Site. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/guides/upcoming-pricing-changes-april-2023/index.md b/docs/products/compute/compute-instances/guides/upcoming-pricing-changes-april-2023/index.md deleted file mode 100644 index 60b44a9c038..00000000000 --- a/docs/products/compute/compute-instances/guides/upcoming-pricing-changes-april-2023/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Recent Pricing Changes (Effective 4/1/2023)" -description: "Information related to the Akamai Compute pricing changes effective April 1st, 2023" -published: 2023-03-01 -modified: 2023-03-31 -keywords: ["april pricing update", "pricing", "pricing changes"] ---- - -New pricing for some Compute services has gone into effect starting April 1st 2023. This includes an increase in cost for most Shared and Dedicated CPU Compute Instance plans (excluding the $5/mo 1GB Shared plan), a decrease in cost of network transfer (egress) overage fees, and an increase in cost for additional IPv4 addresses. This page covers each pricing change so you know exactly what to expect on your invoice moving forward. - -{{< note >}} -To learn more about these changes, review the [Akamai’s Cloud Computing Services: Pricing Update](https://www.linode.com/blog/linode/akamai_cloud_computing_price_update/) blog post. -{{< /note >}} - -## Compute Instances - -On April 1st 2023, the price for most Shared CPU and Dedicated CPU Compute Instance plans increased by 20%. This excludes the 1 GB Shared CPU (Nanode) plan, which remains at its current $5/mo price. This change also does not affect High Memory and GPU plans. The tables below outline each plan along with the corresponding resources, the original price, and the new price. - -### Shared CPU Plans and Pricing - -| Plan | Previous
$/Mo | New
$/Mo
| RAM | CPUs | Storage | Transfer | Network In/Out | -| --- | --- | --- | --- | --- | --- | --- | --- | -| **1 GB Shared CPU** | $5 | **$5 (no change)** | 1 GB | 1 | 25 GB | 1 TB | 40/1 Gbps | -| **2 GB Shared CPU** | $10 | **$12** | 2 GB | 1 | 50 GB | 2 TB | 40/2 Gbps | -| **4 GB Shared CPU** | $20 | **$24** | 4 GB | 2 | 80 GB | 4 TB | 40/4 Gbps | -| **8 GB Shared CPU** | $40 | **$48** | 8 GB | 4 | 160 GB | 5 TB | 40/5 Gbps | -| **16 GB Shared CPU** | $80 | **$96** | 16 GB | 6 | 320 GB | 8 TB | 40/6 Gbps | -| **32 GB Shared CPU** | $160 | **$192** | 32 GB | 8 | 640 GB | 16 TB | 40/7 Gbps | -| **64 GB Shared CPU** | $320| **$384** | 64 GB | 16 | 1280 GB | 20 TB | 40/9 Gbps | -| **96 GB Shared CPU** | $480 | **$576** | 96 GB | 20 | 1920 GB | 20 TB | 40/10 Gbps | -| **128 GB Shared CPU** | $640 | **$768** | 128 GB | 24 | 2560 GB | 20 TB | 40/11 Gbps | -| **192 GB Shared CPU** | $960 | **$1,152** | 192 GB | 32 | 3840 GB | 20 TB | 40/12 Gbps | - -### Dedicated CPU Plans and Pricing - -| Plan | Previous
$/Mo | New $/Mo | RAM | CPUs | Storage | Transfer | Network In/Out | -| --- | --- | --- | --- | --- | --- | --- | --- | -| **4 GB Dedicated CPU** | $30 | **$36** | 4 GB | 2 | 80 GB | 4 TB | 40/4 Gbps | -| **8 GB Dedicated CPU** | $60 | **$72** | 8 GB | 4 | 160 GB | 5 TB | 40/5 Gbps | -| **16 GB Dedicated CPU** | $120 | **$144** | 16 GB | 8 | 320 GB | 6 TB | 40/6 Gbps | -| **32 GB Dedicated CPU** | $240 | **$288** | 32 GB | 16 | 640 GB | 7 TB | 40/7 Gbps | -| **64 GB Dedicated CPU** | $480 | **$576** | 64 GB | 32 | 1280 GB | 8 TB | 40/8 Gbps | -| **96 GB Dedicated CPU** | $720 | **$864** | 96 GB | 48 | 1920 GB | 9 TB | 40/9 Gbps | -| **128 GB Dedicated CPU** | $960 | **$1,152** | 128 GB | 50 | 2500 GB | 10 TB | 40/10 Gbps | -| **256 GB Dedicated CPU** | $1,920 | **$2,304** | 256 GB | 56 | 5000 GB | 11 TB | 40/11 Gbps | -| **512 GB Dedicated CPU** | $3,840 | **$4,608** | 512 GB | 64 | 7200 GB | 12 TB | 40/12 Gbps | - -## Network Transfer (Egress) Overages - -Each Compute Instance plan includes a certain allowance of outbound network transfer per month (ranging from 1 TB to 20 TB). The monthly network allowance of each instance active during a billing period (prorated) is then combined into a monthly transfer pool. Any additional transfer usage that exceeds this monthly pool is billed as a per GB overage charge. To learn more about how network transfer works (and how it is billed), see [Network Transfer Usage and Costs](/docs/products/platform/get-started/guides/network-transfer/). - -Starting on April 1st 2023, the network transfer (egress) overage fees was cut in half, from $0.01/GB (previous fee) to $0.005/GB (new fee). The table below details this change. - -| Network Transfer Type | Previous Price | New Price | -| -- | -- | -- | -| Inbound network transfer (Ingress) | Free (no defined limit) | **Free (no defined limit)** | -| Outbound network transfer (Egress) Overage | $0.01/GB | **$0.005/GB** | - -## Additional IPv4 Addresses - -Each Compute Instance includes a free IPv4 address and IPv6 address. Additional IPv4 addresses can be purchased for a fee and added to an instance. Starting on April 1st 2023, the cost for each additional IP address increased from $1/mo to $2/mo. - -| IP Address Quantity | Previous Price | New Price | -| -- | -- | -- | -| First IPv4 Address | Free | **Free** | -| Additional IPv4 Addresses | $1/mo | **$2/mo** | \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/_index.md b/docs/products/compute/compute-instances/plans/_index.md deleted file mode 100644 index 1234789be4e..00000000000 --- a/docs/products/compute/compute-instances/plans/_index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Plan Types -title_meta: "Compute Instance Plan Types" -description: "Quickly compare each Compute Instance plan type, including Shared CPU and Dedicated CPU plans" -published: 2024-05-21 -tab_group_main: - weight: 15 ---- - -{{% content "new-data-center-notice" %}} - -{{% content "instance-comparison-shortguide" %}} \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/choosing-a-plan/index.md b/docs/products/compute/compute-instances/plans/choosing-a-plan/index.md deleted file mode 100644 index cef2e4efc35..00000000000 --- a/docs/products/compute/compute-instances/plans/choosing-a-plan/index.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: "Choosing a Compute Instance Type and Plan" -title_meta: "How to Choose a Compute Instance Plan" -description: "Get help deciding which Compute Instance type is right for your use case and learn how to select the most appropriate plan" -published: 2019-02-04 -modified: 2024-05-21 -linkTitle: "Choosing a Plan" -keywords: ["choose", "help", "plan", "size", "shared", "high memory", "dedicated", "dedicated CPU", "GPU instance"] -tags: ["linode platform"] -aliases: ['/platform/how-to-choose-a-linode-plan/','/guides/how-to-choose-a-linode-plan/','/guides/choosing-a-compute-instance-plan/'] ---- - -Linode offers multiple Compute Instance types, each of which can be equipped with various amounts of resources. This lets you create a Compute Instance tailored to the requirements of your application or workload. For example, some applications may need to store a lot of data but require less processing power. Others may need more memory than CPU. Some may be especially CPU-intensive and require more computing power. - -This guide provides you with the information needed to select the most appropriate instance, helping you sort through all of Linode's offerings and land on the right one for the job. - -{{< note >}} -You can easily change between instance types and plans on an existing Compute Instance at any time. Review the [Resizing a Compute Instance](/docs/products/compute/compute-instances/guides/resize/) for instructions. -{{< /note >}} - -## Instance Types - -These are the instance types offered by Linode: - - -- [Shared CPU Instances](#shared-cpu-instances) -- [Dedicated CPU Instances](#dedicated-cpu-instances) -- [Premium Instances](#premium-instances) -- [High Memory Instances](#high-memory-instances) -- [GPU Instances](#gpu-instances) - -They each have unique characteristics and their resources are optimized for different types of workloads. Learn about each of these instance types below, along with the resources provided and their suggested use cases. - -Most of these plan types are equipped with dedicated CPU cores for maximum peak performance and competition-free resources, though the Shared CPU plan comes with shared CPU cores. To learn more about the differences, see [Choosing Between Shared and Dedicated CPUs (and Determining When to Upgrade)](/docs/guides/comparing-shared-and-dedicated-cpus/). - -### Shared CPU Instances - -**1 GB - 192 GB Memory, 1 - 32 Shared vCPU Cores, 25 GB - 3840 GB Storage**
-Starting at $5/mo ($0.0075/hour). See [Shared CPU Pricing](https://www.linode.com/pricing/#compute-shared) for a full list of plans, resources, and pricing. - -[Shared CPU Instances](/docs/products/compute/compute-instances/plans/shared-cpu/) offer a balanced array of resources coupled with shared CPU cores. These CPU cores can be used at 100% for short bursts, but should remain below 80% sustained usage on average. This keeps costs down while still supporting a wide variety of cloud applications. Your processes are scheduled on the same CPU cores as processes from other Compute Instances. This shared scheduling is done in a secure and performant manner. While Linode works to minimize competition for CPU resources between your instance and other instances on the same hardware, it's possible that high usage from neighboring instances can negatively impact the performance of your instance. - -**Recommended Use Cases:** - -*Best for development servers, staging servers, low traffic websites, personal blogs, and production applications that may not be affected by resource contention.* - -- Medium to low traffic websites, such as for marketing content and blogs -- Forums -- Development and staging servers -- Low traffic databases -- Worker nodes within a container orchestration cluster - -### Dedicated CPU Instances - -**4 GB - 512 GB\* Memory, 2 - 64 Dedicated vCPUs, 80 GB - 7200 GB Storage**
-Starting at $36/mo ($0.05/hour). See [Dedicated CPU Pricing](https://www.linode.com/pricing/#compute-dedicated) for a full list of plans, resources, and pricing.
- -\*512 GB plans are in limited availability. - -[Dedicated CPU Instances](/docs/products/compute/compute-instances/plans/dedicated-cpu/) reserve physical CPU cores that you can utilize at 100% load 24/7 for as long as you need. This provides competition free guaranteed CPU resources and ensures your software can run at peak speed and efficiency. With Dedicated CPU instances, you can run your software for prolonged periods of maximum CPU usage, and you can ensure the lowest latency possible for latency-sensitive operations. These instances offer a perfectly balanced set of resources for most production applications. - -**Recommended Use Cases:** - -*Best for production websites, high traffic databases, and any application that requires 100% sustained CPU usage or may be impacted by resource contention.* - -- [CI/CD](/docs/guides/introduction-ci-cd/) toolchains and build servers -- [Game servers](/docs/game-servers/) (like Minecraft or Team Fortress) -- [Audio and video transcoding](/docs/applications/media-servers/) -- [Big data](/docs/applications/big-data/) (and data analysis) -- Scientific computing -- [Machine learning](/docs/guides/how-to-move-machine-learning-model-to-production/) and AI -- High Traffic Databases (Galera, PostgreSQL with Replication Manager, MongoDB using Replication Sets) -- Replicated or Distributed Filesystems (GlusterFS, DRBD) - -### Premium Instances - -**4 GB - 512 GB\* Memory, 2 - 64 Dedicated vCPUs, 80 GB - 7200 GB Storage**
-Starting at $43/mo ($0.06/hr). See [Premium Pricing](https://www.linode.com/pricing/#premium) for a full list of plans, resources, and pricing. - -\*512 GB plans are in limited availability. - -[Premium Instances](/docs/products/compute/compute-instances/plans/premium/) build off our Dedicated CPU instances and guarantee a minimum hardware class utilizing the latest available [AMD EPYC™](https://www.linode.com/amd/) CPUs. This provides consistent performance to your workloads and is suitable for running mission-critical applications. Premium instances are available in select data centers (see [Premium Instance Availability](/docs/products/compute/compute-instances/plans/premium/#availability)). - -**Recommended Use Cases:** - -*Best for enterprise-grade, business-critical, and latency-sensitive applications.* - -- Any workload that benefits from consistent performance. -- [Audio and video transcoding](/docs/applications/media-servers/) -- [Big data](/docs/applications/big-data/) (and data analysis) -- Scientific computing -- [Machine learning](/docs/guides/how-to-move-machine-learning-model-to-production/) and AI - -### High Memory Instances - -**24 GB - 300 GB Memory, 2 - 16 Dedicated vCPUs, 20 GB - 340 GB Storage**
-Starting at $60/mo ($0.09/hour). See [High Memory Pricing](https://www.linode.com/pricing/#compute-high-memory) for a full list of plans, resources, and pricing. - -[High Memory Instances](/docs/products/compute/compute-instances/plans/high-memory/) are optimized for memory-intensive applications and equipped with dedicated CPUs, which provide competition free guaranteed CPU resources. These instances feature higher RAM allocations and relatively fewer vCPUs and less storage. This keeps your costs down and provides power to memory-intensive applications. - -**Recommended Use Cases:** - -*Best for in-memory databases, in-memory caching systems, big data processing, and any production application that requires a large amount of memory while keeping costs down.* - -- Any production application that requires large amounts of memory -- In-memory database caching systems, such as [Redis](https://redis.io/) and [Memcached](https://memcached.org/). These applications offer very fast retrieval of data, but they store data in a non-persistent manner (with some caveats). So, they are usually used in conjunction with another persistent database server running on a separate instance. -- In-memory databases, such as possible with [NoSQL](/docs/guides/what-is-nosql/) and [other solutions](https://en.wikipedia.org/wiki/List_of_in-memory_databases) -- [Big data processing](/docs/applications/big-data/) (and data analysis) - -### GPU Instances - -**32 GB - 512 GB Memory, 8 - 60 Dedicated vCPUs, 640 GB - 12 TB GB Storage**
-NVIDIA RTX 4000 Ada GPU plans (Beta) starting at $600/mo ($0.83/hour) with 1 GPU card, 20 vCPU cores, 64 GB of memory, and 1.5 TB of SSD storage. NVIDIA Quadro RTX 6000 plans starting at $1000/mo ($1.50/hr) with 1 GPU card, 8 vCPU cores, 32 GB of memory, and 640 GB of storage. For a full list of plans, resources, and pricing, see [Akamai Cloud Computing Pricing](https://www.linode.com/pricing/#compute-gpu). - -[GPU Instances](/docs/products/compute/compute-instances/plans/gpu/) are the only Compute Instance type equipped with [NVIDIA RTX 4000 Ada GPU cards](https://resources.nvidia.com/en-us-design-viz-stories-ep/rtx-4000-ada-datashe?lx=CCKW39&contentType=data-sheet) or [NVIDIA Quadro RTX 6000 GPU cards](https://www.nvidia.com/content/dam/en-zz/Solutions/design-visualization/technologies/turing-architecture/NVIDIA-Turing-Architecture-Whitepaper.pdf) for on demand execution of complex processing workloads. These GPUs have CUDA cores, Tensor cores, and RT (Ray Tracing) cores. GPUs are designed to process large blocks of data in parallel, meaning that they are an excellent choice for any workload requiring thousands of simultaneous threads. With significantly more logical cores than a standard CPU, GPUs can perform computations that process large amounts of data in parallel more efficiently. - -**Recommended Use Cases:** - -*Best for applications that require massive amounts of parallel processing power, including machine learning, AI inferencing, graphics processing, and big data analysis.* - -- [Video encoding](/docs/products/compute/compute-instances/plans/gpu/#video-encoding) -- [Graphics processing](/docs/products/compute/compute-instances/plans/gpu/#graphics-processing) -- [AI inferencing](/docs/products/compute/compute-instances/plans/gpu/#machine-learning-and-ai) -- [Big data analysis](/docs/products/compute/compute-instances/plans/gpu/#big-data) -- [General Purpose computing using NVIDIA's CUDA Toolkit](/docs/products/compute/compute-instances/plans/gpu/#general-purpose-computing-using-cuda) - -## Compute Resources - -When selecting a plan, it is important to understand the hardware resources allocated to your instance. These resources include the amount of vCPU cores, memory, storage space, network transfer, and more. Start by reviewing each resource below and the implications it may have for your application. - -| Resource | Description | -| ---- | ----------- | -| Memory (RAM) | The working memory available for your server's processes. Your server stores information in memory that is needed to carry out its functions. Or, it caches data in memory for fast retrieval in the future, if it is likely that the data will be needed. Data stored in RAM is accessed faster than data stored in your Linode's disks, but it is not persistent storage. | -| vCPU Cores | The number of virtual CPUs (vCPUs) available to your server. Your software is often designed to execute its tasks across multiple CPUs in parallel. The higher your vCPU count, the more work you can perform simultaneously. Plans are also equipped with either shared CPU cores or dedicated CPU cores. Dedicated CPU cores allow your system to utilize 100% of your CPU resources at all times, while shared CPU cores require a lower sustained usage and may be affected by resource contention. See [Choosing Between Shared and Dedicated CPUs (and Determining When to Upgrade)](/docs/guides/comparing-shared-and-dedicated-cpus/). | -| Storage | Your server's built-in persistent storage. Large databases, media libraries, and other stores of files will require more storage space. Your Compute Instance's storage is maintained on high-performance SSDs for fast access. You can also supplement your disks with extra [Block Storage Volumes](https://www.linode.com/blockstorage). | -| Transfer | The total amount of traffic your server can emit over the course of a month. Inbound traffic sent to your Compute Instance does not count against your transfer quota. If you exceed your quota, your service will not be shut off; instead, an overage will be billed. Review the [Network Transfer Quota](/docs/products/platform/get-started/guides/network-transfer/) guide for more information about how transfer works. | -| Network In | The maximum bandwidth for inbound traffic sent to your Compute Instance. The bandwidth you observe will also depend on other factors, like the geographical distance between you and your instance and the bandwidth of your local ISP. For help with choosing a data center that will feature the lowest latency and best bandwidth, review the [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) guide. | -| Network Out | The maximum bandwidth for outbound traffic emitted by your Compute Instance. The bandwidth you observe will also depend on other factors, like the geographical distance between you and your instance and the bandwidth of your local ISP. For help with choosing a data center that will feature the lowest latency and best bandwidth, review the [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) guide. -| GPU | GPU's, or Graphical Processing Units are specialized hardware units only available on our GPU instances. Originally designed to manipulate computer graphics and handle image processing, GPUs are now commonly also used for many compute intensive tasks that require thousands of simultaneous threads and the higher number of logical cores that a CPU can not provide alone. - -## Pricing - -If you run a business or not, you likely need to think about pricing when considering which plan is right for you. You can view all pricing on our [Pricing](https://www.linode.com/pricing/) page. Note that pricing and plan options may vary between regions. - -Compare cost per month and save with Linode’s predictable and transparent pricing using our [Cloud Estimator](https://www.linode.com/estimator/). Explore bundled compute, storage, and transfer packages against AWS, GCP, and Azure. - -Migrating from on-premise or between cloud providers for hosting, cloud storage, or cloud computing? Use our [Total Cost of Ownership (TCO) cloud pricing calculator](https://www.linode.com/cloud-pricing-calculator/) to receive a full cost breakdown and technical recommendations. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/comparing-shared-and-dedicated-cpus/cpuusagethrottle.png b/docs/products/compute/compute-instances/plans/comparing-shared-and-dedicated-cpus/cpuusagethrottle.png deleted file mode 100644 index 3679fa3cecb..00000000000 Binary files a/docs/products/compute/compute-instances/plans/comparing-shared-and-dedicated-cpus/cpuusagethrottle.png and /dev/null differ diff --git a/docs/products/compute/compute-instances/plans/comparing-shared-and-dedicated-cpus/index.md b/docs/products/compute/compute-instances/plans/comparing-shared-and-dedicated-cpus/index.md deleted file mode 100644 index 2a78631b9ff..00000000000 --- a/docs/products/compute/compute-instances/plans/comparing-shared-and-dedicated-cpus/index.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: "Choosing Between Shared and Dedicated CPUs (and Determining When to Upgrade)" -title_meta: "Choosing Between Shared and Dedicated CPUs on the Linode Platform" -description: "A collection of diagnostic tasks that identify the potential for benefits from dedicated CPU cores." -published: 2021-08-27 -modified: 2023-07-05 -keywords: ["dedicated cpu", "use cases", "linode cpu", "machine learning", "big data"] -linkTitle: Choosing Between Shared and Dedicated CPUs -tags: ["linode platform"] -aliases: ['/platform/dedicated-cpu/when-to-upgrade-to-dedicated-cpu/','/guides/when-to-upgrade-to-dedicated-cpu/','/guides/comparing-shared-and-dedicated-cpus/'] ---- - -Each Linode Compute Instance is equipped with shared CPU cores or dedicated CPU cores. Understanding the difference between these is key to determining the best plan for your workloads. This guide outlines those differences and aims to help you evaluate your current cloud workloads to determine if plans with dedicated CPU cores would be beneficial. - -## Comparing CPU Types - -The following chart outlines the key differences between shared CPUs and dedicated CPUs, including maximum allowed utilization, CPU contention, and recommended use cases. - -| Specification | Shared CPUs | Dedicated CPUs | -| -- | -- | -- | -| **CPU allocation** | Physical CPU cores may be shared with other neighboring Compute Instances. | Physical CPU cores are reserved just for this Compute Instance. | -| **Maximum *sustained* CPU utilization (24/7)** | 80% | 100% | -| **Maximum *burst* CPU utilization** | 100% | 100% | -| **CPU contention** | Can be expected during peak usage. | No. | -| **Recommended Use Cases** | Best for development servers, staging servers, low traffic websites, personal blogs, and production applications that may not be affected by resource contention. | Best for production websites, enterprise applications, high traffic databases, and any application that requires 100% sustained CPU usage or may be impacted by resource contention. | -| **Plans** | [Shared CPU](/docs/products/compute/compute-instances/plans/shared-cpu/) | [Dedicated CPU](/docs/products/compute/compute-instances/plans/dedicated-cpu/), [Premium](/docs/products/compute/compute-instances/plans/premium/), [High Memory](/docs/products/compute/compute-instances/plans/high-memory/), [GPU](/docs/products/compute/compute-instances/plans/gpu/) | - -## How Physical CPU Cores Are Managed on Virtual Machines - -All Compute Instances on the Linode platform are cloud-based virtual machines that are equipped with various amounts of CPU cores, memory, storage space, and other resources. These Compute Instances live on powerful physical servers that are outfitted with enterprise-grade CPUs containing a high number of CPU cores. A hypervisor (virtualization software) is used to create virtual machines on these servers and manage the allocation and scheduling of physical resources. Specific to the topic of this guide, hypervisors manage the scheduling of CPU cycles - mapping CPU execution tasks from Compute Instances (virtual CPU cores) to the physical server (physical CPU cores). - -In a **Shared CPU** environment, there may be more virtual CPU cores allocated to Compute Instances than there are physical CPU cores on the server's hardware. In other words, Compute Instances may be sharing physical CPU cores. This means that your CPU requests (or *tasks*) may need to wait in line while tasks from other neighboring Compute Instances are processed. In many cases, this delay in execution is imperceptible. However, when multiple neighboring Compute Instances each have high CPU utilization, you may notice degraded performance in the form of CPU contention or *CPU steal*. CPU steal occurs when the hypervisor instructs different virtual machines to access physical CPU resources faster than the hypervisor is able to cleanly manage. With Shared CPU instances, some level of contention is expected, though we do our best to keep contention down to an absolute minimum. - -In a **Dedicated CPU** environment, virtual CPU cores on a Compute Instances are mapped to their own physical CPU cores. These CPU cores are not shared with neighboring Compute Instances. This allows for a higher level of constant predictable performance for full-duty work and opens up the ability to use your instance's CPU at its absolute maximum capacity (100% CPU utilization all day, every day). - -## When to Choose Shared or Dedicated CPUs - -**Shared CPUs** are more affordable and thus may provide a higher value, especially for workloads that are not CPU intensive and when consistently high CPU performance is not needed. Workloads suited to Shared CPU instances include development servers, staging servers, low traffic websites, personal blogs, and production applications that may not be affected by resource contention. See [Shared CPU > Recommended Workloads](/docs/products/compute/compute-instances/plans/shared-cpu/#recommended-workloads). - -**Dedicated CPUs** are recommended for most production applications and any application that requires 100% sustained usage or might be impacted by resource contention. This includes eCommerce sites, business applications, game servers, CI/CD toolchains, audio and video transcoding, machine learning, scientific computing, high traffic databases, and much more. For more information on these use cases and whether or not your use case may be a good fit for Dedicated CPU, see our guide on [Use Cases for Dedicated CPU](/docs/products/compute/compute-instances/plans/dedicated-cpu/). - -The following questions may also guide you in choosing shared CPU cores or dedicated CPU cores. - -- Is my server performance critical to the success of my business, app, or other use case? -- Will visitors to my server leave if performance degrades? -- Is my workload unable to accept the uncertainty of my neighbors on the host server? - -If you answered yes to any of the above, you should start with, or move to, a plan with dedicated CPUs. - -## Diagnosing Shared CPU Performance - -If you are using a Shared instance and suspect that contention may be impacting your workload, you may want to see how much steal your CPU is currently experiencing. Diagnosing contention requires internal access to your instance over SSH, then running and understanding diagnostic commands. - -The first test that should be performed is to run the `iostat` command for a period of time to get a wide array of data. By using the `-c` flag, the `iostat` command can focus specifically on data for the CPU. In the following example, steal data is outputted every `1` second, for a total of `10` seconds. - -```command -sudo iostat -c 1 10 -``` - -When reviewing output, the main column to focus on is `%steal`, followed by `%user`. The `%steal` column shows how much of your CPU is currently being utilized due to contention, while the `%user` column shows how much of the CPU is being utilized at the user level. A instance that isn't experiencing any contention and has a small workload would see output resembling the following: - -```output -avg-cpu: %user %nice %system %iowait %steal %idle - 0.11 0.00 0.10 0.01 0.06 99.71 - - -avg-cpu: %user %nice %system %iowait %steal %idle - 0.00 0.00 0.00 0.00 0.00 100.00 - - -avg-cpu: %user %nice %system %iowait %steal %idle - 0.00 0.00 0.00 0.00 0.00 100.00 -``` - -However, an instance that is experiencing contention will see CPU steal that can be as high as several percentage points. The following for example, reflects a instance that is encountering a low level of steal: - -```output -avg-cpu: %user %nice %system %iowait %steal %idle - 88.11 0.00 0.10 0.01 10.06 0.14 - - -avg-cpu: %user %nice %system %iowait %steal %idle - 86.00 0.00 0.00 0.00 12.00 1.69 - - -avg-cpu: %user %nice %system %iowait %steal %idle - 89.00 0.00 0.00 0.00 9.91 1.78 -``` - -It's important to keep in mind that while some steal won't usually have a noticeable impact on smaller workloads, it can have a larger impact on a system that is already using a significant amount of it's available CPU. In the latter example, this user should absolutely consider an upgrade to a dedicated CPU to boost their performance. It's worth keeping in mind that this test only reflects steal occurring at the moment that this test is performed, and there is no guarantee that steal cannot or will not occur in the future. Generally, in shared hosting, some level of steal can be expected. - -## Viewing CPU Usage Graphs - -By default, Cloud Manager will log a history of resource usage and plot CPU data to a graph. We recommend observing CPU usage in Cloud Manager if you're unsure of upgrading to a Dedicated CPU, because it will have the most amount of data pertaining to the lifetime of your instance. By looking at your CPU graph, you'll be empowered to make a value based judgement on any possible upgrade you may need. - -1. To investigate CPU usage on Cloud Manager, log in and click on the Linodes sidebar menu. - -1. Select the instance you'd like to inspect further. - -1. By default, the `analytics` tab for the instance will be automatically selected, and directly underneath the CPU usage graph will be observable. - -Generally, when observing the CPU graph, good candidates for an upgrade to a Dedicated CPU will have high and often relatively steady CPU usage. That being said, this does not necessarily need to be constant and may have high peaks that reflect a possibility for improvement with a Dedicated CPU. - -![Dedicated CPU Candidate Graph](cpuusagethrottle.png "Create a Dedicated CPU instance in Cloud Manager") - -## What If I Need More Specialized Resources? - -Dedicated CPU cores are equipped on all of our Compute Instance plans, except for Shared instances. This means that you can select the plan type that provides the resources to make your workloads run at peak performance. [Dedicated CPU](/docs/products/compute/compute-instances/plans/dedicated-cpu/) plans provide a balanced set of resources for general purpose workloads. [Premium](/docs/products/compute/compute-instances/plans/premium/) plans provide a balanced set of resources utilizing the latest AMD EPYC™ CPUs for enterprise-grade general purpose workloads. [High Memory](/docs/products/compute/compute-instances/plans/high-memory/) plans feature higher RAM allocations than a standard plan with relatively fewer vCPUs and less storage. This can help to keep your costs down and provide power to memory-intensive applications. - -Additionally, [GPU instances](/docs/products/compute/compute-instances/plans/gpu/) provide access to NVIDIA Quadro RTX 6000 GPU cards with Tensor, ray tracing (RT), and CUDA cores. GPUs are designed to process large blocks of data in parallel, meaning that they are an excellent choice for any workload requiring thousands of simultaneous threads. With significantly more logical cores than a standard CPU alone, GPUs can perform computations that process large amounts of data in parallel more efficiently. - -## How to Upgrade Your Shared Instance - -For more information on how to upgrade or resize your shared instance, consult our [Resizing a Linode](/docs/products/compute/compute-instances/guides/resize/) guide. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/dedicated-cpu/index.md b/docs/products/compute/compute-instances/plans/dedicated-cpu/index.md deleted file mode 100644 index ad40f19eb20..00000000000 --- a/docs/products/compute/compute-instances/plans/dedicated-cpu/index.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Dedicated CPU Compute Instances" -description: "Dedicated CPU Compute Instances are virtual machines that provide gauranteed CPU resources. They are ideal for a variety of production applications and CPU-intensive workloads." -published: 2023-01-18 -modified: 2024-03-11 -linkTitle: "Dedicated CPU" -aliases: ['/products/compute/dedicated-cpu/','/platform/dedicated-cpu/getting-started-with-dedicated-cpu/','/guides/getting-started-with-dedicated-cpu/','/platform/dedicated-cpu/dedicated-cpu-use-cases/','/guides/dedicated-cpu-use-cases/','/platform/dedicated-cpu/','/guides//platform/dedicated-cpu/'] -tags: ["media"] ---- - -Dedicated CPU Compute Instances are virtual machines that provide you with dedicated CPU resources. Their vCPU cores are guaranteed (and, thus, competition-free) so there are no surprises or CPU-related performance degradation. This enables you to run your production applications with confidence that your performance won't be impacted by others. These Compute Instances are CPU-optimized and can sustain CPU resource usage at 100% for as long as your workloads need. - -**Dedicated CPU plans are ideal for nearly all production applications and CPU-intensive workloads, including high traffic websites, video encoding, machine learning, and data processing.** If your application would benefit from dedicated CPU cores as well as a larger amounts of memory, see [High Memory Compute Instances](/docs/products/compute/compute-instances/plans/high-memory/). - -## Dedicated Competition-Free Resources - -A Dedicated CPU Compute Instance provides entire vCPU cores accessible only to you. Because the vCPU cores are not shared, no other Compute Instances can utilize them. Your instance never has to wait for another process, enabling your software to run at peak speed and efficiency. This lets you run workloads that require full-duty work (100% CPU all day, every day) at peak performance. - -## Upgrading from a Shared CPU Instance - -Moving from a Shared CPU Instance to a Dedicated CPU Instance is a seamless process that can positively impact your applications and users. Review the [Choosing Between Shared and Dedicated CPUs (and Determining When to Upgrade)](/docs/guides/comparing-shared-and-dedicated-cpus/) guide to learn more about the differences between Shared and Dedicated CPU plans and when each one might be appropriate. This guide also shows you how to investigate your CPU performance to determine if your application is experiencing resource contention on a Shared CPU Compute Instance. If you wish to upgrade, reference the [Resize a Compute Instance](/docs/products/compute/compute-instances/guides/resize/) guide for more details on resizing your Linode to a different plan type. - -## Recommended Workloads - -Dedicated CPU Compute Instances are suitable for almost any workload that requires consistently high performant CPU resources. This includes: - -- Production websites and e-commerce sites -- Applications that required 100% sustained CPU usage. -- Applications that might be impacted by resource contention. -- [CI/CD](/docs/guides/introduction-ci-cd/) toolchains and build servers -- [Game servers](/docs/game-servers/) (like Minecraft or Team Fortress) -- [Audio and video transcoding](/docs/applications/media-servers/) -- [Big data](/docs/applications/big-data/) (and data analysis) -- Scientific computing -- [Machine learning](/docs/guides/how-to-move-machine-learning-model-to-production/) and AI -- High Traffic Databases (Galera, PostgreSQL with Replication Manager, MongoDB using Replication Sets) -- Replicated or Distributed Filesystems (GlusterFS, DRBD) - -For more details and use cases, see the [Use Cases for Dedicated CPU Instances](#dedicated-cpu-use-cases) section. - -## Availability - -Dedicated CPU instances are available across [all regions](https://www.linode.com/global-infrastructure/). - -## Plans and Pricing - -| Resource | Available Plans | -| -- | -- | -| vCPU cores | 2-64 cores | -| Memory | 4 GB - 512 GB\* | -| Storage | 80 GB - 7200 GB | -| Outbound Network Transfer | 4 TB - 12 TB | -| Outbound Network Bandwidth | 4 Gbps - 12 Gbps | - -\*512 GB plans are in limited availability. - -Pricing starts at $36/month for a Dedicated CPU Compute Instance with 2 vCPU cores, 4GB of memory, and 80 GB of SSD storage. Pricing may vary by region. Review the [Pricing page](https://www.linode.com/pricing/#compute-dedicated) for additional plans and their associated costs. Review the [Compute Instance Plan Types](/docs/products/compute/compute-instances/plans/) page to learn more about other instance types. - -## Dedicated CPU Use Cases - -While a shared plan is usually a good fit for most use cases, a Dedicated CPU Linode may be recommended for a number of workloads related to high and constant CPU processing. Such examples include: - - - - [CI/CD Toolchains and Build Servers](#cicd-toolchains-and-build-servers) - - [Game Servers](#game-servers) - - [Audio and Video Transcoding](#audio-and-video-transcoding) - - [Big Data and Data Analysis](#big-data-and-data-analysis) - - [Scientific Computing](#scientific-computing) - - [Machine Learning](#machine-learning) - -### CI/CD Toolchains and Build Servers - -CI and CD are abbreviations for *Continuous Integration* and *Continuous Delivery*, respectively, and refer to an active approach to DevOps that reduces overall workloads by automatically testing and regularly implementing small changes. This can help to prevent last-minute conflicts and bugs, and keeps tasks on schedule. For more information on the specifics of CI and CD, see our [Introduction to CI/CD Guide](/docs/guides/introduction-ci-cd/). - -In many cases, the CI/CD pipeline can become resource-intensive if many new code changes are built and tested against your build server. When a Linode is used as a remote server and is expected to be regularly active, a Dedicated CPU Linode can add an additional layer of speed and reliability to your toolchain. - -### Game Servers - -Depending on the intensity of demands they place on your Linode, [game servers](/docs/game-servers/) may benefit from a Dedicated CPU. Modern multiplayer games need to coordinate with a high number of clients, and require syncing entire game worlds for each player. If CPU resources are not available, then players will experience issues like stuttering and lag. Below is a short list of popular games that may benefit from a Dedicated CPU: - -- [Rust](/docs/marketplace-docs/guides/rust/) -- [Minecraft](/docs/marketplace-docs/guides/minecraft/) -- [CS:GO](/docs/marketplace-docs/guides/counter-strike-go/) - -### Audio and Video Transcoding - -[Audio and Video Transcoding](/docs/applications/media-servers/) (AKA Video/Audio Encoding) is the process of taking a video or audio file from its original or source format and converting it to another format for use with a different device or tool. Because this is often a time-consuming and resource-intensive task, a Dedicated CPU or [Dedicated GPU](/docs/products/compute/compute-instances/get-started/) Linode are suggested to maximize performance. [FFmpeg](https://ffmpeg.org/) is a popular open source tool used specifically for the manipulation of audio and video, and is recommended for a wide variety of encoding tasks. - -### Big Data and Data Analysis - -[Big Data and Data Analysis](/docs/applications/big-data/) is the process of analyzing and extracting meaningful insights from datasets so large they often require specialized software and hardware. Big data is most easily recognized with the **"three V's"** of big data: - -- **Volume:** Generally, if you are working with terabytes, petabytes, exabytes, or more amounts of information you are in the realm of big data. -- **Velocity:** With Big Data, you are using data that is being created, called, moved, and interacted with at a high velocity. One example is the real time data generated on social media platforms by their users. -- **Variety:** Variety refers to the many different types of data formats with which you may need to interact. Photos, video, audio, and documents can all be written and saved in a number of different formats. It is important to consider the variety of data that you will collect in order to appropriately categorize it. - -Processing big data is often especially hardware-dependent. A Dedicated CPU can give you access to the isolated resources often required to complete these tasks. - -The following tools can be extremely useful when working with big data: - -- [Hadoop](/docs/guides/how-to-install-and-set-up-hadoop-cluster/) - an Apache project for the creation of parallel processing applications on large data sets, distributed across networked nodes. - -- [Apache Spark](https://spark.apache.org/) - a unified analytics engine for large-scale data processing designed with speed and ease of use in mind. - -- [Apache Storm](https://storm.apache.org/) - a distributed computation system that processes streaming data in real time. - -### Scientific Computing - -**Scientific Computing** is a term used to describe the process of using computing power to solve complex scientific problems that are either impossible, dangerous, or otherwise inconvenient to solve via traditional means. Often considered the "Third Pillar" of modern science behind Theoretical Analysis and Experimentation, Scientific Computing has quickly become a prevalent tool in scientific spaces. - -Scientific Computing involves many intersecting skills and tools for a wide array of more specific use cases, though solving complex mathematical formulas dependent on significant computing power is considered to be standard. While there are a large number of open source software tools available, below are two general purpose tools we can recommend to get started with Scientific Computing. - -- [Jupyter Notebook](https://jupyter.org/) -- [Numpy](https://numpy.org/) - -It's worth keeping in mind that, beyond general use cases, there are many more example of tools and software available and often designed for individual fields of science. - -### Machine Learning - -[Machine learning](/docs/guides/how-to-move-machine-learning-model-to-production/) is a powerful approach to data science that uses large sets of data to build prediction algorithms. These prediction algorithms are commonly used in “recommendation” features on many popular music and video applications, online shops, and search engines. When you receive intelligent recommendations tailored to your own tastes, machine learning is often responsible. Other areas where you might find machine learning being used are in self-driving cars, process automation, security, marketing analytics, and health care. - -Below is a list of common tools used for machine learning and AI that can be installed on a Linode CPU instance: - -- [TensorFlow](https://www.tensorflow.org/) - a free, open-source, machine learning framework and deep learning library. Tensorflow was originally developed by Google for internal use and later fully released to the public under the Apache License. - -- [PyTorch](https://pytorch.org/) - a machine learning library for Python that uses the popular GPU-optimized Torch framework. - -- [Apache Mahout](https://mahout.apache.org/) - a scalable library of machine learning algorithms and distributed linear algebra framework designed to let mathematicians, statisticians, and data scientists quickly implement their own algorithms. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/gpu/index.md b/docs/products/compute/compute-instances/plans/gpu/index.md deleted file mode 100644 index b4fe958137a..00000000000 --- a/docs/products/compute/compute-instances/plans/gpu/index.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: "GPU Compute Instances" -description: "Virtual machines equipped with NVIDIA Quadro GPUs that are ideal for complex processing and GPU-optimized workloads." -published: 2023-01-18 -modified: 2024-05-21 -linkTitle: "GPU" -aliases: ['/products/compute/gpu/','/platform/linode-gpu/why-linode-gpu/','/guides/why-linode-gpu/','/products/compute/gpu/guides/use-cases/'] ---- - -Scientists, artists, and engineers need access to significant parallel computational power. Linode offers GPU-optimized virtual machines accelerated by NVIDIA RTX 4000 Ada (Beta) or NVIDIA Quadro RTX 6000. These GPU compute instances harness the power of CUDA, Tensor, and RT cores to execute complex processing, transcoding, and ray tracing workloads. - -GPU plans using NVIDIA Quadro RTX 6000 were first introduced in 2019 and have limited deployment availability. The new NVIDIA RTX 4000 Ada GPU plans are being tested by Beta customers. You can register your interest in the new plans by completing the [Reservation Request Form](https://www.linode.com/products/gpu/#gpu-form). - -**GPU plans are ideal for highly specialized workloads that would benefit from dedicated NVIDIA GPUs, including machine learning, AI inferencing, graphics processing, and big data analysis.** - -## On-demand - -When the costs associated with purchasing, installing, and maintaining GPUs are taken into account, the overall cost of ownership is often high. GPU Compute Instances allow you to leverage the power of GPUs while benefiting from the main value proposition of cloud: turning a CapEx into an OpEx. - -## Market Leading Hardware - - The GPU plans use industry-leading NVIDIA GPUs with CUDA, Tensor, and RT cores in each unit. These GPUs support use cases associated with parallel processing, transcoding, and ray tracing. See [GPU Specifications](#gpu-specifications) for more details. - -If one GPU card isn’t enough for your projected workloads, Akamai Cloud Computing offers GPU plans with up to eight cards per instance. - -## Dedicated Competition-Free Resources - -A GPU Compute Instance's vCPU cores are dedicated, not shared, and accessible only to you. Your instance never has to wait for another process, enabling your software to run at peak speed and efficiency. This lets you run workloads that require full-duty work (100% CPU all day, every day) at peak performance. - -## Recommended Workloads - -GPU Compute Instances are suitable for specialized workloads that are optimized for GPUs: - -- Video encoding -- Graphics processing -- AI inferencing -- Big data analysis - -See [GPU Use Cases](#gpu-use-cases) to learn more. - -## Availability - - -| GPU Plan | Regions | -| -- | -- | -| NVIDIA RTX 4000 Ada (Beta) | Seattle, WA, US; Chicago, IL, US; Paris, FR; Osaka, JP | -| NVIDIA Quadro RTX 6000 | Atlanta, GA, US; Newark, NJ, US; Frankfurt, DE; Mumbai, IN; Singapore, SG | - -## Plans and Pricing - -| Resource | NVIDIA RTX 4000 Ada (Beta) | NVIDIA Quadro RTX 6000 -| -- | -- | -- | -| GPU cards | 1-8 | 1-4 | -| GPU Memory (VRAM) | 20 GB - 160 GB |24 GB - 96 GB | -| vCPU cores (dedicated) | 20 - 60 cores | 8-24 cores | -| Memory (RAM) | 64 GB - 512 GB | 32 GB - 128 GB | -| Storage | 1.5 TB - 12 TB | 640 GB - 2560 GB | -| Outbound Network Transfer | 10 TB - 25 TB | 16 TB - 20 TB | -| Outbound Network Bandwidth | 10 Gbps | 10 Gbps | - -Pricing starts at $600/mo ($0.83/hr) for an NVIDIA RTX 4000 Ada GPU Instance (Beta) with 1 GPU card, 20 vCPU cores, 64 GB of memory, and 1.5 TB of SSD storage. Pricing starts at $1,000/mo ($1.50/hr) for an NVIDIA Quadro RTX 6000 GPU Instance with 1 GPU card, 8 vCPU cores, 32 GB of memory, and 640 GB of SSD storage. - -Review the [Pricing page](https://www.linode.com/pricing/#row--compute) for additional plans and their associated costs. Review the [Compute Instance Plan Types](/docs/products/compute/compute-instances/plans/) page to learn more about other instance types. - -{{% content "gpu-deposit-shortguide" %}} - -## GPU Specifications - -Each of the NVIDIA RTX 4000 Ada GPUs (Beta) is equipped the following specifications: - -| Specification | Value | -| -- | -- | -| GPU Memory (VRAM) | 20 GB GDDR6 | -| CUDA Cores (Parallel-Processing) | 6144 | -| Tensor Cores (Transcoding) | 192 | -| RT Cores (Ray Tracing) | 48 | -| FP32 Performance | 26.7 TFLOPS | - -Each of the NVIDIA Quadro RTX 6000 GPUs is equipped the following specifications: - -| Specification | Value | -| -- | -- | -| GPU Memory (VRAM) | 24 GB GDDR6 | -| CUDA Cores (Parallel-Processing) | 4608 | -| Tensor Cores (Transcoding) | 576 | -| RT Cores (Ray Tracing) | 72 | -| FP32 Performance | 16.3 TFLOPS | - -## What are GPUs? - -GPUs (Graphical Processing Units) are specialized hardware originally created to manipulate computer graphics and process images. GPUs are designed to process large blocks of data in parallel making them excellent for compute intensive tasks that require thousands of simultaneous threads. Because a GPU has significantly more logical cores than a standard CPU, it can perform computations that process large amounts of data in parallel, more efficiently. This means GPUs accelerate the large calculations that are required by big data, video encoding, AI, and machine learning. - -GPU Compute Instances include NVIDIA RTX 4000 Ada or NVIDIA Quadro RTX 6000 GPU cards with Tensor, RT, and CUDA cores. NVIDIA RTX 4000 Ada GPU plans are currently only available to Beta customers. Read more about NVIDIA RTX 4000 Ada [here](https://resources.nvidia.com/en-us-design-viz-stories-ep/rtx-4000-ada-datashe?lx=CCKW39&contentType=data-sheet). - -## GPU Use Cases - -### Machine Learning and AI - -Machine learning is a powerful approach to data science that uses large sets of data to build prediction algorithms. These prediction algorithms are commonly used in “recommendation” features on many popular music and video applications, online shops, and search engines. When you receive intelligent recommendations tailored to your own tastes, machine learning is often responsible. Other areas where you might find machine learning being used include self-driving cars, process automation, security, marketing analytics, and health care. - -AI (Artificial Intelligence) is a broad concept that describes technology designed to behave intelligently and mimic the cognitive functions of humans, like learning, decision making, and speech recognition. AI uses large sets of data to learn and adapt in order to achieve a specific goal. GPUs provide the processing power needed for common AI and machine learning tasks like input data preprocessing and model building. - -Below is a list of common tools used for machine learning and AI that can be installed on a GPU Compute Instance: - -- [TensorFlow](https://www.tensorflow.org) - a free, open-source, machine learning framework, and deep learning library. Tensorflow was originally developed by [Google](http://google.com) for internal use and later fully released to the public under the Apache License. - -- [PyTorch](https://pytorch.org/) - a machine learning library for Python that uses the popular GPU optimized [Torch](https://en.wikipedia.org/wiki/Torch_(machine_learning)) framework. - -- [Apache Mahout](https://mahout.apache.org/) - a scalable library of machine learning algorithms, and a distributed linear algebra framework designed to let mathematicians, statisticians, and data scientists quickly implement their own algorithms. - -### Big Data - -Big data is a discipline that analyzes and extracts meaningful insights from large and complex data sets. These sets are so large and complex that they require specialized software and hardware to appropriately capture, manage, and process the data. When thinking of big data and whether or not the term applies to you, it often helps to visualize the “three Vs”: - -- **Volume:** Generally, if you are working with terabytes, exabytes, petabytes, or more amounts of information you are in the realm of big data. - -- **Velocity:** With Big Data, you’re using data that is being created, called, moved, and interacted with at a high velocity. One example is the real time data generated on social media platforms by its users. - -- **Variety:** Variety refers to the many different types of data formats with which you may need to interact. Photos, video, audio, and documents can all be written and saved in a number of different formats. It is important to consider the variety of data that you will collect in order to appropriately categorize it. - -GPUs can help give Big Data systems the additional computational capabilities they need for ideal performance. Below are a few examples of tools which you can use for your own big data solutions: - -- [Hadoop](https://hadoop.apache.org/) - an Apache project that allows the creation of parallel processing applications on large data sets, distributed across networked nodes. - -- [Apache Spark](https://spark.apache.org/) - a unified analytics engine for large-scale data processing designed with speed and ease of use in mind. - -- [Apache Storm](https://storm.apache.org/) - a distributed computation system that processes streaming data in real time. - -### Video Encoding - -Video Encoding is the process of taking a video file's original source format and converting it to another format that is viewable on a different device or using a different tool. This resource intensive task can be greatly accelerated using the power of GPUs. - -- [FFmpeg](https://developer.nvidia.com/ffmpeg) - a popular open-source multimedia manipulation framework that supports a large number of video formats. - -### General Purpose Computing using CUDA - -CUDA (Compute Unified Device Architecture) is a parallel computing platform and API that lets you interact more directly with the GPU for general purpose computing. In practice, this means that a developer can write code in C, C++, or many other supported languages utilizing their GPU to create their own tools and programs. - -If you're interested in using CUDA on your GPU Compute Instance, see the following resources: - -- [NVIDIA's Library of Documentation](https://docs.nvidia.com/cuda/) - -- [Introduction to CUDA](https://devblogs.nvidia.com/easy-introduction-cuda-c-and-c/) - -- [NVIDIA's CUDA exercise repository](https://github.com/csc-training/CUDA/tree/master/exercises) - -### Graphics Processing - -One of the most traditional use cases for a GPU is graphics processing. Transforming a large set of pixels or vertices with a shader or simulating realistic lighting via ray tracing are massive parallel processing tasks. Ray tracing is a computationally intensive process that simulates lights in a scene and renders the reflections, refractions, shadows, and indirect lighting. It's impossible to do on GPUs in real-time without hardware-based ray tracing acceleration. GPU Compute Instances offers real-time ray tracing capabilities using a single GPU. - -The GPU plans support advanced shading capabilities such as: - -- Mesh shading models for vertex, tessellation, and geometry stages in the graphics pipeline -- Variable Rate Shading to dynamically control shading rate -- Texture-Space Shading which utilizes a private memory held texture space -- Multi-View Rendering which allows for rendering multiple views in a single pass. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/high-memory/index.md b/docs/products/compute/compute-instances/plans/high-memory/index.md deleted file mode 100644 index a4d7b8a865f..00000000000 --- a/docs/products/compute/compute-instances/plans/high-memory/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "High Memory Compute Instances" -description: "High Memory Linodes offer cost-effective fast data retrieval and in-memory processing." -published: 2023-01-18 -modified: 2023-09-21 -linkTitle: "High Memory" -aliases: ['/products/compute/high-memory/'] ---- - -High Memory Compute Instances are virtual machines that offer a greater price-to-performance ratio for memory-intensive applications. When compared to [Dedicated CPU Instances](/docs/products/compute/compute-instances/plans/dedicated-cpu/), High Memory Instances provide the same dedicated CPU resources but are equipped with more memory per CPU core. This tunes them specifically for memory-intensive applications that value larger amounts of memory over a larger number of CPU cores. - -**High Memory plans are ideal for production applications and CPU-intensive workloads that value greater memory over CPU resources, including caching systems, high-performance databases, and in-memory data processing.** - -## Fast Data Retrieval and In-Memory Processing - -Optimized for in-memory databases and caches, the High Memory Linode is perfect for high-performance querying and is a good addition to any enterprise-level database solution. - -Keep recently-accessed data in memory to speed up retrieval times. Use a High Memory Linode as a Memcached or Redis in-memory data store for better application performance. - -Run queries on large data volumes. High memory Linodes make it possible to process your data completely in memory and quickly get query results. - -## Dedicated Competition-Free Resources - -A High Memory Instance provides entire vCPU cores accessible only to you. Because the vCPU cores are not shared, no other Compute Instances can utilize them. Your instance never has to wait for another process, enabling your software to run at peak speed and efficiency. This lets you run workloads that require full-duty work (100% CPU all day, every day) at peak performance. - -## Recommended Workloads - -High Memory Compute Instances are suitable for workloads that value much larger amounts of memory than other plans of a similar price. This includes: - -- Any production application that requires large amounts of memory -- In-memory database caching systems, such as [Redis](https://redis.io/) and [Memcached](https://memcached.org/) -- In-memory databases, such as possible with [NoSQL](/docs/guides/what-is-nosql/) and [other solutions](https://en.wikipedia.org/wiki/List_of_in-memory_databases) -- [Big data processing](/docs/applications/big-data/) (and data analysis) - -## Availability - -High Memory instances are available across [all regions](https://www.linode.com/global-infrastructure/). - -## Plans and Pricing - -| Resource | Available Plans | -| -- | -- | -| vCPU cores | 2-16 cores | -| Memory | 24 GB - 300 GB | -| Storage | 20 GB - 340 GB | -| Outbound Network Transfer | 5 TB - 9 TB | -| Outbound Network Bandwidth | 5 Gbps - 9 Gbps | - -Pricing starts at $60 for a High Memory Compute Instance with 2 vCPU cores, 24GB memory, and 20GB of SSD storage. Pricing may vary by region. Review the [Pricing page](https://www.linode.com/pricing/#compute-high-memory) for additional plans and their associated costs. Review the [Compute Instance Plan Types](/docs/products/compute/compute-instances/plans/) page to learn more about other instance types. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/premium/index.md b/docs/products/compute/compute-instances/plans/premium/index.md deleted file mode 100644 index cc07efee0ca..00000000000 --- a/docs/products/compute/compute-instances/plans/premium/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "Premium Compute Instances" -description: "Premium instances guarantee a minimum hardware class utilizing the latest available AMD EPYC™ CPUs, providing consistent high-performance for your workloads." -published: 2023-07-06 -modified: 2024-03-11 -linkTitle: "Premium" ---- - -Premium Compute Instances are virtual machines that come equipped with the latest AMD EPYC™ CPUs, ensuring your applications are running on the latest hardware with consistent high-performance. Premium instances build off of our [Dedicated CPU instances](/docs/products/compute/compute-instances/plans/dedicated-cpu/), offering similar plan resources but with a guaranteed minimum hardware model. - -**Premium plans are ideal for enterprise-grade, business-critical, and latency-sensitive applications, including any workload that benefits from consistent performance with the latest hardware.** - -{{< note >}} -Premium instances are not currently available in all regions. Review the [Availability](#availability) section to learn which data centers can be used to deploy Premium instances. -{{< /note >}} - -## Latest Hardware - -The key differentiator for Premium instances is its guaranteed minimum hardware class, which ensures your workloads run on the latest AMD EPYC™ CPUs. To learn more about AMD CPUs on the Linode platform, review the [AMD page](https://www.linode.com/amd/). This outlines CPU models, benefits of AMD processors, and the CPU models that are available across our fleet. - -## Dedicated Competition-Free Resources - -CPU cores on a Premium instance are accessible only to that instance (not other instances on the same hardware). Because the vCPU cores are not shared, no other Compute Instances can utilize them. Your instance never has to wait for another process, enabling your software to run at peak speed and efficiency. This lets you run workloads that require full-duty work (100% CPU all day, every day) at peak performance. - -## Recommended Workloads - -Premium Compute Instances are suitable for workloads that benefit a balanced set of resources and consistent performance. This includes: - -- Enterprise-grade production applications -- [Audio and video transcoding](/docs/applications/media-servers/) -- [Big data](/docs/applications/big-data/) (and data analysis) -- Scientific computing -- [Machine learning](/docs/guides/how-to-move-machine-learning-model-to-production/) and AI - -## Availability - -Premium Compute Instances are currently available in select data centers. - -| Data center | Status | -| -- | -- | -| **Amsterdam (Netherlands)** | **Available** | -| Atlanta (Georgia, USA) | *Not available* | -| **Chennai (India)** | **Available** | -| **Chicago (Illinois, USA)** | **Available** | -| Dallas (Texas, USA) | *Not available* | -| Frankfurt (Germany) | *Not available* | -| Fremont (California, USA) | *Not available* | -| **Jakarta (Indonesia)** | **Available** | -| **Los Angeles (California, USA)** | **Available** | -| London (United Kingdom) | *Not available* | -| **Madrid (Spain)** | **Available** | -| **Miami (Florida, USA)** | **Available** | -| **Milan (Italy)** | **Available** | -| Mumbai (India) | *Not available* | -| Newark (New Jersey, USA) | *Not available* | -| **Osaka (Japan)** | **Available** | -| **Paris (France)** | **Available** | -| **São Paulo (Brazil)** | **Available** | -| **Seattle (Washington, USA)** | **Available** | -| Singapore | *Not available* | -| **Stockholm (Sweden)** | **Available** | -| Sydney (Australia) | *Not available* | -| Tokyo (Japan) | *Not available* | -| Toronto (Canada) | *Not available* | -| **Washington, DC (USA)** | **Available** | - -## Plans and Pricing - -| Resource | Available Plans | -| -- | -- | -| vCPU cores | 2-64 cores | -| Memory | 4 GB - 512 GB\* | -| Storage | 80 GB - 7,200 GB | -| Outbound Network Transfer | 4 TB - 12 TB | -| Outbound Network Bandwidth | 4 Gbps - 12 Gbps | - -\*512 GB plans are in limited availability. - -Pricing starts at $43/month for a Premium CPU Compute Instance with 2 vCPU cores, 4GB of memory, and 80 GB of SSD storage. Pricing may vary by region. Review the [Pricing page](https://www.linode.com/pricing/) for additional plans and their associated costs. Review the [Compute Instance Plan Types](/docs/products/compute/compute-instances/plans/) page to learn more about other instance types. diff --git a/docs/products/compute/compute-instances/plans/shared-cpu/index.md b/docs/products/compute/compute-instances/plans/shared-cpu/index.md deleted file mode 100644 index 9ed755c37bb..00000000000 --- a/docs/products/compute/compute-instances/plans/shared-cpu/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Shared CPU Compute Instances" -description: "Learn about our Shared CPU Compute Instance plans, our most affordable virtual machines that offer a significant price-to-performance ratio." -published: 2023-01-18 -modified: 2023-09-21 -linkTitle: "Shared CPU" -aliases: ['/products/compute/shared-linodes/','/products/compute/shared-cpu/'] ---- - -Shared CPU Compute Instances are our most affordable virtual machines that offer a significant price-to-performance ratio. They provide a well balanced set of resources that are ideal for a wide range of applications. While most of our other Compute Instance types are equipped with dedicated CPUs, Shared Instances are not. This means that CPU resources are shared with other Compute Instances and a small amount of resource contention is possible. - -**Shared plans are ideal for development servers, staging servers, low traffic websites, personal blogs, and production applications that may not be affected by resource contention.** - -## Recommended Workloads - -Shared CPU Compute Instances are suitable for general workloads that value cost over maximum performance: - -- Production applications with low to medium CPU requirements and are not affected by resource contention -- Applications that require a balanced set of resources -- Medium to low traffic websites, such as for marketing content and blogs -- Forums -- Development and staging servers -- Low traffic databases -- Worker nodes within a container orchestration cluster - -## Availability - -Shared CPU instances are available across [all regions](https://www.linode.com/global-infrastructure/). - -## Plans and Pricing - -| Resource | Available Plans | -| -- | -- | -| vCPU cores | 1-32 cores | -| Memory | 1 GB - 192 GB | -| Storage | 25 GB - 3840 GB | -| Outbound Network Transfer | 1 TB - 20 TB | -| Outbound Network Bandwidth | 1 Gbps - 12 Gbps | - -Pricing starts at $5 for a Shared CPU Compute Instance with 1 vCPU core, 1 GB of memory, and 25 GB of SSD storage. Pricing may vary by region. Review the [Pricing page](https://www.linode.com/pricing/#row--compute) for additional plans and their associated costs. Review the [Compute Instance Plan Types](/docs/products/compute/compute-instances/plans/) page to learn more about other instance types. \ No newline at end of file diff --git a/docs/products/compute/compute-instances/plans/tab.svg b/docs/products/compute/compute-instances/plans/tab.svg deleted file mode 100644 index f5eb32da092..00000000000 --- a/docs/products/compute/compute-instances/plans/tab.svg +++ /dev/null @@ -1,19 +0,0 @@ - - Dedicated CPU - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/products/compute/compute-instances/resources/index.md b/docs/products/compute/compute-instances/resources/index.md deleted file mode 100644 index 71541ef9430..00000000000 --- a/docs/products/compute/compute-instances/resources/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Resources -title_meta: "Resources for Compute Instances" -description: "Resources and other information related to Compute Instances, including videos, blog posts, community posts, customer stories, and press releases." -published: 2023-01-18 -tab_group_main: - weight: 40 -aliases: ['/products/compute/shared-linodes/resources/','/products/compute/shared-cpu/resources/','/products/compute/gpu/resources/','/products/compute/dedicated-cpu/resources/'] ---- - -## All Plans - -### Videos - -- [Linode Explained](https://www.linode.com/content/linode-explained/) - -- [Linode India Overview](https://www.linode.com/content/linode-mumbai-data-center-overview-video/) - -- [Linode Mumbai Data Center](https://www.linode.com/content/linode-mumbai-data-center-video/) - -- [Linode Toronto Data Center](https://www.linode.com/content/linode-toronto-data-center-video/) - -- [About Linode](https://www.linode.com/content/about-linode-video/) - -### Blog Posts - -- [Linode Launches Free Advanced DDoS Protection Across Its Global Network](https://www.linode.com/press-release/linode-launches-free-advanced-ddos-protection-across-its-global-network/) - -- [2019: A Big Year of Innovation for Linode and a Big Thank You to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [Linode Chooses Sydney as Next Stop in Global Expansion](https://www.linode.com/press-release/linode-chooses-sydney-as-next-stop-in-global-expansion/) - -- [Linode Turns 7, BIG RAM Increase](https://www.linode.com/blog/linode/linode-turns-7-big-ram-increase/) - -### Community Posts - -- [How to choose the right Linode Plan](https://www.linode.com/community/questions/11570/how-to-choose-the-right-linode-plan) - -- [What is the difference between disk allocation and disk usage?](https://www.linode.com/community/questions/19798/what-is-the-difference-between-disk-allocation-and-disk-usage) - -- [What is CPU steal and how does it affect my Linode?](https://www.linode.com/community/questions/18168/what-is-cpu-steal-and-how-does-it-affect-my-linode) - -- [Can I access the entire /24 block my IPv4 address is in?](https://www.linode.com/community/questions/314/can-i-access-the-entire-24-block-my-ipv4-address-is-in) - -- [Hey, how can I use Linode VPS for internet browsing?](https://www.linode.com/community/questions/19770/hey-how-can-i-use-linode-vps-for-internet-browsing) - -- [Getting started with Linode?](https://www.linode.com/community/questions/17493/get-started-with-linode) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=shared+linodes). - -### Customer Stories - -- [Craft of Code Chris Alfano](https://www.linode.com/spotlight/chris-alfano/) - -- [Craft of Code Flowlens](https://www.linode.com/spotlight/flowlens/) - -- [Craft of Code Austin Balarin](https://www.linode.com/spotlight/austin-balarin/) - -- [Craft of Code Will Blew](https://www.linode.com/spotlight/will-blew/) - -- [Craft of Code Bernd Hilmar](https://www.linode.com/spotlight/bernd-hilmar/) - -### Press Releases - -- [Linode Expands Global Data Center Network to India](https://www.linode.com/press-release/linode-expands-global-data-center-network-to-india/) - -- [Linode Opens Toronto Data Center](https://www.linode.com/press-release/linode-opens-toronto-data-center/) - -- [Linode Launches Frankfurt Data Center](https://www.linode.com/press-release/linode-launches-frankfurt-datacenter/) - -- [Linode Celebrates 12th Birthday by Adopting KVM & Boosting Cloud Server Performance by 300%](https://www.linode.com/press-release/linode-celebrates-12th-birthday-by-adopting-kvm-and-boosting-cloud-server-performance-by-300/) - -- [Linode Opens New Data Center in Singapore](https://www.linode.com/press-release/linode-opens-new-datacenter-in-singapore/) - -### External Resources - -- [eBook: An Introduction to High-Availability Design for WordPress (and not only WordPress!](https://resources.pressidium.com/high-availability-wordpress-ebook/) - -## Dedicated CPU Compute Instances - -### Videos - -- [Dedicated CPU](https://www.linode.com/content/dedicated-cpu-video/) - -### Blog Posts - -- [Introducing: Linode Dedicated CPU Instances](https://www.linode.com/blog/linode/introducing-linode-dedicated-cpu-instances/) - -- [Linode turns 16: Triples Dedicated plan storage, halves NodeBalancer cost](https://www.linode.com/blog/linode/linode-turns-16-triples-dedicated-plan-storage-halves-nodebalancer-cost/) - -- [Linode at 17: A bunch of updates](https://www.linode.com/blog/linode/linode-turns-17/) - -- [2019: A Big Year of Innovation for Linode and a Big Thank You to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [October Docs Roundup: Rancher, Data Visualization, and More](https://www.linode.com/blog/open-source/october-docs-roundup-rancher-data-visualization-and-more/) - -- [Linode Toronto Data Center Now Available](https://www.linode.com/blog/linode/linode-toronto-data-center-now-available/) - -### Community Posts - -- [Does a Dedicated CPU or High Memory plan improve disk I/O performance?](https://www.linode.com/community/questions/19437/does-a-dedicated-cpu-or-high-memory-plan-improve-disk-io-performance) - -- [4GB Standard to 4GB Dedicated plan - is it worth it?](https://www.linode.com/community/questions/19479/from-4gb-standard-to-4gb-dedicated-plan-is-it-worth-it) - -- [How do I know if a Dedicated CPU plan will help?](https://www.linode.com/community/questions/17812/how-do-i-know-if-a-dedicated-cpu-plan-will-help) - -- [Which Linode plan would be best for video streaming?](https://www.linode.com/community/questions/19735/which-linode-plan-would-be-best-for-video-streaming) - -- [is it possible to resize from a Standard Plan to a Dedicated CPU plan?](https://www.linode.com/community/questions/19240/is-it-possible-to-resize-from-a-standard-plan-to-a-dedicated-cpu-plan) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=dedicated). - -### Customer Stories - -- [Craft of Code Jason Nickel](https://www.linode.com/spotlight/jason-nickel/) - -- [Craft of Code Cloudnet](https://www.linode.com/spotlight/cloudnet/) - -### Press Releases - -- [Linode Expands Cloud Solutions For Developers, Launches Dedicated CPU Instances](https://www.linode.com/press-release/linode-expands-cloud-solutions-for-developers-launches-dedicated-cpu-instances/) - -## GPU Compute Instances - -### eBooks - -- [GPU Price-Performance Benchmarking Report](https://www.linode.com/content/gpu-price-performance-benchmarking/) - -## Videos - -- [Linode puts powerful NVIDIA GPU in its Linux Cloud](https://www.tfir.io/linode-puts-powerful-nvidia-gpus-in-its-linux-cloud/) - -### Blog Posts - -- [From Kubernetes to GPU, Catch Up On the Latest Linode Guides](https://www.linode.com/blog/cms/from-kubernetes-to-gpu-catch-up-on-the-latest-linode-guides/) - -- [Introducing Linode GPU Instances](https://www.linode.com/blog/gpu/introducing-linode-gpu-instances/) - -### Community Posts - -- [GPU is Coming](https://www.linode.com/community/questions/18147/gpu-is-coming) - -- [How many simultaneous video encoding/streaming tasks can run on a GPU instance?](https://www.linode.com/community/questions/18912/how-many-simultaneous-video-encodingstreaming-tasks-can-run-on-a-gpu-instance) - -- [How does the GPU billing works?](https://www.linode.com/community/questions/19777/how-does-the-gpu-billing-works) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=gpu). - -### Press Releases - -- [Linode Brings Commercial Grade GPUs to the Masses](https://www.linode.com/press-release/linode-brings-commercial-grade-gpus-to-the-masses/) - -### External Resources - -- [Video: Cloud GPUs Tutorial from sentdex](https://www.youtube.com/watch?v=qWGgK4IrH-s&feature=emb_logo) - -- [NVIDIA RTX 4000 Ada GPU cards](https://resources.nvidia.com/en-us-design-viz-stories-ep/rtx-4000-ada-datashe?lx=CCKW39&contentType=data-sheet) - -- [NVIDIA Quadro RTX 6000 GPU cards](https://www.nvidia.com/content/dam/en-zz/Solutions/design-visualization/technologies/turing-architecture/NVIDIA-Turing-Architecture-Whitepaper.pdf) - -- [One of a Kind in the Cloud: Linode Lifts Customers with Quadro RTX Performance](https://blogs.nvidia.com/blog/2020/04/01/linode-quadro-rtx/) - -- [CUDA Toolkit Documentation](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) - -- [Introduction to CUDA](https://devblogs.nvidia.com/easy-introduction-cuda-c-and-c/) - -- [NVIDIA’s CUDA exercise repository](https://github.com/csc-training/CUDA/tree/master/exercises) - -## High Memory Compute Instances - -### Blog Posts - -- [High-Memory Instances and $5 Linodes](https://www.linode.com/blog/linode/high-memory-instances-and-5-linodes/) - -- [Updated Linode Plans/New Larger Linodes](https://www.linode.com/blog/linode/updated-linode-plans-new-larger-linodes/) - -- [Linode at 17: A bunch of updates](https://www.linode.com/blog/linode/linode-turns-17/) - -### Community Posts - -- [How to choose the right Linode Plan](https://www.linode.com/community/questions/11570/how-to-choose-the-right-linode-plan) - -- [Is it possible to upgrade Memory for a specific time and downgrade again?](https://www.linode.com/community/questions/17783/is-it-possible-to-upgrade-memory-for-specific-time-and-downgrade-again) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=high+memory). \ No newline at end of file diff --git a/docs/products/compute/feature.png b/docs/products/compute/feature.png deleted file mode 100644 index 77ba869c522..00000000000 Binary files a/docs/products/compute/feature.png and /dev/null differ diff --git a/docs/products/compute/feature.svg b/docs/products/compute/feature.svg deleted file mode 100644 index 293a08adbdb..00000000000 --- a/docs/products/compute/feature.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/products/compute/kubernetes/_index.md b/docs/products/compute/kubernetes/_index.md deleted file mode 100644 index 83a2de086b9..00000000000 --- a/docs/products/compute/kubernetes/_index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Linode Kubernetes Engine -title_meta: "Linode Kubernetes Engine (LKE) Product Documentation" -description: "Linode Kubernetes Engine is a managed Kubernetes service that offers automatic backup and recovery and third party integration with popular k8s-related tools." -published: 2020-06-02 -modified: 2024-07-05 -linkTitle: Kubernetes -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "A managed Kubernetes service that enables you to easily control and scale your application's infrastructure." ---- - -The Linode Kubernetes Engine (LKE) is a managed container orchestration engine built on top of Kubernetes. LKE enables you to quickly deploy and manage your containerized applications without needing to build (and maintain) your own Kubernetes cluster. All LKE instances are equipped with a fully-managed control plane at no additional cost. Only pay for the worker nodes that run your application and any optional [NodeBalancers](/docs/products/networking/nodebalancers/) (load balancers) and [Block Storage volumes](/docs/products/storage/block-storage/) that your application uses. - -## Features - -- **Free fully-managed control plane:** The control plane on a Kubernetes cluster is responsible for managing the cluster's worker nodes, resources, and Pods. Basic control plane infrastructure is provided at no cost. An optional [high availability control plane](/docs/products/compute/kubernetes/guides/high-availability-control-plane/) is offered as a paid upgrade. -- **Automatic monitoring, backup, and recovery**: A snapshot of your cluster's metadata is backed up continuously and your cluster is automatically restored in the event of a failure. In addition, all of the control plane components are monitored and, if a failure is detected, they will automatically recover. -- **Kubernetes Dashboard:** All LKE installations include access to a [Kubernetes Dashboard installation](/docs/products/compute/kubernetes/guides/kubernetes-dashboard/#accessing-the-cluster-dashboard). -- **Third-party integration:** Harness the strong open source ecosystem of Kubernetes tooling. LKE supports integration with popular K8s-related tools, such as [Rancher](http://rancher.com), [Helm](http://helm.sh), [Operators](https://coreos.com/operators/), and more. - -## Availability - -The Linode Kubernetes Engine is available across [all regions](https://www.linode.com/global-infrastructure/). - -## Pricing - -The basic control plane infrastructure on LKE clusters is provided at no additional cost. An upgrade to a [high availability control plane](/docs/products/compute/kubernetes/guides/high-availability-control-plane/) is priced starting at $60/month per cluster, depending on region. All other resources consumed by the cluster are billed at the normal rate, including Compute Instances, NodeBalancers, and Block Storage volumes. Review the [Pricing](https://www.linode.com/pricing/) page for more information on those costs. - -## Technical Specifications - -- Equipped with a fully-managed control plane at no cost. While the control plane is fully-managed, the user is responsible for managing their deployment configuration and applications. -- Compute Instance plans supported: Dedicated CPU, Shared CPU, High Memory, and Premium CPU (excluding the 512 GB size for both Dedicated CPU and Premium CPU). See the [Pricing](https://www.linode.com/pricing/) page for the compute resources included in each plan. -- 40 Gbps inbound network bandwidth -- Free inbound network transfer -- Provisioning and management through [Cloud Manager](https://cloud.linode.com/), [Linode CLI](https://www.linode.com/products/cli/), or programmatically through the [Linode API](https://www.linode.com/products/linode-api/) \ No newline at end of file diff --git a/docs/products/compute/kubernetes/developers/index.md b/docs/products/compute/kubernetes/developers/index.md deleted file mode 100644 index ab0dfa2ea7b..00000000000 --- a/docs/products/compute/kubernetes/developers/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for LKE (Linode Kubernetes Engine)" -description: "Linode Kubernetes Engine instances are managed easily with developer tools like the Linode API or CLI as well as third party tools and integrations." -published: 2020-06-02 -modified: 2023-02-09 -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [Linode Kubernetes Engine Endpoint Collection](/docs/api/linode-kubernetes-engine-lke) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [create and manage LKE clusters](/docs/products/tools/cli/guides/linode-kubernetes-engine/). - -## Third Party Tools & Integrations - -**Terraform**: Terraform is an Infrastructure-as-code tool that includes management features for various types of Linode resources. Use Linode’s [official Terraform Provider](https://www.terraform.io/docs/providers/linode/r/volume.html) to [provision Linode Kubernetes Engine Clusters](/docs/guides/deploy-lke-cluster-using-terraform/). diff --git a/docs/products/compute/kubernetes/feature.png b/docs/products/compute/kubernetes/feature.png deleted file mode 100644 index 8edf04e79ac..00000000000 Binary files a/docs/products/compute/kubernetes/feature.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/feature.svg b/docs/products/compute/kubernetes/feature.svg deleted file mode 100644 index 0c0190352f6..00000000000 --- a/docs/products/compute/kubernetes/feature.svg +++ /dev/null @@ -1,6 +0,0 @@ - - Kubernetes - - - - \ No newline at end of file diff --git a/docs/products/compute/kubernetes/get-started/index.md b/docs/products/compute/kubernetes/get-started/index.md deleted file mode 100644 index a7add9d527b..00000000000 --- a/docs/products/compute/kubernetes/get-started/index.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with LKE (Linode Kubernetes Engine)" -description: "Get Started with the Linode Kubernetes Engine with this quick start guide. Install kubectl, create an LKE Cluster, and access and download your kubeconfig." -published: 2020-06-02 -modified: 2023-02-09 -tab_group_main: - weight: 20 -keywords: ["kubernetes", "linode kubernetes engine", "managed kubernetes", "lke", "kubernetes cluster"] -tags: ["linode platform","kubernetes","cloud manager"] -aliases: ['/kubernetes/deploy-and-manage-a-cluster-with-linode-kubernetes-engine-a-tutorial/','/applications/containers/kubernetes/how-to-deploy-a-cluster-with-lke/','/applications/containers/kubernetes/deploy-and-manage-a-cluster-with-linode-kubernetes-engine-a-tutorial/','/guides/deploy-and-manage-a-cluster-with-linode-kubernetes-engine-a-tutorial/'] ---- - -## Install kubectl - -**macOS:** - -Install via [Homebrew](https://brew.sh): - -```command -brew install kubernetes-cli -``` - -**Linux:** - -1. Download the latest kubectl release: - - ```command - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl - ``` - -1. Make the downloaded file executable: - - ```command - chmod +x ./kubectl - ``` - -1. Move the command into your PATH: - - ```command - sudo mv ./kubectl /usr/local/bin/kubectl - ``` - -**Windows:** - -Visit the [Kubernetes documentation](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows) for a link to the most recent Windows release. - -### Create an LKE Cluster - -1. Log into your [Cloud Manager](https://cloud.linode.com/) account. - -1. Select Kubernetes from the left navigation menu and then click **Create Cluster**. - -1. The **Create a Kubernetes Cluster** page appears. At the top of the page, you are required to select the following options: - - - In the **Cluster Label** field, provide a name for your cluster. The name must be unique between all of the clusters on your account. This name is how you identify your cluster in Cloud Manager’s Dashboard. - - - From the **Region** dropdown menu, select the **Region** where you would like your cluster to reside. - - - From the **Version** dropdown menu, select a Kubernetes version to deploy to your cluster. - -1. In the **Add Node Pools** section, select the [hardware resources](/docs/products/compute/compute-instances/plans/choosing-a-plan/#compute-resources) for the Linode worker node(s) that make up your LKE cluster. To the right of each plan, select the plus `+` and minus `-` to add or remove a Linode to a node pool one at time. - -1. Once you're satisfied with the number of nodes in a node pool, select **Add** to include it in your configuration. If you decide that you need more or fewer hardware resources after you deploy your cluster, you can always [edit your Node Pool](#edit-or-remove-existing-node-pools). - -1. Once a pool has been added to your configuration, it is listed in the **Cluster Summary** on the right-hand side of Cloud Manager detailing your cluster's hardware resources and monthly cost. Additional pools can be added before finalizing the cluster creation process by repeating the previous step for each additional pool. - -1. When you are satisfied with the configuration of your cluster, click the **Create Cluster** button on the right hand side of the screen. Your cluster's detail page appears, and your Node Pools are listed on this page. From this page, you can [edit your existing Node Pools](#edit-or-remove-existing-node-pools), [access your Kubeconfig file](#access-and-download-your-kubeconfig), and view an overview of your cluster's resource details. - -### Access and Download your kubeconfig - -1. To access your cluster's kubeconfig, log in to your Cloud Manager account and navigate to the **Kubernetes** section. - -1. From the Kubernetes listing page, click on your cluster's **more options ellipsis** and select **Download kubeconfig**. The file is saved to your computer's `Downloads` folder. - -1. Open a terminal shell and save your kubeconfig file's path to the `$KUBECONFIG` environment variable. In the example command, the kubeconfig file is located in the `Downloads` folder, but you should alter this line with this folder's location on your computer: - - ```command - export KUBECONFIG=~/Downloads/kubeconfig.yaml - ``` - -1. View your cluster's nodes using kubectl. - - ```command - kubectl get nodes - ``` - -## General Network and Firewall Information - -In an LKE cluster, some entities and services are only accessible from within that cluster while others are publicly accessible (reachable from the internet). - -**Private (accessible only within the cluster):** - -- Pod IPs, which use a per-cluster virtual network in the range 10.2.0.0/16 -- ClusterIP Services, which use a per-cluster virtual network in the range 10.128.0.0/16 - -**Public (accessible over the internet):** - -- NodePort Services, which listen on all Nodes with ports in the range 30000-32768 -- LoadBalancer Services, which automatically deploy and configure a NodeBalancer -- Any manifest which uses `hostNetwork`: true and specifies a port -- Most manifests which use `hostPort` and specify a port - -Exposing workloads to the public internet through the above methods can be convenient, but this can also carry a security risk. You may wish to manually install firewall rules on your cluster nodes. The following policies are needed to allow communication between the node pools and the control plane and block unwanted traffic: - -- **Allow kubelet health checks:** TCP port 10250 from 192.168.128.0/17 Accept -- **Allow Wireguard tunneling for kubectl proxy:** UDP port 51820 from 192.168.128.0/17 Accept -- **Allow Calico BGP traffic:** TCP port 179 from 192.168.128.0/17 Accept -- **Allow NodePorts for workload services:** TCP/UDP port 30000 - 32767 192.168.128.0/17 Accept -- **Block all other TCP traffic:** TCP All Ports All IPv4/All IPv6 Drop -- **Block all other UDP traffic:** UDP All Ports All IPv4/All IPv6 Drop -- **Block all ICMP traffic:** ICMP All Ports All IPv4/All IPv6 Drop -- IPENCAP for IP ranges 192.168.128.0/17 for internal communication between node pools and control plane. - -For additional information, [please see this community post](https://www.linode.com/community/questions/19155/securing-k8s-cluster). Future LKE release may allow greater flexibility for the network endpoints of these types of workloads. - -Please note, at this time, nodes should be removed from the Cloud Firewall configuration before removing/recycling of node pools within the Kubernetes configuration. Also, when adding node pools to the Kubernetes cluster, Cloud Firewall must be updated with the new node pool(s). Failure to add the new nodes creates a security risk. - -{{< note >}} -All new LKE clusters create a service named `Kubernetes` in the `default` namespace designed to ease interactions with the control plane. This is a standard service for LKE clusters. -{{< /note >}} - -## Next Steps - -Now that you have a running LKE cluster, you can start deploying workloads to it. Refer to our other guides to learn more: - -- [How to Deploy a Static Site on Linode Kubernetes Engine](/docs/guides/how-to-deploy-a-static-site-on-linode-kubernetes-engine/) -- [Create and Deploy a Docker Container Image to a Kubernetes Cluster](/docs/guides/deploy-container-image-to-kubernetes/) -- [Troubleshooting Kubernetes Guide](/docs/guides/troubleshooting-kubernetes/) -- [See all our Kubernetes guides](/docs/guides/kubernetes/) \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/_index.md b/docs/products/compute/kubernetes/guides/_index.md deleted file mode 100644 index 4836161ec31..00000000000 --- a/docs/products/compute/kubernetes/guides/_index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for LKE (Linode Kubernetes Engine)" -description: "A collection of guides to help you start deploying LKE clusters and using them to host your web applications and Cloud workloads" -published: 2020-06-02 -modified: 2023-02-09 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Create a Cluster](/docs/products/compute/kubernetes/guides/create-cluster/) - -- [Manage Kubernetes Clusters](/docs/products/compute/kubernetes/guides/manage-clusters/) - -- [Manage Node Pools](/docs/products/compute/kubernetes/guides/manage-node-pools/) - -- [High Availability Control Plane](/docs/products/compute/kubernetes/guides/high-availability-control-plane/) - -- [Upgrade a Cluster to a Newer Kubernetes Version](/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/) - -## Additional Management Options - -- [Manage a Cluster with kubectl](/docs/products/compute/kubernetes/guides/kubectl/) - -- [Manage an LKE Cluster Using the Kubernetes Dashboard](/docs/products/compute/kubernetes/guides/kubernetes-dashboard/) - -- [Deploy and Manage a Kubernetes Cluster with the Linode API](/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/) - -- [Deploy an LKE Cluster Using Pulumi](/docs/guides/deploy-lke-cluster-using-pulumi/) - -- [Deploy an LKE Cluster Using Terraform](/docs/guides/deploy-lke-cluster-using-terraform/) - -- [Reset Kubeconfig](/docs/products/compute/kubernetes/guides/reset-kubeconfig/) - -## Additional Guides - -- [Load Balancing on an LKE Cluster](/docs/products/compute/kubernetes/guides/load-balancing/) - -- [Secure a Cluster with User Permissions and RBAC](/docs/products/compute/kubernetes/guides/secure-a-cluster-with-rbac/) - -- [Drain Node Pools with kubectl](/docs/products/compute/kubernetes/guides/drain-node-pools/) - -- [Create a Custom CoreDNS Configuration](/docs/products/compute/kubernetes/guides/coredns-custom-config/) - -## Going Further - -### Kubernetes Basics - -- [A Beginners Guide to Kubernetes](/docs/guides/beginners-guide-to-kubernetes/) - -- [Advantages of Using Kubernetes](/docs/guides/kubernetes-use-cases/) - -- [Kubernetes Reference Guide](/docs/guides/kubernetes-reference/) - -- [Troubleshooting Kubernetes](/docs/guides/troubleshooting-kubernetes/) - -### Docker - -- [How to Setup a Private Docker Registry with Linode Kubernetes Engine and Object Storage](/docs/guides/how-to-setup-a-private-docker-registry-with-lke-and-object-storage/) - -- [Create and Deploy a Docker Container Image to a Kubernetes Cluster](/docs/guides/deploy-container-image-to-kubernetes/) - -- [How to Manager a Docker Cluster with Kubernetes](/docs/guides/manage-a-docker-cluster-with-kubernetes/) - -### Networking and Web - -- [Deploy NodeBalancers with the Linode Cloud Controller Manager](/docs/products/compute/kubernetes/guides/load-balancing/) - -- [How to Deploy NGINX Ingress on Linode Kubernetes Engine](/docs/guides/deploy-nginx-ingress-on-lke/) - -- [How to Deploy a Static Site on Linode Kubernetes Engine](/docs/guides/how-to-deploy-a-static-site-on-linode-kubernetes-engine/) - -- [How to Install Apps on Kubernetes with Helm 3](/docs/guides/how-to-install-apps-on-kubernetes-with-helm-3/) - -- [How to Install Apps on Kubernetes with Helm 2](/docs/guides/how-to-install-apps-on-kubernetes-with-helm-2/) - -### Third Party Integration - -- [How to Install Drupal with Linode Kubernetes Engine](/docs/guides/how-to-install-drupal-with-linode-kubernetes-engine/) - -- [How to Deploy Linkerd 2 with Linode Kubernetes Engine](/docs/guides/how-to-deploy-linkerd-with-linode-kubernetes-engine/) - -- [Using Octant With Kubernetes - A Tutorial](/docs/guides/using-octant-with-kubernetes-a-tutorial/) - -- [How to Deploy the Elastic Stack on Kubernetes](/docs/guides/how-to-deploy-the-elastic-stack-on-kubernetes/) - -- [How to Deploy Istio with Kubernetes](/docs/guides/how-to-deploy-istio-with-kubernetes/) - -- [How to Deploy Kubernetes on Linode with Rancher 2.x](/docs/guides/how-to-deploy-kubernetes-on-linode-with-rancher-2-x/) - -- [Deploy Minio on Kubernetes using Kubespray and Ansible](/docs/guides/deploy-minio-on-kubernetes-using-kubespray-and-ansible/) - -- [How to Migrate From k8s-alpha CLI to Terraform](/docs/guides/how-to-migrate-from-k8s-alpha-to-terraform/) \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/coredns-custom-config/index.md b/docs/products/compute/kubernetes/guides/coredns-custom-config/index.md deleted file mode 100644 index 00746e493ee..00000000000 --- a/docs/products/compute/kubernetes/guides/coredns-custom-config/index.md +++ /dev/null @@ -1,186 +0,0 @@ ---- -slug: coredns-custom-config -title: "Create A Custom CoreDNS Configuration" -description: "Learn how to create a custom CoreDNS configuration for your cluster hosted through LKE." -published: 2024-03-12 -aliases: ['/guides/create-a-custom-coredns-configuration-in-linode-kubernetes-engine/'] -keywords: ['CoreDNS','Corefile','DNS'] -external_resources: -- '[CoreDNS](https://coredns.io/)' -- '[Corefile Explained](https://coredns.io/2017/07/23/corefile-explained/)' -- '[Server Block](https://coredns.io/manual/configuration/#server-blocks)' ---- - -## CoreDNS In LKE - -Linode Kubernetes Engine (LKE) provides out of the box intra-cluster domain name resolution via [CoreDNS](https://coredns.io/), the *DNS server*. Every new cluster is provided with a minimal, default CoreDNS configuration, which can be customized to suit your workload's needs. - -## Before You Begin - -This guide assumes you have a working [Linode Kubernetes Engine (LKE)](https://www.linode.com/products/kubernetes/) cluster running on Linode and you are familiar with Corefile, the *CoreDNS configuration file*. - -1. [Install the Kubernetes CLI](/docs/products/compute/kubernetes/guides/kubectl/) (`kubectl`) on the local computer. - -1. Follow the instructions in [Deploying and Managing a Cluster with Linode Kubernetes Engine Tutorial](/docs/products/compute/kubernetes/) to connect to an LKE cluster. - - {{< note >}} - Ensure that the `KUBECONFIG` context is [persistent](/docs/products/compute/kubernetes/guides/kubectl/#persist-the-kubeconfig-context) - {{< /note >}} - -1. Ensure that Kubernetes CLI is using the right cluster context. Run the `get-contexts` subcommand to check: - - ```command - kubectl config get-contexts - ``` - -## Default CoreDNS Configuration - -You can view your cluster's default CoreDNS configuration by using the following command: - -```command -kubectl get configmap -n kube-system coredns-base -o yaml -``` - -The output will resemble the following: - -```output -apiVersion: v1 -data: - Corefile: | - .:53 { - errors - health { - lameduck 5s - } - ready - kubernetes cluster.local in-addr.arpa ip6.arpa { - pods insecure - fallthrough in-addr.arpa ip6.arpa - ttl 30 - } - prometheus :9153 - forward . /etc/resolv.conf { - max_concurrent 1000 - } - cache 30 - loop - reload - loadbalance - import custom/*.include - } - import custom/*.server -kind: ConfigMap -metadata: - name: coredns-base - namespace: kube-system - [...] -``` - -The default CoreDNS configuration is located under the `Corefile` field in the above ConfigMap. - -{{< note type="warning" >}} -Do not modify the `kube-system/coredns-base` ConfigMap that comes with your LKE cluster. It may be restored to its original state at any time and without notice. -{{< /note >}} - -## Custom CoreDNS Configuration - -The default CoreDNS configuration leverages the CoreDNS [`import`](https://coredns.io/plugins/import/) plugin to enable customization. Configuration extensions are added through fields in the `kube-system/coredns-custom` ConfigMap: - -```yaml - apiVersion: v1 - kind: ConfigMap - metadata: - name: coredns-custom - namespace: kube-system - data: - sample.include: | - # Added to the .:53 default Server Block. - sample_a.server: | - # Additional Server Block. - sample_b.server: | - # Another Server Block. -``` - -- Fields suffixed with `.include` are added to the default [*Server Block*](https://coredns.io/manual/configuration/#server-blocks). -- Fields suffixed with `.server` are added as new Server Blocks. - -### Create A Custom Configuration - -1. Create a manifest for a ConfigMap named `coredns-custom` in the `kube-system` namespace, with the desired configuration. For the purpose of this guide, an example custom configuration is used. Save it as the `coredns-custom.yaml` file. - - ```yaml - apiVersion: v1 - kind: ConfigMap - metadata: - name: coredns-custom - namespace: kube-system - data: - # Log all incoming DNS queries. - log.include: | - log - # Private DNS resolution example. Handles FQDN resolutions for *.mydomain.com - # Replace with the target IP address. - mydomain.server: | - mydomain.com.:53 { - forward . - } - ``` - -2. Apply the above ConfigMap manifest: - - ```command - kubectl apply -f coredns-custom.yaml - ``` - - {{< note >}} - CoreDNS will attempt to reload the configuration within 45 seconds after the last modification. - {{< /note >}} - -3. Ensure the custom configuration has been loaded: - - ```command - kubectl logs -n kube-system -l k8s-app=kube-dns - ``` - - For the custom configuration shown above, the output will resemble the following, after the reload is complete: - - ```output - [INFO] Reloading - [INFO] plugin/health: Going into lameduck mode for 5s - [INFO] 127.0.0.1:60399 - 40866 "HINFO IN 349145763287755047.2816822520842364744. udp 56 false 512" NXDOMAIN qr,rd,ra 131 0.000980597s - [INFO] plugin/reload: Running configuration SHA512 = 868c96ccca274c442fefc8db8e98b1f4a5cd05c655db1d990803d4019e5d28af101b24a78f85bae7ab3a3f8894f2791fda9d2b4d9c6ae1aa942080e1a88ce3e6 - [INFO] Reloading complete - ``` - - The custom configuration is now in effect. - -{{< note >}} -The `kube-system/coredns-custom` ConfigMap is persistent and will not be affected by LKE maintenance operations. -{{< /note >}} - -### Restore The Defaults - -1. To restore the default CoreDNS configuration, simply delete the `coredns-custom` ConfigMap: - - ```command - kubectl delete -n kube-system coredns-custom - ``` - -1. Check the logs to make sure the reload was successful: - - ```command - kubectl logs -n kube-system -l k8s-app=kube-dns - ``` - - The output looks similar to the one emitted after applying the custom configuration. - - ```output - [INFO] Reloading - [INFO] plugin/health: Going into lameduck mode for 5s - [WARNING] No files matching import glob pattern: custom/*.include - [WARNING] No files matching import glob pattern: custom/*.server - [INFO] plugin/reload: Running configuration SHA512 = 591cf328cccc12bc490481273e738df59329c62c0b729d94e8b61db9961c2fa5f046dd37f1cf888b953814040d180f52594972691cd6ff41be96639138a43908 - [INFO] Reloading complete - ``` - - The emitted warning messages are now to be expected, and should not be a concern. diff --git a/docs/products/compute/kubernetes/guides/create-cluster/create-cluster-add-node-pools.png b/docs/products/compute/kubernetes/guides/create-cluster/create-cluster-add-node-pools.png deleted file mode 100644 index 1201238a691..00000000000 Binary files a/docs/products/compute/kubernetes/guides/create-cluster/create-cluster-add-node-pools.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/create-cluster/create-cluster-enable-ha.png b/docs/products/compute/kubernetes/guides/create-cluster/create-cluster-enable-ha.png deleted file mode 100644 index 7319e890c50..00000000000 Binary files a/docs/products/compute/kubernetes/guides/create-cluster/create-cluster-enable-ha.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/create-cluster/index.md b/docs/products/compute/kubernetes/guides/create-cluster/index.md deleted file mode 100644 index cbe1abc29b5..00000000000 --- a/docs/products/compute/kubernetes/guides/create-cluster/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Create a Cluster -description: "Learn how to create a Kubernetes cluster on the Linode Kubernetes Engine (LKE)." -published: 2023-02-09 -aliases: ['/products/compute/kubernetes/guides/create-lke-cluster/'] -tags: ["managed hosting"] ---- - -This guide walks you through creating an LKE (Linode Kubernetes Engine) cluster through Cloud Manager. - -1. [Open the Create Kubernetes Cluster Form in Cloud Manager](#open-the-create-kubernetes-cluster-form-in-cloud-manager) -1. [Set the Label](#set-the-label) -1. [Select a Region](#select-a-region) -1. [Choose a Kubernetes Version](#choose-a-kubernetes-version) -1. [Add Node Pools](#add-node-pools) -1. [Optionally Enable High Availability](#optionally-enable-high-availability) -1. [Deploy the Cluster](#deploy-the-cluster) - -## Open the Create Kubernetes Cluster Form in Cloud Manager - -Log in to [Cloud Manager](https://cloud.linode.com/) and select **Kubernetes** from the left navigation menu. Click the **Create Cluster** button. This opens the *[Kubernetes Create Cluster](https://cloud.linode.com/kubernetes/create)* form. - -## Set the Label - -Within the **Cluster Label** field, enter the label you wish to use. This label lets you identify it from within Cloud Manager, Linode CLI, and Linode API. The label must be alphanumeric, between 3 and 32 characters, and unique from other cluster labels on your account. - -## Select a Region - -Select the **region** where the LKE cluster will reside. Regions correspond with individual data centers, each located in a different geographical area. All resources attached to your cluster are deployed in the selected region, including nodes (Compute Instances) in the Node Pools, volumes (Block Storage Volumes), and load balancers (NodeBalancers). If you haven't yet deployed Compute Instances or chosen a region, select the region closest to you and/or your customers. This helps reduce latency and can make a significant impact in connection speeds and quality. - -- [Global Infrastructure](https://www.linode.com/global-infrastructure/) -- [Speed Tests for Data Centers](https://www.linode.com/speed-test/) -- [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) - -## Choose a Kubernetes Version - -Next, select the **Kubernetes Version** you wish to use from the corresponding dropdown list. Only Kubernetes versions that have been approved for LKE are listed. As new versions of Kubernetes are released (and older ones are deprecated), upgrade paths are made available. - -## Add Node Pools - -Each LKE cluster is created with *at least* one node pool. Node pools are made up of individual worker nodes, which are run on top of Compute Instances. - -{{< note >}} -Currently, the available plan types for LKE worker nodes include [Shared CPU](/docs/products/compute/compute-instances/plans/choosing-a-plan/#shared-cpu-instances), [Dedicated CPU](/docs/products/compute/compute-instances/plans/choosing-a-plan/#dedicated-cpu-instances), and [High Memory](/docs/products/compute/compute-instances/plans/choosing-a-plan/#high-memory-instances). 1 GB Shared CPU Compute Instances Nanodes (also known as *nanodes*) are not available. -{{< /note >}} - -In the **Add Node Pools** section, locate the plan type you wish to use for your first node pool. Enter the number of worker nodes that you wish to be included in the node pool and click the **Add** button to add that pool to your cluster configuration. You can repeat this process to add additional node pools if desired. Node pools can also be added, resized, and deleted after the cluster has been created. - -![Screenshot of the Add Node Pools section during cluster creation](create-cluster-add-node-pools.png) - -## Optionally Enable High Availability - -LKE's [HA (high availability) control plane](/docs/products/compute/kubernetes/guides/high-availability-control-plane/) feature is a paid add-on that provides an additional layer of redundancy to the Kubernetes cluster. It creates replicas of the control plane components, eliminating a single point of failure for your cluster and providing a guaranteed uptime of 99.99%. To enable this feature, check the **Enable HA Control Plane** box in the Cluster Summary section. The HA control plane can also be enabled any time after your cluster has been created. - -![Screenshot of the Enable HA toggle during cluster creation](create-cluster-enable-ha.png) - -{{< note type="warning" >}} -Once the high availability control plane feature has been enabled, it is not possible to remove this feature and *downgrade* to a non-HA control plane. -{{< /note >}} - -## Deploy the Cluster - -Review your cluster's configuration within the **Cluster Summary** section. This should list each Node Pool that has been added, display the HA control plane selection, and list the monthly cost associated with this cluster. When you are satisfied with the configuration of your cluster, click the **Create Cluster** button. Your cluster's detail page appears while your cluster is being created. From this page, you can [edit your existing Node Pools](/docs/products/compute/kubernetes/guides/manage-node-pools/), [access your Kubeconfig file](/docs/products/compute/kubernetes/guides/kubectl/), and view an overview of your cluster's resource details. \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/deploy-and-manage-cluster-copy.png b/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/deploy-and-manage-cluster-copy.png deleted file mode 100644 index d51d4c61a95..00000000000 Binary files a/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/deploy-and-manage-cluster-copy.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/index.md b/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/index.md deleted file mode 100644 index c763b887515..00000000000 --- a/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/index.md +++ /dev/null @@ -1,739 +0,0 @@ ---- -title: "Deploy and Manage a Linode Kubernetes Engine (LKE) Cluster with the Linode API" -title_meta: "Deploy and Manage a Kubernetes Cluster with the Linode API" -description: "Learn how to deploy a cluster on Linode Kubernetes Engine (LKE) through the Linode API." -og_description: "The Linode Kubernetes Engine (LKE) is a fully-managed container orchestration engine for deploying and managing containerized applications and workloads. This guide shows you how to use the Linode API to Deploy and Manage an LKE Cluster." -published: 2019-11-11 -modified: 2024-06-21 -keywords: ["kubernetes", "linode kubernetes engine", "managed kubernetes", "lke", "kubernetes cluster"] -image: deploy-and-manage-cluster-copy.png -aliases: ['/applications/containers/kubernetes/deploy-and-manage-lke-cluster-with-api-a-tutorial/','/kubernetes/deploy-and-manage-lke-cluster-with-api-a-tutorial/','/guides/deploy-and-manage-lke-cluster-with-api-a-tutorial/'] -tags: ["kubernetes"] ---- - -An LKE cluster can be deployed in one of several ways: - -- Via [Cloud Manager](/docs/products/compute/kubernetes/guides/create-cluster/) -- With the Linode API (as presented in this guide) -- With the [Linode CLI](/docs/products/tools/cli/get-started/) - -These Linode-provided interfaces can be used to create, delete, and update the structural elements of your cluster, including: - -- The number of nodes that make up a cluster's node pools. -- The region where your node pools are deployed. -- The hardware resources for each node in your node pools. -- The Kubernetes version deployed to your cluster's Master node and worker nodes. - -The [Kubernetes API](/docs/guides/beginners-guide-to-kubernetes-part-1-introduction/#kubernetes-api) and [kubectl](/docs/guides/beginners-guide-to-kubernetes-part-1-introduction/#kubectl) are the primary ways you interact with your LKE cluster once it's been created. These tools can be used to configure, deploy, inspect, and secure your Kubernetes workloads, deploy applications, create services, configure storage and networking, and define controllers. - -{{< note >}} -The Linode API and the Kubernetes API are two separate interfaces, and both are mentioned in this article. The Linode API lets you manipulate your Linode infrastructure, while the Kubernetes API lets you manage the software objects running in your cluster. -{{< /note >}} - -## In this Guide - -This guide covers how to use the Linode API to: - -- [Create an LKE cluster](#create-an-lke-cluster) -- [Connect kubectl to your LKE cluster](#connect-to-your-lke-cluster) -- [Inspect your LKE cluster](#inspect-your-lke-cluster) -- [Modify an existing LKE cluster](#modify-your-lke-cluster) -- [Delete an LKE cluster](#delete-an-lke-cluster) - -## Before You Begin - -1. [Familiarize yourself with the Linode Kubernetes Engine service](https://www.linode.com/products/kubernetes/). This information helps you understand the benefits and limitations of LKE. - -1. [Create an API Token](/docs/products/platform/accounts/guides/manage-api-tokens/#create-an-api-token). You need this to access the LKE service. - -1. [Install kubectl](#install-kubectl) on your computer. You use kubectl to interact with your cluster once it's deployed. - -1. If you are new to Kubernetes, refer to our [A Beginner's Guide to Kubernetes](/docs/guides/beginners-guide-to-kubernetes/) series to learn about general Kubernetes concepts. This guide assumes a general understanding of core Kubernetes concepts. - -### Install kubectl - -{{% content "how-to-install-kubectl" %}} - -## Create an LKE Cluster - -| Required Parameters | Description | -| -- | -- | -| `region` | The data center region where your cluster is deployed. Currently, `us-central` is the only available region for LKE clusters. | -| `label` | A human readable name to identify your cluster. This must be unique. If no label is provided, one is assigned automatically. Labels must start with an alpha [a-z][A-Z] character, must only consist of alphanumeric characters and dashes, and must not contain two dashes in a row. -| `node_pools` | The collections of Compute Instances that serve as the worker nodes in your LKE cluster. | -| `k8s_version` | The desired version of Kubernetes for this cluster. | - -{{< note >}} -The available plan types for LKE worker nodes are [Shared](/docs/products/compute/compute-instances/plans/choosing-a-plan/#shared-cpu-instances), [Dedicated CPU](/docs/products/compute/compute-instances/plans/choosing-a-plan/#dedicated-cpu-instances), and [High Memory](/docs/products/compute/compute-instances/plans/choosing-a-plan/#high-memory-instances) plans. -{{< /note >}} - -1. To create an LKE Cluster, send a `POST` request to the `/lke/clusters` endpoint. The example below displays all possible request body parameters. Note that `tags` is an optional parameter. - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "label": "cluster12345", - "region": "us-central", - "k8s_version": "1.16", - "tags": ["ecomm", "blogs"], - "node_pools": [ - { "type": "g6-standard-2", "count": 2}, - { "type": "g6-standard-4", "count": 3} - ] - }' https://api.linode.com/v4/lke/clusters - ``` - - You receive a response similar to: - - ```output - {"k8s_version": "1.16", "updated": "2019-08-02T17:17:49", "region": "us-central", "tags": ["ecomm", "blogs"], "label": "cluster12345", "id": 456, "created": "2019-22-02T17:17:49"}% - ``` - -1. Make note of your cluster's ID, as you need it to continue to interact with your cluster in the next sections. In the example above, the cluster's ID is `"id": 456`. You can also access your cluster's ID by [listing all LKE Clusters](#list-lke-clusters) on your account. - - {{< note >}} - Each Linode account has a limit to the number of resources they can deploy. This includes services, like Compute Instances, NodeBalancers, Block Storage, etc. If you run into issues deploying the number of nodes you designate for a given cluster's node pool, you may have run into a limit on the number of resources allowed on your account. Contact [Linode Support](/docs/products/platform/get-started/guides/support/) if you believe this may be the case. - {{< /note >}} - -### Connect to your LKE Cluster - -Now that your LKE cluster is created, you can access and manage your cluster using kubectl on your computer. This gives you the ability to interact with the Kubernetes API, and to create and manage [Kubernetes objects](/docs/guides/beginners-guide-to-kubernetes-part-3-objects/) in your cluster. - -To communicate with your LKE cluster, kubectl requires a copy of your cluster's [*kubeconfig*](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/). In this section, you access the contents of your kubeconfig using the Linode API and then set up kubectl to communicate with your LKE cluster. - -1. Access your LKE cluster's kubeconfig file by sending a `GET` request to the `/lke/clusters/{clusterId}/kubeconfig` endpoint. Ensure you replace `12345` with your cluster's ID that you recorded in the previous section: - - ```command - curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/lke/clusters/12345/kubeconfig - ``` - - The API returns a [base64](https://en.wikipedia.org/wiki/Base64) encoded string (a useful format for automated pipelines) representing your kubeconfig. Your output resembles the following: - - ```output - {"kubeconfig": "YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VONVJFTkRRV0pEWjBGM1NVSkJaMGxDUVVSQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlJFRldUVkpOZDBWUldVUldVVkZFUlhkd2NtUlhTbXdLWTIwMWJHUkhWbnBOUWpSWVJGUkZOVTFFWjNkTmFrVXpUVlJqTVUxV2IxaEVWRWsx ... 0TFMwdExRbz0K"}% - ``` - -1. Copy the `kubeconfig` field's value from the response body, since you need it in the next step. - - {{< note >}} - Make sure you only copy the long string inside the quotes following `"kubeconfig":` in your output. Do not copy the curly braces or anything outside of them. You receive an error if you use the full output in later steps. - {{< /note >}} - -1. Save the base64 kubeconfig to an environment variable: - - ```command - KUBE_VAR='YXBpVmVyc2lvbjogdjEK ... 0TFMwdExRbz0K' - ``` - -1. Navigate to your computer's `~/.kube` directory. This is where kubectl looks for kubeconfig files, by default. - - ```command - cd ~/.kube - ``` - -1. Create a directory called `configs` within `~/.kube`. You can use this directory to store your kubeconfig files. - - ```command - mkdir configs - cd configs - ``` - -1. Decode the contents of `$KUBE_VAR` and save it to a new YAML file: - - ```command - echo $KUBE_VAR | base64 -D > cluster12345-config.yaml - ``` - - {{< note >}} - The YAML file that you decode to (`cluster12345-config.yaml` here) can have any name of your choosing. - {{< /note >}} - -1. Add the kubeconfig file to your `$KUBECONFIG` environment variable. - - ```command - export KUBECONFIG=cluster12345-config.yaml - ``` - -1. Verify that your cluster is selected as kubectl's current context: - - ```command - kubectl config get-contexts - ``` - -1. View the contents of the configuration: - - ```command - kubectl config view - ``` - - {{< note >}} - You can also access a decoded version of your kubeconfig file in [Cloud Manager](/docs/products/compute/kubernetes/guides/kubectl/). - {{< /note >}} - -1. View all nodes in your LKE cluster using kubectl: - - ```command - kubectl get nodes - ``` - - Your output resembles the following example, but varies depending on your own cluster's configurations. - - ```output - NAME STATUS ROLES AGE VERSION - lke166-193-5d44703cd092 Ready none 2d22h v1.14.0 - lke166-194-5d44703cd780 Ready none 2d22h v1.14.0 - lke166-195-5d44703cd691 Ready none 2d22h v1.14.0 - lke166-196-5d44703cd432 Ready none 2d22h v1.14.0 - lke166-197-5d44703cd211 Ready none 2d22h v1.14.0 - ``` - - Now that you are connected to your LKE cluster, you can begin using kubectl to deploy applications, [inspect and manage](/docs/guides/troubleshooting-kubernetes/#kubectl-get) cluster resources, and [view logs](/docs/guides/troubleshooting-kubernetes/#kubectl-logs). - -### Persist the Kubeconfig Context - -If you create a new terminal window, it does not have access to the context that you specified using the previous instructions. This context information can be made persistent between new terminals by setting the [`KUBECONFIG` environment variable](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable) in your shell's configuration file. - -{{< note >}} -If you are using Windows, review the [official Kubernetes documentation](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable) for how to persist your context. -{{< /note >}} - -These instructions persist the context for users of the Bash terminal. They are similar for users of other terminals: - -1. Open up your Bash profile (e.g. `~/.bash_profile`) in the text editor of your choice and add your configuration file to the `$KUBECONFIG` PATH variable. - - If an `export KUBECONFIG` line is already present in the file, append to the end of this line as follows; if it is not present, add this line to the end of your file: - - ```command - export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config:$HOME/.kube/configs/cluster12345-config.yaml - ``` - - {{< note >}} - Alter the `$HOME/.kube/configs/cluster12345-config.yaml` path in the above line with the name of the file you decoded to in the previous section. - {{< /note >}} - -1. Close your terminal window and open a new window to receive the changes to the `$KUBECONFIG` variable. - -1. Use the `config get-contexts` command for `kubectl` to view the available cluster contexts: - - ```command - kubectl config get-contexts - ``` - - You should see output similar to the following: - - ```output - CURRENT NAME CLUSTER AUTHINFO NAMESPACE - * kubernetes-admin@kubernetes kubernetes kubernetes-admin - ``` - -1. If your context is not already selected, (denoted by an asterisk in the `current` column), switch to this context using the `config use-context` command. Supply the full name of the cluster (including the authorized user and the cluster): - - ```command - kubectl config use-context kubernetes-admin@kubernetes - ``` - - You should see output like the following: - - ```output - Switched to context "kubernetes-admin@kubernetes". - ``` - -1. You are now ready to interact with your cluster using `kubectl`. You can test the ability to interact with the cluster by retrieving a list of Pods in the `kube-system` namespace: - - ```command - kubectl get pods -n kube-system - ``` - -## Inspect your LKE Cluster - -Once you have created an LKE Cluster, you can access information about its structural configuration using the Linode API. - -### List LKE Clusters - -To view a list of all your LKE clusters, send a `GET` request to the `/lke/clusters` endpoint. - -```command -curl -H "Authorization: Bearer $TOKEN" https://api.linode.com/v4/lke/clusters -``` - -The returned response body displays the number of clusters deployed to your account and general details about your LKE clusters: - -```output -{"results": 2, "data": [{"updated": "2019-08-02T17:17:49", "region": "us-central", "id": 456, "k8s_version": "1.16", "label": "cluster-12345", "created": "2019-08-02T17:17:49", "tags": ["ecomm", "blogs"]}, {"updated": "2019-08-05T17:00:04", "region": "us-central", "id": 789, "k8s_version": "1.16", "label": "cluster-56789", "created": "2019-08-05T17:00:04", "tags": ["ecomm", "marketing"]}], "pages": 1, "page": 1}% -``` - -### View an LKE Cluster - -You can use the Linode API to access details about an individual LKE cluster. You need your cluster's ID to access information about this resource. If you don't know your cluster's ID, see the [List LKE Clusters](#list-lke-clusters) section. - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | - -To view your LKE cluster, send a `GET` request to the `/lke/clusters/{clusterId}` endpoint. In this example, ensure you replace `12345` with your cluster's ID: - -```command -curl -H "Authorization: Bearer $TOKEN" https://api.linode.com/v4/lke/clusters/12345 -``` - -Your output resembles the following: - -```output -{"created": "2019-08-02T17:17:49", "updated": "2019-08-02T17:17:49", "k8s_version": "1.16", "tags": ["ecomm", "blogs"], "label": "cluster-12345", "id": 456, "region": "us-central"}% -``` - -### List a Cluster's Node Pools - -A node pool consists of one or more Compute Instances (worker nodes). Each node in the pool has the same plan type. Your LKE cluster can have several node pools. Each pool is assigned its own plan type and number of nodes. To view a list of an LKE cluster's node pools, you need your cluster's ID. If you don't know your cluster's ID, see the [List LKE Clusters](#list-lke-clusters) section. - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | - -To list your cluster's node pools, send a `GET` request to the `/lke/clusters/{clusterId}/pools` endpoint. In this example, replace `12345` with your cluster's ID: - -```command -curl -H "Authorization: Bearer $TOKEN" https://api.linode.com/v4/lke/clusters/12345/pools -``` - -The response body includes information on each node pool's pool ID, Compute Instance type, and node count; and each node's individual ID and status. - -```output -{"pages": 1, "page": 1, "data": [{"count": 2, "id": 193, "type": "g6-standard-2", "linodes": [{"id": "13841932", "status": "ready "}, {"id": "13841933", "status": "ready"}]}, {"count": 3, "id": 194, "type": "g6-standard-4", "linodes": [{"id": "13841934", "status": "ready"}, {"id": "13841935", "status": "ready"}, {"id": "13841932", "status": "ready"}]}], "results": 2}% -``` - -### View a Node Pool - -You can use the Linode API to access details about a specific node pool in an LKE cluster. You need your cluster’s ID and node pool ID to access information about this resource. To retrieve your cluster’s ID, see the [List LKE Clusters](#list-lke-clusters) section. To find a node pool's ID, see the [List a Cluster's Node Pools](#list-a-cluster-s-node-pools) section. - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | -| `poolId` | ID of the LKE node pool to lookup. | - -To view a specific node pool, send a `GET` request to the `/lke/clusters/{clusterId}/pools/{poolId}` endpoint. In this example, replace `12345` with your cluster's ID and `456` with the node pool's ID: - -```command -curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/lke/clusters/12345/pools/456 -``` - -The response body provides information about the number of nodes in the node pool, the node pool's ID, and type. You also retrieve information about each individual node in the node pool, including the Linode's ID and status. - -```output -{"count": 2, "id": 193, "type": "g6-standard-2", "linodes": [{"id": "13841932", "status": "ready"}, {"id": "13841933", "status": "ready"}]}% -``` - -{{< note >}} -If desired, you can use your node pool's Compute Instances ID(s) to get more details about each node in the pool. Send a `GET` request to the `/linode/indstances/{linodeId}` endpoint. In this example, ensure you replace `13841932` with your Linode's ID. - -```command -curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/linode/instances/13841932 -``` - -Although you have access to your cluster's nodes, it is recommended that you only interact with your nodes via the Linode's LKE interfaces (like the LKE endpoints in Linode's API, or the Kubernetes section in Cloud Manager), or via the Kubernetes API and kubectl. -{{< /note >}} - -## Modify your LKE Cluster - -Once an LKE cluster is created, you can modify the cluster's label, node pools, and tags. In this section you learn how to modify each of these parts of your cluster. - -### Update your LKE Cluster Label - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | - -To update your LKE cluster's label, send a `PUT` request to the `/lke/clusters/{clusterId}` endpoint. In this example, ensure you replace `12345` with your cluster's ID: - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "label": "updated-cluster-name" - }' https://api.linode.com/v4/lke/clusters/12345 -``` - -The response body displays the updated cluster label: - -```output -{"created": "2019-08-02T17:17:49", "updated": "2019-08-05T19:11:19", "k8s_version": "1.16", "tags": ["ecomm", "blogs"], "label": "updated-cluster-name", "id": 456, "region": "us-central"}% -``` - -### Add a Node Pool to your LKE Cluster - -A node pool consists of one or more Compute Instances (worker nodes). Each node in the pool has the same plan type and is identical to each other. Your LKE cluster can have several node pools, each pool with its own plan type and number of nodes. - -You need your cluster's ID in order to add a node pool to it. If you don’t know your cluster’s ID, see the [List LKE Clusters](#list-lke-clusters) section. - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | -| `type` | The Compute Instance plan type to use for all the nodes in the pool. Compute Instance plans designate the type of hardware resources applied to your instance. | -| `count` | The number of nodes to include in the node pool. Each node has the same plan type. | - -To add a node pool to an existing LKE cluster, send a `POST` request to the `/lke/clusters/{clusterId}/pools` endpoint. The request body must include the `type` and `count` parameters. In the URL of this example, ensure you replace `12345` with your own cluster's ID: - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "type": "g6-standard-1", - "count": 5 - }' https://api.linode.com/v4/lke/clusters/12345/pools -``` - -The response body resembles the following: - -```output -{"count": 5, "id": 196, "type": "g6-standard-1", "linodes": [{"id": "13841945", "status": "ready"}, {"id": "13841946", "status": "ready"}, {"id": "13841947", "status": "ready"}, {"id": "13841948", "status": "ready"}, {"id": "13841949", "status": "ready"}]}% -``` - -{{< note >}} -Each Linode account has a limit to the number of resources they can deploy. This includes services, like Compute Instances, NodeBalancers, Block Storage, etc. If you run into issues deploying the number of nodes you designate for a given cluster's node pool, you may have run into a limit on the number of resources allowed on your account. Contact [Linode Support](/docs/products/platform/get-started/guides/support/) if you believe this may be the case. -{{< /note >}} - -### Add Labels and Taints to your LKE Node Pools - -When creating or updating an LKE node pool, you can optionally add custom labels and taints to all nodes using the `labels` and `taints` parameters. Defining labels and taints on a per-pool basis through the Linode API has several benefits compared to managing them manually with `kubectl`, including: - -- Custom labels and taints automatically apply to new nodes when a pool is recycled or scaled up (either manually or through autoscaling). -- LKE ensures that nodes have the desired taints in place before they become ready for pod scheduling. This prevents newly created nodes from attracting workloads that don't have the intended tolerations. - -The following cURL command provides an example of using the Linode API to create a new node pool with a custom taint and label. If you are copying this command to run on your own LKE cluster, replace {{< placeholder "12345" >}} with the ID of your LKE cluster. - -```command {title="Linode API cURL example for creating a new node pool:"} -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "type": "g6-standard-1", - "count": 3, - "taints": [ - { - "key": "myapp.io/app", - "value": "test", - "effect": "NoSchedule" - } - ], - "labels": { - "myapp.io/app": "test" - } - }' https://api.linode.com/v4/lke/clusters/{{< placeholder "12345" >}}/pools -``` - -In the above command, labels are defined in the `labels` field as key-value pairs within a single object. Taints are defined as an array of objects in the `taints` field. - -- **Labels:** The `labels` field expects an object with one or more key-value pairs. These key-value pairs should adhere to the specifications and restrictions outlined in the Kubernetes [Labels and Selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) documentation. - - ```command - "labels": { - "myapp.io/app": "test" - } - ``` - - - **Key:** A label's key must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores. Optionally, the key can begin with a valid DNS subdomain prefix. - - - If the key does not begin with a DNS subdomain prefix, the maximum key length is 63 characters. Example: `my-app`. - - If the key begins with a DNS subdomain prefix, it must separate the prefix and the rest of the label with a forward slash (`/`). In this case, the maximum *total* length of the key is 128 characters, with up to 62 characters after the forward slash. The prefix must adhere to RFC 1123 DNS subdomain restrictions. Example: `example.com/my-app`. - - - **Value:** Must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 63 characters in length. - -- **Taints:** The `taints` field expects an array of one or more objects, adhering to the guidelines outlined in the Kubernetes [Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) documentation. A taint consists of a `key`, `value`, and `effect`: - - ```command - "taints": [ - { - "key": "myapp.io/app", - "value": "test", - "effect": "NoSchedule" - } - ] - ``` - - - **Key:** The `key` value must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 253 characters. Optionally, the `key` value can begin with a DNS subdomain prefix and a single slash (`/`), like `example.com/my-app`. In this case the maximum allowed length of the domain prefix is 253 characters. - - **Value:** The `value` key is optional. If given, it must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 63 characters. - - **Effect:** The `effect` value must be NoSchedule, PreferNoSchedule, or NoExecute. - -{{< note >}} -Taint and label values cannot contain `kubernetes.io` or `linode.com` domains as these are reserved for LKE's own usage. -{{< /note >}} - -You can also add, edit, or remove labels and taints on existing node pools using the Linode API. The example cURL command below demonstrates how to remove taints and update the labels on an existing node pool. If you are copying this command to run on your own LKE cluster, replace {{< placeholder "12345" >}} with the ID of your LKE cluster and {{< placeholder "196" >}} with the ID of your node pool. - -```command {title="Linode API cURL example for updating a node pool:"} -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "type": "g6-standard-1", - "count": 3, - "taints": [], - "labels": { - "myapp.io/app": "prod", - "example": "foo", - } - }' https://api.linode.com/v4/lke/clusters/{{< placeholder "12345" >}}/pools/{{< placeholder "196" >}} -``` - -The above command results in the following changes to the node pool, assuming the labels and taints were originally entered as shown in the first create command. - -- Removes the "myapp.io/app" taint by specifying an empty array in the `taints` field. -- Changes the label "myapp.io/app" to have a value of "prod" instead of "test". -- Adds the new label "example=foo". - -{{< note >}} -When updating or adding labels and taints to an existing node pool, it is not necessary to recycle it. This is because the values are updated live on the running nodes. -{{< /note >}} - -### Resize your LKE Node Pool - -You can resize an LKE cluster's node pool to add or decrease its number of nodes. You need your cluster's ID and the node pool's ID in order to resize it. If you don’t know your cluster’s ID, see the [List LKE Clusters](#list-lke-clusters) section. If you don’t know your node pool's ID, see the [List a Cluster’s Node Pools](#list-a-cluster-s-node-pools) section. - -{{< note type="alert" >}} -Shrinking a node pool results in deletion of Compute Instances. Any local storage on deleted Compute Instances (such as `hostPath` and `emptyDir` volumes, or "local" PersistentVolumes) is erased. -{{< /note >}} - -{{< note >}} -You cannot modify an existing node pool's plan type. If you would like your LKE cluster to use a different node pool plan type, you can [add a new node pool](#add-a-node-pool-to-your-lke-cluster) to your cluster with the same number of nodes to replace the current node pool. You can then [delete the node pool](#delete-a-node-pool-from-an-lke-cluster) that is no longer needed. -{{< /note >}} - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | -| `poolId` | ID of the LKE node pool to lookup. | -| `count` | The number of Compute Instances in the node pool. | - -To update your node pool's node count, send a `PUT` request to the `/lke/clusters/{clusterId}/pools/{poolId}` endpoint. In the URL of this example, replace `12345` with your cluster's ID and `196` with your node pool's ID: - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "type": "g6-standard-4", - "count": 6 - }' https://api.linode.com/v4/lke/clusters/12345/pools/196 -``` - -{{< note >}} -Each Linode account has a limit to the number of resources they can deploy. This includes services, like Compute Instances, NodeBalancers, Block Storage, etc. If you run into issues deploying the number of nodes you designate for a given cluster's node pool, you may have run into a limit on the number of resources allowed on your account. Contact [Linode Support](/docs/products/platform/get-started/guides/support/) if you believe this may be the case. -{{< /note >}} - -### Recycle All Nodes Within a Cluster - -You can recycle all nodes within an LKE cluster to upgrade the nodes to the most recent patch of the cluster's Kubernetes version and to otherwise replace the Compute Instances that comprise the cluster. Nodes are recycled on a rolling basis, meaning that only one node is down at a time throughout the recycling process. You need your cluster's ID in order to recycle it's nodes. If you don’t know your cluster’s ID, see the [List LKE Clusters](#list-lke-clusters) section. - -{{< note type="alert" >}} -Recycling your cluster involves deleting each of the Compute Instances in the node pool and replacing them with new instances. Any local storage on deleted instances (such as `hostPath` and `emptyDir` volumes, or "local" PersistentVolumes) is erased. -{{< /note >}} - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | - -To recycle all nodes within a cluster, send a `POST` request to the `/lke/clusters/{clusterId}/pools/{poolId}/recycle` endpoint. In the URL of this example, replace `12345` with your cluster's ID: - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST \ - https://api.linode.com/v4/lke/clusters/12345/recycle -``` - -### Recycle your LKE Node Pool - -You can recycle an LKE cluster's node pool to upgrade its nodes to the most recent patch of the cluster's Kubernetes version. Nodes are recycled on a rolling basis, meaning that only one node is down at a time throughout the recycling process. You need your cluster's ID and the node pool's ID in order to recycle it. If you don’t know your cluster’s ID, see the [List LKE Clusters](#list-lke-clusters) section. If you don’t know your node pool's ID, see the [List a Cluster’s Node Pools](#list-a-cluster-s-node-pools) section. - -{{< note type="alert" >}} -Recycling your node pool involves deleting each of the Compute Instances in the node pool and replacing them with new instances. Any local storage on deleted instances (such as `hostPath` and `emptyDir` volumes, or "local" PersistentVolumes) is erased. -{{< /note >}} - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | -| `poolId` | ID of the LKE node pool to lookup. | - -To recycle your node pool, send a `POST` request to the `/lke/clusters/{clusterId}/pools/{poolId}/recycle` endpoint. In the URL of this example, replace `12345` with your cluster's ID and `196` with your node pool's ID: - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST \ - https://api.linode.com/v4/lke/clusters/12345/pools/196/recycle -``` - -### Recycle a Single Node within a Node Pool - -You can recycle an individual node within a LKE Cluster's Node Pool. You need your cluster's ID and the node ID in order to recycle it. If you don’t know your cluster’s ID, see the [List LKE Clusters](#list-lke-clusters) section. If you don’t know your node ID, see the [List a Cluster’s Node Pools](#list-a-cluster-s-node-pools) section. - -{{< note type="alert" >}} -Recycling a Node involves deleting that Compute Instance and replacing it with a new instance. Any local storage on the deleted instance (such as `hostPath` and `emptyDir` volumes, or "local" PersistentVolumes) is erased. -{{< /note >}} - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | -| `nodeId` | ID of the LKE node to lookup. | - -To recycle your node, send a `POST` request to the `/lke/clusters/{clusterId}/nodes/{nodeId}/recycle` endpoint. In the URL of this example, replace `12345` with your cluster's ID and `12345-6aa78910bc` with your node ID: - -```command -curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/lke/clusters/12345/nodes/12345-6aa78910bc -``` - -### Upgrade your LKE Cluster to the Next Minor Version - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | -| `k8s_version` | The next minor version of Kubernetes | - -To upgrade your LKE cluster's version, send a `PUT` request to the `/lke/clusters/{clusterId}` endpoint. In this example, ensure you replace `12345` with your cluster's ID, and `1.17` with whichever Kubernetes version is the next currently available: - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "k8s_version": "1.17" - }' https://api.linode.com/v4/lke/clusters/12345 -``` - -The response body displays the cluster version that will be applied following a [recycle](#recycle-your-lke-cluster): - -```output -{"created": "2019-08-02T17:17:49", "updated": "2019-08-05T19:11:19", "k8s_version": "1.17", "tags": ["ecomm", "blogs"], "label": "updated-cluster-name", "id": 456, "region": "us-central"}% -``` - -{{< note type="alert" >}} -Nodes within the LKE cluster *must* be [recycled](#recycle-your-lke-cluster) before the cluster version will be successfully upgraded. -{{< /note >}} - -### Add New Tags to your LKE Cluster - -Like many Linode resources, you can [add tags](/docs/products/tools/cloud-manager/guides/tags-and-groups/) to your LKE Cluster for organizational purposes. This section shows you how to add new tags to an existing LKE Cluster. - -{{< note title="View all of your account's tags" isCollapsible=true >}} -To view all of the tags existing on your account, issue the following request against the API: - -```command -curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/tags -``` - -Your response resembles the example: - -```output -{"data": [{"label": "blogs"}, {"label": "ecomm"}, {"label": "prod"}, {"label": "monitoring"}], "page": 1, "pages": 1, "results": 4}% -``` -{{< /note >}} - -1. View the tags currently assigned to your cluster: - - ```command - curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/lke/clusters/12345 - ``` - - The response body contains an array of your cluster's tags. In the example response, the cluster's tags are `blog`, and `ecomm`. - - ```output - {"id": 12345, "status": "ready", "created": "2020-04-13T20:17:22", "updated": "2020-04-13T20:17:22", "label": "cluster-12345", "region": "us-central", "k8s_version": "1.17", "tags": ["blog", "ecomm"]}% - ``` - -1. To add new tags to your cluster's existing tags, your request must include a `tags` array with all **previous** and **new** tags. The example request adds the new tags `prod` and `monitoring` to the cluster. - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "tags" : ["ecomm", "blog", "prod", "monitoring"] - }' \ - https://api.linode.com/v4/lke/clusters/12345 - ``` - - The response displays all of your cluster's tags. In the example response, the cluster's tags are now `blog`, `ecomm`, `prod`, and `monitoring`. - - ```output - {"id": 12345, "status": "ready", "created": "2020-04-13T20:17:22", "updated": "2020-04-13T20:17:22", "label": "cluster-12345", "region": "us-central", "k8s_version": "1.17", "tags": ["blog", "ecomm", "monitoring", "prod"]}% - ``` - -### Delete Tags from your LKE Cluster - -This section shows you how to delete tags from your LKE Cluster. - -1. View the tags currently assigned to your cluster: - - ```command - curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/lke/clusters/12345 - ``` - - The response body contains an array of your cluster's tags. In the example response, the cluster's tags are `blog`, `ecomm`, `prod`, and `monitoring`. - - ```output - {"id": 12345, "status": "ready", "created": "2020-04-13T20:17:22", "updated": "2020-04-13T20:17:22", "label": "cluster-12345", "region": "us-central", "k8s_version": "1.17", "tags": [["blog", "ecomm", "monitoring", "prod"]}% - ``` - -1. To delete a tag from your cluster, issue a request with only the tags you would like to keep assigned to your cluster. In the example request, the tags `monitoring` and `prod` are excluded from the `tags` array and so are deleted from your cluster. - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "tags" : ["ecomm", "blog"] - }' \ - https://api.linode.com/v4/lke/clusters/12345 - ``` - - The response displays all of your cluster's current tags. In the example response, the cluster's tags are now `blog`, and `ecomm`. - - ```output - {"id": 12345, "status": "ready", "created": "2020-04-13T20:17:22", "updated": "2020-04-13T20:17:22", "label": "cluster-12345", "region": "us-central", "k8s_version": "1.17", "tags": ["blog", "ecomm"]}% - ``` - -### Delete a Node Pool from an LKE Cluster - -When you delete a node pool you also delete the Compute Instances (nodes) and routes to them. The Pods running on those nodes are evicted and rescheduled. If you have [assigned Pods to the deleted Nodes](https://kubernetes.io/docs/concepts/configuration/assign-pod-node), the Pods might remain in an unschedulable condition if no other node in the cluster satisfies the [node selector](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector). - -| Required Parameters | Description | -| -- | -- | -| `clusterId` | ID of the LKE cluster to lookup. | -| `poolId` | ID of the LKE node pool to lookup. | - -To delete a node pool from a LKE cluster, send a `DELETE` request to the `/lke/clusters/{clusterId}/pools/{poolId}` end point. In the URL of this example, replace `12345` with your cluster's ID and `196` with your cluster's node pool ID: - -{{< note type="alert" >}} -This step is permanent and results in the loss of data. -{{< /note >}} - -```command -curl -H "Authorization: Bearer $TOKEN" \ - -X DELETE \ - https://api.linode.com/v4/lke/clusters/12345/pools/196 -``` - -## Delete an LKE Cluster - -Deleting an LKE cluster deletes the **Master node**, all **worker nodes**, and all **NodeBalancers** created by the cluster. However, it does **not delete any Volumes** created by the LKE cluster. - -To delete an LKE Cluster, send a `DELETE` request to the `/lke/clusters/{clusterId}` endpoint. In the URL of this example, replace `12345` with your cluster's ID: - -{{< note type="alert" >}} -This step is permanent and results in the loss of data. -{{< /note >}} - -```command -curl -H "Authorization: Bearer $TOKEN" \ - -X DELETE \ - https://api.linode.com/v4/lke/clusters/12345 -``` - -## Where to Go From Here? - -Now that you have created an LKE cluster, you can start deploying workloads to it. Review these guides for further help: - -- [How to Install Apps on Kubernetes with Helm 3](/docs/guides/how-to-install-apps-on-kubernetes-with-helm-3/) -- [Create and Deploy a Docker Container Image to a Kubernetes Cluster](/docs/guides/deploy-container-image-to-kubernetes/) -- [Troubleshooting Kubernetes](/docs/guides/troubleshooting-kubernetes/) \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/drain-node-pools/index.md b/docs/products/compute/kubernetes/guides/drain-node-pools/index.md deleted file mode 100644 index 972869d6a16..00000000000 --- a/docs/products/compute/kubernetes/guides/drain-node-pools/index.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: Drain a Node Pool -title_meta: How to Drain a Node Pool in Linode Kubernetes Engine -description: "Learn how to drain a node pool in Linode Kubernetes Engine, create a Persistent Volume and copy the application data to a Persistent Volume." -published: 2020-07-07 -modified: 2023-02-09 -keywords: [drain, node pool, maintenance, upgrade, pod disruption] -external_resources: - - "[Kubernetes Documentation](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/)" -aliases: ['/guides/how-to-drain-a-node-pool-in-linode-kubernetes-engine/'] ---- - -## Draining a Node - -You can use `kubectl drain` to safely evict all of the pods from a node before you perform maintenance on the node such as kernel upgrade, hardware maintenance, and others. Safe evictions allow the containers of the pods to gracefully terminate and respect the PodDisruptionBudgets that you specified. For more information see, [Disruptions](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/). - -Kubernetes workloads move around the cluster, which enables use cases like highly available distributed systems. Linode recommends you to move any data storage on the filesystem of the Compute Instances in an LKE cluster to Persistent Volumes with network attached storage. Avoid using local storage on LKE nodes whenever possible. If you are using Persistent Volume Claim for the application on an LKE cluster, skip the entire [Copy the application data to a Persistent Volume](#copy-the-application-data-to-a-persistent-volume) section and proceed directly to [Add a new node pool to the cluster and drain the nodes](#add-a-new-node-pool-to-the-cluster-and-drain-the-nodes). - -This guide provides instructions to: - -- Copy the application data to a Persistent Volume if you are using a local storage to store application data. -- Add a new node pool to the cluster and then drain the nodes. - -## Before You Begin - -This guide assumes you have a working [Linode Kubernetes Engine (LKE)](https://www.linode.com/products/kubernetes/) cluster running on Linode and you are familiar with *PodDisruptionBudget* concept and Configured *PodDisruptionBudgets* for applications that need them. - -1. [Install the Kubernetes CLI](/docs/products/compute/kubernetes/guides/kubectl/) (`kubectl`) on the local computer. - -1. Follow the instructions in [Deploying and Managing a Cluster with Linode Kubernetes Engine Tutorial](/docs/products/compute/kubernetes/) to connect to an LKE cluster. - - {{< note >}} - Ensure that the `KUBECONFIG` context is [persistent](/docs/products/compute/kubernetes/guides/kubectl/#persist-the-kubeconfig-context) - {{< /note >}} - -1. Ensure that Kubernetes CLI is using the right cluster context. Run the `get-contexts` subcommand to check: - - ```command - kubectl config get-contexts - ``` - -## Copy the application data to a Persistent Volume - -{{< note type="alert" >}} -The instructions in this section creates a Block Storage volume billable resource on your Linode account. A single volume can range from 10 GB to 10,000 GB in size and costs $0.10/GB per month or $0.00015/GB per hour. If you do not want to keep using the Block Storage volume that you create, be sure to delete it when you have finished the guide. - -If you remove the resources afterward, you are only billed for the hour(s) that the resources were present on your account. Consult the [Billing and Payments](/docs/products/platform/billing/) guide for detailed information about how hourly billing works and for a table of plan pricing. -{{< /note >}} - -1. Create a *Persistent Volume Claim* (PVC) that consumes a Block Storage Volume. To create a PVC, create a manifest file with the following YAML: - - ```file {title="pvc.yaml" lang=yaml} - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: pvc-test - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - storageClassName: linode-block-storage-retain - ``` - - {{< note >}} - To retain the Block Storage Volume and its data, even after the associated PVC is deleted, use the `linode-block-storage-retain` StorageClass. If, instead, you prefer to have the Block Storage Volume and its data deleted along with its PVC, use the `linode-block-storage` StorageClass. For more information, see the [Delete a Persistent Volume Claim](/docs/guides/deploy-volumes-with-the-linode-block-storage-csi-driver/#delete-a-persistent-volume-claim). - {{< /note >}} - - The PVC represents a Block Storage Volume. Because Block Storage Volumes have a minimum size of 10 gigabytes, the storage has been set to `10Gi`. If you choose a size smaller than 10 gigabytes, the PVC defaults to 10 gigabytes. Currently the only mode supported by the Linode Block Storage CSI driver is `ReadWriteOnce`, meaning that it can only be connected to one Kubernetes node at a time. - -1. Create the PVC in Kubernetes, and pass in the `pvc.yaml` file: - - ```command - kubectl create -f pvc.yaml - ``` - - After a few moments the Block Storage Volume is provisioned and the Persistent Volume Claim is ready to use. - -1. Check the status of the PVC by typing the following command: - - ```command - kubectl get pvc - ``` - - An output similar to the following appears: - - ```output - NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE - pvc-test Bound pvc-0e95b811652111e9 10Gi RWO linode-block-storage-retain 2m - ``` - - You can now attach the PVC to a Pod. - -1. Create a manifest file for the new Pod using the following YAML, where `application` is using local storage at `$MOUNTPATH`, `pvc-test` is a Persistent Volume Claim at `$CSIVolumePath`: - - ```file {title="new-pod.yaml" lang=yaml} - apiVersion: v1 - kind: Pod - metadata: - name: new-pod - labels: - app: application - volumes: - - name: application - hostPath: - path: $HOSTPATH - - name: pvc-test - persistentVolumeClaim: - claimName: pvc-test - ........ - volumeMounts: - - name: application - mountPath: $MOUNTPATH - - name: pvc-test - mountPath: $CSIVolumePath - ``` - -1. Create a new Pod named `new-pod`: - - ```command - kubectl create -f new-pod.yaml - ``` - -1. After a few moments the Pod should be up and running. To check the status of the Pod, type the following command: - - ```command - kubectl get pods - ``` - - An output similar to following appears: - - ```output - NAME READY STATUS RESTARTS AGE - new-pod 1/1 Running 0 2m - ``` - -1. Connect to a shell in the new Pod, type the following command: - - ```command - kubectl exec -it new-pod -- /bin/bash - ``` - -1. From the shell, copy the files from local storage to the PVC. In the following command `$MOUNTPATH` is the location of the local storage and `$CSIVolumePath` is the location on the PVC: - - ```command - cp -P $MOUNTPATH $CSIVolumePath. - ``` - -1. Delete the new Pod that you created, and then re-create it: - - ```command - kubectl delete pod new-pod - kubectl create -f new-pod.yaml - ``` - - You should now see that all the data is stored in the CSI Volume. - -## Add a new node to the cluster and drain the node - -1. Add an [additional Node Pool](/docs/products/compute/kubernetes/guides/manage-node-pools/#add-a-node-pool) to the LKE cluster, of a plan type and size which can accommodate the existing workloads. - -1. After the new Compute Instances have joined the cluster, drain any instances that are scheduled for maintenance. This causes the workloads to be rescheduled to other Compute Instances in the cluster. Linode recommends draining one instance at a time to ensure that the workloads have been rescheduled to other instances. An example Node drain command: - - ```command - kubectl drain lke9297-11573-5f3e357cb447 - ``` - -1. You can delete the old Node Pool or choose to keep it for after the maintenance is complete. Note, if you keep the Node Pool, you will be charged for it. - -1. When the maintenance has been completed and if you kept your previous Compute Instances, after they have booted you can mark them as scheduled again by using the following command: - - ```command - kubectl uncordon lke9297-11573-5f3e357cb447 - ``` \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/high-availability-control-plane/cluster-ha-enable.png b/docs/products/compute/kubernetes/guides/high-availability-control-plane/cluster-ha-enable.png deleted file mode 100644 index 7db5602cfed..00000000000 Binary files a/docs/products/compute/kubernetes/guides/high-availability-control-plane/cluster-ha-enable.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/high-availability-control-plane/create-cluster-enable-ha.png b/docs/products/compute/kubernetes/guides/high-availability-control-plane/create-cluster-enable-ha.png deleted file mode 100644 index 7319e890c50..00000000000 Binary files a/docs/products/compute/kubernetes/guides/high-availability-control-plane/create-cluster-enable-ha.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/high-availability-control-plane/ha-cluster-watermark.png b/docs/products/compute/kubernetes/guides/high-availability-control-plane/ha-cluster-watermark.png deleted file mode 100644 index a39adac67d1..00000000000 Binary files a/docs/products/compute/kubernetes/guides/high-availability-control-plane/ha-cluster-watermark.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/high-availability-control-plane/index.md b/docs/products/compute/kubernetes/guides/high-availability-control-plane/index.md deleted file mode 100644 index 586ca759f07..00000000000 --- a/docs/products/compute/kubernetes/guides/high-availability-control-plane/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "High Availability (HA) Control Plane" -title_meta: "High Availability (HA) Control Plane on LKE" -description: "Learn how to enable High Availability on Linode Kubernetes Engine." -published: 2021-11-04 -modified: 2023-12-18 -keywords: ['kubernetes', 'lke', 'high availability', 'ha'] -tags: ["networking","kubernetes","container","education"] -aliases: ['/guides/enable-lke-high-availability/', '/products/compute/kubernetes/guides/enable-high-availability/'] ---- - -In Kubernetes, the control plane is the set of components that orchestrate the cluster and manage the worker nodes (Compute Instances) in that cluster and the pods (containers) within the worker nodes. The control plane components include the Kubernetes API server (`kube-apiserver`), etcd, the Kubernetes scheduler (`kube-scheduler`), the cloud controller manager (`cloud-controller-manager`), and the Kubernetes controller manager (`kube-controller-manager`). - -Within the Linode Platform, this control plane is fully managed by LKE (the Linode Kubernetes Engine). By default, these components are not replicated. If any of them fail, it's possible that there may be issues with your cluster. Enabling **HA (High Availability) Control Plane** adds an additional layer of redundancy by replicating these control plane components. In doing so, this feature can ensure that the cluster experiences maximum uptime (99.99% guaranteed) and is recommended for all production applications running on LKE. - -## Cost - -The HA control plane feature is an optional billable service that starts at $60/month per cluster, depending on region. For more information, see our [pricing page](https://www.linode.com/pricing/). - -{{< note type="alert" >}} -While upgrading to an HA cluster is always possible, **downgrading your cluster is not currently supported**. Enabling HA is an **irreversible** change for your cluster. -{{< /note >}} - -## Replication Details - -When HA control plane is enabled on a cluster, the following control plane components are replicated: - -- **etcd** and **kube-apiserver** increases from *one* to *three* replicas. -- All other components, including the **Cloud Controller Manager**, **kube-scheduler**, and **kube-controller-manager**, increase from *one* to *two* replicas, with leader election put in place. - -When multiple replicas are created, they are always placed on separate infrastructure to better support uptime and redundancy. This configuration maintains a guaranteed 99.99% uptime for the control plane and worker nodes. - -## Enable During Cluster Creation - -To enable this feature when creating a cluster, check the **Enable HA Control Plane** box in the Cluster Summary section. Review the [Create a Cluster](/docs/products/compute/kubernetes/guides/create-cluster/#optionally-enable-high-availability) guide for full instructions. - -![Screenshot of the Enable HA toggle during cluster creation](create-cluster-enable-ha.png) - -## Enable on Existing Clusters - -If a cluster was created *without* this feature, you can enable it at any time. - -{{< note type="warning" >}} -Enabling the high availability control plane feature may result in *brief and temporary* downtime while the cluster is upgraded and the following actions are performed: - -- All nodes will be deleted and new nodes are created to replace them. -- Any local storage (such as `hostPath` volumes) will be erased. - -The upgrade process may take several minutes to complete, as nodes are replaced on a rolling basis. -{{< /note >}} - -High Availability can be added to pre-existing clusters at any given time through the cluster's **Summary Page**. - -1. To reach the summary page for the cluster, navigate first to the [Kubernetes section of Cloud Manager](https://cloud.linode.com/kubernetes/clusters). - -1. Select the Cluster by label that you would like to enable HA for. The summary page for the cluster appears. - -1. To enable HA, select the **Upgrade to HA** button at the top of the page. - - ![LKE HA cluster upgrade](upgrade-to-ha.png "Kubernetes HA upgrade.") - -1. A new window appears, asking you to confirm all of the changes that come with High Availability. Read through the message and select the **Enable HA Control Plane** checkbox to confirm that you agree to the changes. Then click the **Upgrade to HA** button. - - ![LKE HA cluster enable](cluster-ha-enable.png "Kubernetes HA Cluster Enable.") - -All clusters that have HA enabled will have an HA Cluster watermark on their summary page. - -![LKE HA cluster watermark](ha-cluster-watermark.png "LKE HA cluster watermark.") diff --git a/docs/products/compute/kubernetes/guides/high-availability-control-plane/upgrade-to-ha.png b/docs/products/compute/kubernetes/guides/high-availability-control-plane/upgrade-to-ha.png deleted file mode 100644 index 16f2441178a..00000000000 Binary files a/docs/products/compute/kubernetes/guides/high-availability-control-plane/upgrade-to-ha.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubectl/download-kubeconfig.png b/docs/products/compute/kubernetes/guides/kubectl/download-kubeconfig.png deleted file mode 100644 index f525986561c..00000000000 Binary files a/docs/products/compute/kubernetes/guides/kubectl/download-kubeconfig.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubectl/index.md b/docs/products/compute/kubernetes/guides/kubectl/index.md deleted file mode 100644 index 1d43cafb8dd..00000000000 --- a/docs/products/compute/kubernetes/guides/kubectl/index.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Manage a Cluster with kubectl -description: "Learn how to install kubectl and use it to manage a Kubernetes cluster hosted through LKE." -published: 2023-02-09 -aliases: ['/products/compute/kubernetes/guides/download-kubeconfig/','/products/compute/kubernetes/guides/install-kubectl/'] ---- - -## Install kubectl - -You need to install the kubectl client to your computer before proceeding. Follow the steps corresponding to your computer's operating system. - -{{% content "how-to-install-kubectl" %}} - -## Connect to a Cluster with kubectl - -After you've created your LKE cluster using Cloud Manager, you can begin interacting with and managing your cluster. You connect to it using the kubectl client on your computer. To configure kubectl, download your cluster's *kubeconfig* file. - -### Access and Download your kubeconfig - -Anytime after your cluster is created you can download its *kubeconfig*. The kubeconfig is a YAML file that will allow you to use kubectl to communicate with your cluster. Here is an example kubeconfig file: - -```file {title="example-cluster-kubeconfig.yaml" lang=yaml} -apiVersion: v1 -kind: Config -preferences: {} - -clusters: -- cluster: - certificate-authority-data: LS0tLS1CRUd... - server: https://example.us-central.linodelke.net:443 - name: lke1234 - -users: -- name: lke1234-admin - user: - as-user-extra: {} - token: LS0tLS1CRUd... - -contexts: -- context: - cluster: lke1234 - namespace: default - user: lke1234-admin - name: lke1234-ctx - -current-context: lke1234-ctx -``` - -This configuration file defines your cluster, users, and contexts. - -1. To access your cluster's kubeconfig, log in to your Cloud Manager account and navigate to the **Kubernetes** section. - -1. From the Kubernetes listing page, click on your cluster's **more options ellipsis** and select **Download kubeconfig**. The file will be saved to your computer's `Downloads` folder. - - ![Download your cluster's kubeconfig](download-kubeconfig.png "Download your cluster's kubeconfig") - - {{< note title="Download and view your Kubeconfig from the cluster's details page" >}} - You can also download the kubeconfig from the Kubernetes cluster's details page. - - 1. When viewing the Kubernetes listing page, click on the cluster for which you'd like to download a kubeconfig file. - - 1. On the cluster's details page, under the **kubeconfig** section, click the **Download icon**. The file will be saved to your `Downloads` folder. - - 1. To view the contents of your kubeconfig file, click on the **View icon**. A pane will appear with the contents of your cluster's kubeconfig file. - {{< /note >}} - -1. To improve security, change the `kubeconfig.yaml` file permissions to be only accessible by the current user: - - ```command - chmod go-r /Downloads/kubeconfig.yaml - ``` - -1. Open a terminal shell and save your kubeconfig file's path to the `$KUBECONFIG` environment variable. In the example command, the kubeconfig file is located in the `Downloads` folder, but you should alter this line with this folder's location on your computer: - - ```command - export KUBECONFIG=~/Downloads/kubeconfig.yaml - ``` - - {{< note >}} - It is common practice to store your kubeconfig files in `~/.kube` directory. By default, kubectl will search for a kubeconfig file named `config` that is located in the `~/.kube` directory. You can specify other kubeconfig files by setting the `$KUBECONFIG` environment variable, as done in the step above. - {{< /note >}} - -1. View your cluster's nodes using kubectl. - - ```command - kubectl get nodes - ``` - - {{< note >}} - If your kubectl commands are not returning the resources and information you expect, then your client may be assigned to the wrong cluster context. Visit our [Troubleshooting Kubernetes](/docs/guides/troubleshooting-kubernetes/#troubleshooting-examples) guide to learn how to switch cluster contexts. - {{< /note >}} - -You are now ready to manage your cluster using kubectl. For more information about using kubectl, see Kubernetes' [Overview of kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) guide. - -### Persist the Kubeconfig Context - -If you create a new terminal window, it does not have access to the context that you specified using the previous instructions. This context information can be made persistent between new terminals by setting the [`KUBECONFIG` environment variable](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable) in your shell's configuration file. - -{{< note >}} -If you are using Windows, review the [official Kubernetes documentation](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable) for how to persist your context. -{{< /note >}} - -These instructions persist the context for users of the Bash terminal. They are similar for users of other terminals: - -1. Navigate to the `$HOME/.kube` directory: - - ```command - cd $HOME/.kube - ``` - -1. Create a directory called `configs` within `$HOME/.kube`. You can use this directory to store your kubeconfig files. - - ```command - mkdir configs - ``` - -1. Copy your `kubeconfig.yaml` file to the `$HOME/.kube/configs` directory. - - ```command - cp ~/Downloads/kubeconfig.yaml $HOME/.kube/configs/kubeconfig.yaml - ``` - - {{< note >}} - Alter the above line with the location of the Downloads folder on your computer. - - Optionally, you can give the copied file a different name to help distinguish it from other files in the `configs` directory. - {{< /note >}} - -1. Open up your Bash profile (e.g. `~/.bash_profile`) in the text editor of your choice and add your configuration file to the `$KUBECONFIG` PATH variable. - - If an `export KUBECONFIG` line is already present in the file, append to the end of this line as follows; if it is not present, add this line to the end of your file: - - ```command - export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config:$HOME/.kube/configs/kubeconfig.yaml - ``` - -1. Close your terminal window and open a new window to receive the changes to the `$KUBECONFIG` variable. - -1. Use the `config get-contexts` command for `kubectl` to view the available cluster contexts: - - ```command - kubectl config get-contexts - ``` - - You should see output similar to the following: - - ```output - CURRENT NAME CLUSTER AUTHINFO NAMESPACE - * lke1234-ctx lke1234 lke1234-admin default - ``` - -1. If your context is not already selected, (denoted by an asterisk in the `current` column), switch to this context using the `config use-context` command. Supply the full name of the cluster (including the authorized user and the cluster): - - ```command - kubectl config use-context lke1234-ctx - ``` - - You should see output like the following: - - ```output - Switched to context "lke1234-ctx". - ``` - -1. You are now ready to interact with your cluster using `kubectl`. You can test the ability to interact with the cluster by retrieving a list of Pods. Use the `get pods` command with the `-A` flag to see all pods running across all namespaces: - - ```command - kubectl get pods -A - ``` - - You should see output like the following: - - ```output - NAMESPACE NAME READY STATUS RESTARTS AGE - kube-system calico-kube-controllers-dc6cb64cb-4gqf4 1/1 Running 0 11d - kube-system calico-node-bx2bj 1/1 Running 0 11d - kube-system calico-node-fg29m 1/1 Running 0 11d - kube-system calico-node-qvvxj 1/1 Running 0 11d - kube-system calico-node-xzvpr 1/1 Running 0 11d - kube-system coredns-6955765f44-r8b79 1/1 Running 0 11d - kube-system coredns-6955765f44-xr5wb 1/1 Running 0 11d - kube-system csi-linode-controller-0 3/3 Running 0 11d - kube-system csi-linode-node-75lts 2/2 Running 0 11d - kube-system csi-linode-node-9qbbh 2/2 Running 0 11d - kube-system csi-linode-node-d7bvc 2/2 Running 0 11d - kube-system csi-linode-node-h4r6b 2/2 Running 0 11d - kube-system kube-proxy-7nk8t 1/1 Running 0 11d - kube-system kube-proxy-cq6jk 1/1 Running 0 11d - kube-system kube-proxy-gz4dc 1/1 Running 0 11d - kube-system kube-proxy-qcjg9 1/1 Running 0 11d - ``` \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/access-lke-dashboard.png b/docs/products/compute/kubernetes/guides/kubernetes-dashboard/access-lke-dashboard.png deleted file mode 100644 index 905a5d011e2..00000000000 Binary files a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/access-lke-dashboard.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/create-resource.png b/docs/products/compute/kubernetes/guides/kubernetes-dashboard/create-resource.png deleted file mode 100644 index 4d155b79811..00000000000 Binary files a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/create-resource.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-home.png b/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-home.png deleted file mode 100644 index 353916ecfc4..00000000000 Binary files a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-home.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-namespaces.png b/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-namespaces.png deleted file mode 100644 index 6550731fc28..00000000000 Binary files a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-namespaces.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-pods.png b/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-pods.png deleted file mode 100644 index f306c56edf8..00000000000 Binary files a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-pods.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-sign-in.png b/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-sign-in.png deleted file mode 100644 index 362c1eaa7e7..00000000000 Binary files a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/dashboard-sign-in.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/index.md b/docs/products/compute/kubernetes/guides/kubernetes-dashboard/index.md deleted file mode 100644 index f93d345822f..00000000000 --- a/docs/products/compute/kubernetes/guides/kubernetes-dashboard/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Manage an LKE Cluster Using the Kubernetes Dashboard" -title_meta: "An Overview of the Kubernetes Dashboard on LKE" -description: "The Kubernetes Dashboard on LKE provides secure insight into the inner workings of kubernetes clusters in a seamless UI." -published: 2022-03-17 -modified: 2023-02-09 -keywords: ['kubernetes','cluster','analytics','dashboard','troubleshoot'] -tags: ["monitoring","kubernetes","web application"] -external_resources: -- '[Kubernetes Docs](https://kubernetes.io/docs/home/)' -- '[Kubernetes Dashboard GitHub](https://github.com/kubernetes/dashboard)' -aliases: ['/guides/using-the-kubernetes-dashboard-on-lke/','/products/compute/kubernetes/guides/access-kubernetes-dashboard/'] ---- - -The [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) is an industry standard open-source web-based user interface designed to be a visual hub for interacting with a Kubernetes cluster, allowing for a more intuitive interface for observing cluster objects, components, containers, applications, and more. -While providing an easy way to monitor a Kubernetes cluster and perform health checks, the Kubernetes dashboard additionally provides a means to perform administration tasks, similarly to how one would perform administration through the command line tool [kubectl](/docs/guides/beginners-guide-to-kubernetes-part-1-introduction/#kubectl). - -The Linode Kubernetes Engine currently installs the Kubernetes Dashboard by default, and can be accessed through the [Kubernetes Dashboard Link](#accessing-the-cluster-dashboard) found for each cluster in the Linode Cloud Manager. - -This guide will be a step-by-step introduction to accessing the Kubernetes Dashboard on LKE through the unique link found in Cloud Manager or the Linode API. Additionally information will provide basic insight into navigating the Kubernetes Dashboard, as well as provide an example for creating and editing resources directly through the dashboard. - -## Accessing the Cluster Dashboard - -The Cluster Dashboard can be found at the top of the Cluster's [details page](/docs/products/compute/kubernetes/guides/manage-clusters/). The steps for reaching the dashboard from Cloud Manager's are as follows: - -1. Click the Kubernetes link in Cloud Manager's sidebar menu. The Kubernetes listing page appears and you see all of your clusters listed. - -1. Select the cluster that you would like to reach the Kubernetes Dashboard for. The Kubernetes cluster’s details page appears. - -1. Select the **Kubernetes Dashboard** option at the top of the page to open the link to your Kubernetes Dashboard. - - ![Access LKE Dashboard](access-lke-dashboard.png) - -1. Once the link has been selected, you will see a login prompt with the option to enter either a Secret valid Bearer **Token**, or a **Kubeconfig** file to authenticate. - - In any [default Kubeconfig file provided for access to LKE clusters](/docs/products/compute/kubernetes/guides/kubectl/) an administrative user token can be found within the file itself, and entered in the `Enter token*` field to authenticate via a token. - - If you prefer to authenticate using a Kubeconfig file, the file can be entered by selecting the `Kubeconfig` option, the `Choose Kubeconfig file` field, and entering the file by using the file explorer menu that appears. - -1. After a token or Kubeconfig file has been entered, select the **Sign in** button to access the dashboard. - -![Dashboard Sign In](dashboard-sign-in.png) - -## Navigating the Cluster Dashboard - -Once logged in to the Cluster dashboard, **Workloads** for the `default` namespace will appear. This page will include information on all [Workloads](https://kubernetes.io/docs/concepts/workloads/) as defined by Kubernetes, and provide a number of options to navigate the dashboard further. - -![Dashboard Home](dashboard-home.png) - -### Selecting a Namespace - -All namespaces the logged in user has access to are listed and selected from the top left of the page using the dropdown menu. Users who prefer not using a set namespace that would instead like to use every namespace at once can select the `All Namespaces` option. The active namespace can be changed at any time. - -![Dashboard Namespace](dashboard-namespaces.png) - -### Navigating Objects and Components - -Towards the left of the page is a sidebar menu that includes access to similar categories for all other available objects and components, largely as defined by Kubernetes. - -- [Workloads](https://kubernetes.io/docs/concepts/workloads/): Contains information on applications running on Kubernetes Pods, as well as the [controllers](https://kubernetes.io/docs/concepts/workloads/controllers/) that help to most directly manage them. - -- [Service](https://kubernetes.io/docs/concepts/services-networking/): Contains information related to application networking on Kubernetes, primarily in the form of [Services](https://kubernetes.io/docs/concepts/services-networking/service/) and [Ingresses](https://kubernetes.io/docs/concepts/services-networking/ingress/). - -- [Configuration](https://kubernetes.io/docs/concepts/configuration/configmap/) and [Storage](https://kubernetes.io/docs/concepts/storage/): This section includes information related to [ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/), stored Kubernetes [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/), [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/), and [Persistent Volume Claims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/). - -- **Cluster**: A more administrator focused look at the Kubernetes cluster, the cluster category contains configuration details related to [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/), [Nodes](https://kubernetes.io/docs/concepts/architecture/nodes/), [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/), [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/), and [Service Accounts](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/). - -By selecting categories and sub-categories within the sidebar menu, users can inspect the Kubernetes configuration similarly in most cases to using the `kubectl get` command. Selecting the `Pods` sub-category under the `Workloads` primary category, will show a table of all running pods by `name`, `namespace`, the `images` they're relying on, `Labels` applied, the hardware `node` or nodes they're currently active on, the current status, the `Date` the Pod was created, and any `restarts`. Individual Pods can then be selected further to see additional details as if entering the `kubectl describe` command against a single individual Pod. This same general ruleset applies to all forms of navigation when using the Kubernetes dashboard, though the equivalent `kubectl` command applied will vary depending on the resource being accessed. - -### Creating Resources - -The Kubernetes dashboard additionally allows for the creation of resources directly. This can be completed at any time by selecting the `plus` icon at the top right of the page. Once completed, users can input YAML or JSON formatted configuration content directly, upload a YAML or JSON file, or create a resource by filling out a form. Once completed, the resource can be created by selecting the `upload` or `deploy` option. This is similar to the `kubectl create` command when working with Kubernetes over the command line. - -![Create Resource](create-resource.png) - -### Editing a Resource - -After inspecting an object or resource in the highest level of detail, the pencil icon will appear at the top of the page if any edits can be made. Once the pencil icon has been selected, the configuration of the resource can be viewed in both `YAML` or `JSON` format, and edited as needed. Once all edits are made, the `Update` button can be selected to edit the resource as if using the `kubectl apply -f` command. - -## Limitations - -While the Kubernetes Dashboard is fully featured in all other regards, the CPU and Memory graphs and analytics provided in part by[metrics-server](https://github.com/kubernetes-sigs/metrics-server) on some Kubernetes Dashboard installations are not included. - -As the LKE provided version of the Kubernetes dashboard is hosted and configured separately from cluster nodes, if users need access to CPU and Memory graphs, a separate Kubernetes dashboard installation including `metrics-server` must be performed, hosted directly on the cluster nodes themselves and configured for external access. \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/load-balancing/GetStartLoadBal_LKECluster.png b/docs/products/compute/kubernetes/guides/load-balancing/GetStartLoadBal_LKECluster.png deleted file mode 100644 index 29122aff61a..00000000000 Binary files a/docs/products/compute/kubernetes/guides/load-balancing/GetStartLoadBal_LKECluster.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/load-balancing/index.md b/docs/products/compute/kubernetes/guides/load-balancing/index.md deleted file mode 100644 index 3bde5eb233f..00000000000 --- a/docs/products/compute/kubernetes/guides/load-balancing/index.md +++ /dev/null @@ -1,270 +0,0 @@ ---- -title: "Getting Started with Load Balancing on an LKE Cluster" -title_meta: "How to Get Started with Load Balancing on an LKE Cluster" -description: "We will walk you through everything you need to know about the usage of Linode NodeBalancers in Kubernetes, including adding them to a Kubernetes Service." -og_description: "The Linode Kubernetes Engine (LKE) provides access to Linode''s load balancing service, NodeBalancers. NodeBalancers provide your Kubernetes cluster with a reliable way of exposing resources to the public internet. This guide contains details about the usage of Linode NodeBalancers, including adding NodeBalancers to a Kubernetes Service, and information on various NodeBalancer configurations." -published: 2020-07-14 -modified: 2023-02-09 -keywords: ['load balancers','kubernetes','nodebalancers','services'] -tags: ["http","kubernetes","container","networking","linode platform"] -image: GetStartLoadBal_LKECluster.png -aliases: ['/kubernetes/deploy-nodebalancers-with-linode-ccm/','/kubernetes/getting-started-with-load-balancing-on-a-lke-cluster/','/guides/getting-started-with-load-balancing-on-a-lke-cluster/'] ---- - -The Linode Kubernetes Engine (LKE) is Linode's managed Kubernetes service. When you deploy an LKE cluster, you receive a Kubernetes Master which runs your cluster's control plane components, at no additional cost. The control plane includes [Linode's Cloud Controller Manager (CCM)](https://github.com/linode/linode-cloud-controller-manager/), which provides a way for your cluster to access additional Linode services. Linode's CCM provides access to Linode's load balancing service, [Linode NodeBalancers](/docs/products/networking/nodebalancers/). - -NodeBalancers provide your Kubernetes cluster with a reliable way of exposing resources to the public internet. The LKE control plane handles the creation and deletion of the NodeBalancer, and correctly identifies the resources, and their networking, that the NodeBalancer will route traffic to. Whenever a Kubernetes Service of the `LoadBalancer` type is created, your Kubernetes cluster will create a Linode NodeBalancer service with the help of the Linode CCM. - -{{< note >}} -Adding external Linode NodeBalancers to your LKE cluster will incur additional costs. See [Linode's Pricing page](https://www.linode.com/pricing/#row--networking) for details. -{{< /note >}} - -{{< note >}} -All existing LKE clusters receive CCM updates automatically every two weeks when a new LKE release is deployed. See the [LKE Changelog](/docs/products/compute/kubernetes/release-notes/) for information on the latest LKE release. -{{< /note >}} - -{{< note >}} -The [Linode Terraform K8s module](/docs/guides/how-to-provision-an-unmanaged-kubernetes-cluster-using-terraform/) also deploys a Kubernetes cluster with the Linode CCM installed by default. Any Kubernetes cluster with a Linode CCM installation can make use of Linode NodeBalancers in the ways described in this guide. -{{< /note >}} - -## In this Guide - -This guide will show you: - -- manifest file configurations needed to [add Linode NodeBalancers to your LKE cluster](#adding-linode-nodebalancers-to-your-kubernetes-cluster). -- [annotations](#annotations-reference) available to further configure your Linode NodeBalancers behavior and how to incorporate them into a manifest file. -- prerequisites and annotations needed to configure [TLS termination](#configuring-linode-nodebalancers-for-tls-encryption) on your cluster's NodeBalancers. -- how to [configure session affinity](#configuring-session-affinity-for-cluster-pods) for the Pods in a cluster. - -### Before You Begin - -This guide assumes you have a working Kubernetes cluster that was deployed using the Linode Kubernetes Engine (LKE). You can deploy a Kubernetes cluster using LKE in the following ways: - -- The [Linode Cloud Manager](/docs/products/compute/kubernetes/). -- [Linode's API v4](/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/). -- [Terraform](/docs/guides/deploy-lke-cluster-using-terraform/), the popular infrastructure as code (IaC) tool. - - {{< note >}} - An LKE cluster will already have Linode's Cloud Controller Manager installed in the cluster's control plane. If you **did not** deploy your Kubernetes cluster using LKE and would like to make use of the Linode Cloud Controller Manager, see [Installing the Linode CCM on an Unmanaged Kubernetes Cluster - A Tutorial](/docs/guides/install-the-linode-ccm-on-unmanaged-kubernetes/). - {{< /note >}} - -## Adding Linode NodeBalancers to your Kubernetes Cluster - -To add an external load balancer to your Kubernetes cluster you can add the example lines to a new configuration file, or more commonly, to a Service file. When the configuration is applied to your cluster, Linode NodeBalancers will be created, and added to your Kubernetes cluster. Your cluster will be accessible via a public IP address and the NodeBalancers will route external traffic to a Service running on healthy nodes in your cluster. - -{{< note >}} -Billing for Linode NodeBalancers begin as soon as the example configuration is successfully applied to your Kubernetes cluster. - -In any NodeBalancer configuration, users should keep in mind that NodeBalancers have a maximum connection limit of 10,000 concurrent connections. -{{< /note >}} - -```file -spec: - type: LoadBalancer - ports: - - name: http - port: 80 - protocol: TCP - targetPort: 80 -``` - -- The `spec.type` of `LoadBalancer` is responsible for telling Kubernetes to create a Linode NodeBalancer. -- The remaining lines provide port definitions for your Service's Pods and maps an incoming port to a container's `targetPort`. - -### Viewing Linode NodeBalancer Details - -To view details about running NodeBalancers on your cluster: - -1. Get the services running on your cluster: - - ```command - kubectl get services - ``` - - You will see a similar output: - - ```output - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE - kubernetes ClusterIP 10.128.0.1 none 443/TCP 3h5m - example-service LoadBalancer 10.128.171.88 45.79.246.55 80:30028/TCP 36m - ``` - - - Viewing the entry for the `example-service`, you can find your NodeBalancer's public IP under the `EXTERNAL-IP` column. - - The `PORT(S)` column displays the `example-service` incoming port and NodePort. - -1. View details about the `example-service` to retrieve information about the deployed NodeBalancers: - - ```command - kubectl describe service example-service - ``` - - ```output - Name: nginx-service - Namespace: default - Labels: app=nginx - Annotations: service.beta.kubernetes.io/linode-loadbalancer-throttle: 4 - Selector: app=nginx - Type: LoadBalancer - IP: 10.128.171.88 - LoadBalancer Ingress: 192.0.2.0 - Port: http 80/TCP - TargetPort: 80/TCP - NodePort: http 30028/TCP - Endpoints: 10.2.1.2:80,10.2.1.3:80,10.2.2.2:80 - Session Affinity: None - External Traffic Policy: Cluster - Events: - ``` - -## Configuring your Linode NodeBalancers with Annotations - -The Linode CCM accepts annotations that configure the behavior and settings of your cluster's underlying NodeBalancers. - -- The table below provides a list of all available annotation suffixes. -- Each annotation **must** be prefixed with `service.beta.kubernetes.io/linode-loadbalancer-`. For example, the complete value for the `throttle` annotation is `service.beta.kubernetes.io/linode-loadbalancer-throttle`. -- Annotation values such as `http` are case-sensitive. - -#### Annotations Reference - -| Annotation (suffix) | Values | Default Value | Description | -| -- | -- | -- | -- | -| `throttle` | • integer
• `0`-`20`
• `0` disables the throttle | `20` | The client connection throttle limits the number of new connections-per-second from the same client IP. | -| `default-protocol` | • string
•`tcp`, `http`, `https` | `tcp` | Specifies the protocol for the NodeBalancer to use. | -| `default-proxy-protocol` | • string
•`none`, `v1`, `v2` | `none` | Enables Proxy Protocol on the underlying NodeBalancer and specifies the version of Proxy Protocol to use. The Proxy Protocol allows TCP client connection information, like IP address and port number, to be transferred to cluster nodes. See the [Using Proxy Protocol with NodeBalancers](/docs/products/networking/nodebalancers/guides/proxy-protocol/#what-is-proxy-protocol) guide for details on each Proxy Protocol version. | -| `port-*`| A JSON object of port configurations
For example:
`{ "tls-secret-name": "prod-app-tls", "protocol": "https"})` | None | • Specifies a NodeBalancer port to configure, i.e. `port-443`.

• Ports `1-65534` are available for balancing.

• The available port configurations are:

`"tls-secret-name"` use this key to provide a Kubernetes secret name when setting up TLS termination for a service to be accessed over HTTPS. The secret type should be `kubernetes.io/tls`.

`"protocol"` specifies the protocol to use for this port, i.e. `tcp`, `http`, `https`. The default protocol is `tcp`, unless you provided a different configuration for the `default-protocol` annotation. | -| `check-type` | • string
• `none`, `connection`, `http`, `http_body` | None | • The type of health check to perform on Nodes to ensure that they are serving requests. The behavior for each check is the following:

`none` no check is performed

`connection` checks for a valid TCP handshake

`http` checks for a `2xx` or `3xx` response code

`http_body` checks for a specific string within the response body of the healthcheck URL. Use the `check-body` annotation to provide the string to use for the check. | -| `check-path` | string | None | The URL path that the NodeBalancer will use to check on the health of the back-end Nodes. | -| `check-body` | string | None | The string that must be present in the response body of the URL path used for health checks. You must have a `check-type` annotation configured for a `http_body` check. | -| `check-interval` | integer | None | The duration, in seconds, between health checks. | -| `check-timeout` | • integer
• value between `1`-`30` | None | Duration, in seconds, to wait for a health check to succeed before it is considered a failure. | -| `check-attempts` | • integer
• value between `1`-`30` | None | Number of health checks to perform before removing a back-end Node from service. | -| `check-passive` | Boolean | `false` | When `true`, `5xx` status codes will cause the health check to fail. | -| `preserve` | Boolean | `false` | When `true`, deleting a LoadBalancer service does not delete the underlying NodeBalancer | -| `nodebalancer-id` | string | None | The ID of the NodeBalancer to front the service. When not specified, a new NodeBalancer will be created. This can be configured on service creation or patching. | -| `hostname-only-ingress` | Boolean | `false` | When `true`, the LoadBalancerStatus for the service will only contain the Hostname. This is useful for bypassing kube-proxy's rerouting of in-cluster requests originally intended for the external LoadBalancer to the service's constituent Pod IP addresses. | - -{{< note >}} -To view a list of deprecated annotations, visit the [Linode CCM GitHub repository](https://github.com/linode/linode-cloud-controller-manager/blob/master/README.md#deprecated-annotations). -{{< /note >}} - -### Configuring Linode NodeBalancers for TLS Encryption - -This section describes how to set up TLS termination on your Linode NodeBalancers so a Kubernetes Service can be accessed over HTTPS. - -#### Generating a TLS type Secret - -Kubernetes lets you store sensitive information in a Secret object for use within your cluster. This is useful for storing things like passwords and API tokens. In this section, you will create a Kubernetes secret to store Transport Layer Security (TLS) certificates and keys that you will then use to configure TLS termination on your Linode NodeBalancers. - -In the context of the Linode CCM, Secrets are useful for storing Transport Layer Security (TLS) certificates and keys. The `linode-loadbalancer-tls` annotation requires TLS certificates and keys to be stored as Kubernetes Secrets with the type `tls`. Follow the steps in this section to create a Kubernetes TLS Secret. - -{{< note >}} -The steps in this section will create a self-signed TLS certificate. To learn how to create a TLS certificate from the [Let's Encrypt](https://letsencrypt.org/) certificate authority (CA) and apply it to an application running on Kubernetes, see the [Configuring Load Balancing with TLS Encryption on a Kubernetes Cluster](/docs/guides/how-to-configure-load-balancing-with-tls-encryption-on-a-kubernetes-cluster/). -{{< /note >}} - -1. Generate a TLS key and certificate using a TLS toolkit like [OpenSSL](https://www.openssl.org/). Be sure to change the `CN` and `O` values to those of your own website domain. - - ```command - openssl req -newkey rsa:4096 \ - -x509 \ - -sha256 \ - -days 3650 \ - -nodes \ - -out tls.crt \ - -keyout tls.key \ - -subj "/CN=mywebsite.com/O=mywebsite.com" - ``` - -1. Create the secret using the `create secret tls` command. Ensure you substitute `$SECRET_NAME` for the name you'd like to give to your secret. This will be how you reference the secret in your Service manifest. - - ```command - kubectl create secret tls $SECRET_NAME --cert tls.crt --key tls.key - ``` - -1. You can check to make sure your Secret has been successfully stored by using `describe`: - - ```command - kubectl describe secret $SECRET_NAME - ``` - - You should see output like the following: - - ```output - kubectl describe secret docteamdemosite - Name: my-secret - Namespace: default - Labels: - Annotations: - - Type: kubernetes.io/tls - - Data - ==== - tls.crt: 1164 bytes - tls.key: 1704 bytes - ``` - - If your key is not formatted correctly you'll receive an error stating that there is no PEM formatted data within the key file. - -#### Configuring TLS within a Service - -By default, Kubernetes does not expose Services with TLS termination over HTTPS. In order to use `https` you'll need to instruct the Service to use the correct port using the required annotations. You can add the following code snippet to a Service file to enable TLS termination on your NodeBalancers: - -```file {title="example-service.yaml" lang=yaml} -... -metadata: - annotations: - service.beta.kubernetes.io/linode-loadbalancer-default-protocol: http - service.beta.kubernetes.io/linode-loadbalancer-port-443: '{ "tls-secret-name": "example-secret", "protocol": "https" }' -... -``` - -- The `service.beta.kubernetes.io/linode-loadbalancer-default-protocol` annotation configures the NodeBalancer's default protocol. - -- `service.beta.kubernetes.io/linode-loadbalancer-port-443` specifies port `443` as the port to be configured. The value of this annotation is a JSON object designating the TLS secret name to use (`example-secret`) and the protocol to use for the port being configured (`https`). - -If you have multiple Secrets and ports for different environments (testing, staging, etc.), you can define more than one secret and port pair: - -```file {title="example-service.yaml" lang=yaml} -... -metadata: - annotations: - service.beta.kubernetes.io/linode-loadbalancer-default-protocol: http - service.beta.kubernetes.io/linode-loadbalancer-port-443: '{ "tls-secret-name": "example-secret", "protocol": "https" }' - service.beta.kubernetes.io/linode-loadbalancer-port-8443: '{ "tls-secret-name": "example-secret-staging", "protocol": "https" }' -... -``` - -### Configuring Session Affinity for Cluster Pods - -`kube-proxy` will always attempt to proxy traffic to a random back-end Pod. To direct traffic to the same Pod, you can use the `sessionAffinity` mechanism. When set to `clientIP`, `sessionAffinity` will ensure that all traffic from the same IP will be directed to the same Pod. You can add the example lines to a Service configuration file to - -```file -spec: - type: LoadBalancer - selector: - app: example-app - sessionAffinity: ClientIP - sessionAffinityConfig: - clientIP: - timeoutSeconds: 100 -``` - -## Removing Linode NodeBalancers from your Kubernetes Cluster - -To delete a NodeBalancer and the Service that it represents, you can use the Service manifest file you used to create the NodeBalancer. Simply use the `delete` command and supply your filename with the `f` flag: - -```command -kubectl delete -f example-service.yaml -``` - -Similarly, you can delete the Service by name: - -```command -kubectl delete service example-service -``` - -After deleting your service, its corresponding NodeBalancer will be removed from your Linode account. - -{{< note >}} -If your Service file used the `preserve` annotation, the underlying NodeBalancer will not be removed from your Linode account. See the [annotations reference](#annotations-reference) for details. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/manage-clusters/index.md b/docs/products/compute/kubernetes/guides/manage-clusters/index.md deleted file mode 100644 index a179d71bbd5..00000000000 --- a/docs/products/compute/kubernetes/guides/manage-clusters/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Manage Kubernetes Clusters -title_meta: Manage Kubernetes Clusters on LKE -description: "Learn how to view and manage your Kubernetes clusters on LKE." -published: 2023-02-09 -aliases: ['/products/compute/kubernetes/guides/delete-cluster/'] ---- - -## View Kubernetes Clusters - -Log in to [Cloud Manager](https://cloud.linode.com) and select Kubernetes from the left menu. If any LKE clusters exist on your account, they are listed on this page. - -![Screenshot of the Kubernetes listing page in Cloud Manager](view-clusters.png) - -Each Kubernetes cluster in the matrix is displayed alongside the following details: - -- **Version:** The Kubernetes version that the cluster is using. -- **Created:** The day and time the cluster was created. -- **Region:** The data center where the cluster resides. -- **Total Memory:** The total combined memory of all worker nodes in the cluster. -- **Total CPUs:** The total combined number of CPU cores in all worker nodes in the cluster. - -## Create a Cluster - -To create a new Kubernetes cluster within LKE, follow the instructions within the [Create a Cluster](/docs/products/compute/kubernetes/guides/create-cluster/) guide. - -## Review and Edit a Cluster - -Navigate to the **Kubernetes** page in Cloud Manager and select the cluster you wish to edit. See [View Kubernetes Clusters](#view-kubernetes-clusters). - -![Screenshot of a Kubernetes cluster entry in Cloud Manager](select-cluster.png) - -This displays the details page for the selected cluster. From here, you can view the summary section (which includes the Kubernetes version, region, cost, and combined computing resources) as well as the following details: - -- **Kubernetes API Endpoint** -- **Kubeconfig:** Download, view, and reset the Kubeconfig configuration file. This file outlines the configuration of your cluster and lets you connect to it. - -There are also links to view the Kubernetes dashboard, upgrade the cluster to high availability, delete the cluster, and more. From here, you can also add, remove, recycle, and resize node pools (see [Manage Node Pools](/docs/products/compute/kubernetes/guides/manage-node-pools/)). - -![Screenshot of a Kubernetes cluster detail page in Cloud Manager](view-cluster-details-page.png) - -## Delete a Cluster - -1. Navigate to the **Kubernetes** page in Cloud Manager and select the cluster you wish to delete. See [View Kubernetes Clusters](#view-kubernetes-clusters). - -1. Within the summary and details section, click the **Delete Cluster** button. - -1. A confirmation dialog appears. Click **Delete Cluster** to proceed with removing the Kubernetes cluster from your account. \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/manage-clusters/select-cluster.png b/docs/products/compute/kubernetes/guides/manage-clusters/select-cluster.png deleted file mode 100644 index 2a901fdab75..00000000000 Binary files a/docs/products/compute/kubernetes/guides/manage-clusters/select-cluster.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/manage-clusters/view-cluster-details-page.png b/docs/products/compute/kubernetes/guides/manage-clusters/view-cluster-details-page.png deleted file mode 100644 index ad374fa8188..00000000000 Binary files a/docs/products/compute/kubernetes/guides/manage-clusters/view-cluster-details-page.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/manage-clusters/view-clusters.png b/docs/products/compute/kubernetes/guides/manage-clusters/view-clusters.png deleted file mode 100644 index 5df72a75df5..00000000000 Binary files a/docs/products/compute/kubernetes/guides/manage-clusters/view-clusters.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/manage-node-pools/add-node-pool.png b/docs/products/compute/kubernetes/guides/manage-node-pools/add-node-pool.png deleted file mode 100644 index dfbdad45870..00000000000 Binary files a/docs/products/compute/kubernetes/guides/manage-node-pools/add-node-pool.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/manage-node-pools/autoscale-node-pool.png b/docs/products/compute/kubernetes/guides/manage-node-pools/autoscale-node-pool.png deleted file mode 100644 index b868b444e7c..00000000000 Binary files a/docs/products/compute/kubernetes/guides/manage-node-pools/autoscale-node-pool.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/manage-node-pools/index.md b/docs/products/compute/kubernetes/guides/manage-node-pools/index.md deleted file mode 100644 index d283a634b0e..00000000000 --- a/docs/products/compute/kubernetes/guides/manage-node-pools/index.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Manage Nodes and Node Pools -description: "How to add a Node Pool to a Linode Kubernetes Engine (LKE) cluster." -published: 2023-02-09 -aliases: ['/products/compute/kubernetes/guides/add-node-pool/','/products/compute/kubernetes/guides/edit-remove-node-pools/','/products/compute/kubernetes/guides/enable-cluster-autoscaling/'] ---- - -**Nodes**, also known as *worker nodes*, are virtual machines (built on top of Compute Instances) that serve as hosts for your containerized applications (*pods*). A **node pool** is a group of nodes that all run the same applications and configuration. Each LKE cluster has at least one node pool but additional node pools can be deployed as needed. - -This guide covers managing the node pools on your cluster, including adding and resizing them to fit the needs of your applications. It also covers recycling node pools to replace all of the associated nodes with new ones that are upgraded to the most recent patch of your cluster's Kubernetes version. For an automated approach, you can also enable cluster autoscaling to automatically create and remove nodes as needed. For any other changes to your LKE cluster, you should use kubectl. - -## View Node Pools - -1. Log in to [Cloud Manager](http://cloud.linode.com), click **Kubernetes** in the left menu, and select the cluster you wish to view. See [Manage Kubernetes Clusters](/docs/products/compute/kubernetes/guides/manage-clusters/). - -1. Scroll down to the **Node Pools** section. This lists all node pools for your cluster and their associated nodes. - - ![Screenshot of the Node Pools section of a cluster in Cloud Manager](view-node-pools.png) - -## Add a Node Pool - -Additional node pools can be added to host different applications or services within the same Kubernetes cluster. Since each node pool can be assigned its own virtual machine (Compute Instance) plan, separating applications into node pools can boost efficiency and allow each application to only be assigned the resources it needs. - -1. Navigate to the **Kubernetes** page in Cloud Manager and select the cluster you wish to edit. See [View Node Pools](#view-node-pools). - -1. Within the **Node Pool** section, click the **Add a Node Pool** button. - -1. In the side panel that opens, locate the plan type you wish to use for your first node pool. Currently, the available plan types for LKE worker nodes include [Shared CPU](/docs/products/compute/compute-instances/plans/choosing-a-plan/#shared-cpu-instances), [Dedicated CPU](/docs/products/compute/compute-instances/plans/choosing-a-plan/#dedicated-cpu-instances), and [High Memory](/docs/products/compute/compute-instances/plans/choosing-a-plan/#high-memory-instances). 1 GB Shared CPU Compute Instances Nanodes (also known as *nanodes*) are not available. - - ![Screenshot of the Add Node Pool panel in Cloud Manager](add-node-pool.png) - -1. In the corresponding field, enter the number of worker nodes that you wish to be included in the node pool. - -1. To add the node pool to your cluster's configuration, click the **Add pool** button. - -## Resize a Node Pool - -Node pools can be resized manually or automatically (through auto-scaling). Both of these processes allow you to increase or decrease the *number of worker nodes*. The instructions below cover manually resizing a pool. - -1. Navigate to the **Kubernetes** page in Cloud Manager and select the cluster you wish to edit. See [View Node Pools](#view-node-pools). - -1. Within the **Node Pool** section, locate the node pool you wish to resize and click the **Resize Pool** button. - -1. In the side panel that opens, enter the new number of nodes you wish to have in the pool. As the number is adjusted, the total cost of your new resources are displayed. To accept these changes, select the `Save Changes` button to continue. - - ![Screenshot of the resize node pool panel in Cloud Manager](resize-node-pool.png) - - {{< note type="warning" >}} - Shrinking a node pool results in the deletion of some associated Compute Instances. Any local storage on these instances (such as `hostPath` and `emptyDir` volumes, or "local" PersistentVolumes) is erased. - {{< /note >}} - -## Autoscale (Automatically Resize Node Pools) - -Many production applications benefit from increasing or decreasing infrastructure based on the resources needed in the moment. In Kubernetes, this can be handled through autoscaling. While autoscaling can be applied to any cluster using tools like [Cluster Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler), LKE has built-in autoscaling. When this feature is enabled, nodes can automatically be added or removed from a pool when the following conditions are met: - -- If Pods are unschedulable due to an insufficient number of nodes in the node pool, the number of nodes is increased. - -- If Pods are able to be scheduled on less nodes than are currently available in the node pool, nodes are drained and removed automatically. Pods on drained nodes are immediately rescheduled on pre-existing nodes. - -1. Navigate to the **Kubernetes** page in Cloud Manager and select the cluster you wish to edit. See [View Node Pools](#view-node-pools). - -1. Within the **Node Pool** section, locate the node pool you wish to modify and click the **Autoscale Pool** button. A popup form appears with settings for autoscaling the node pool. - - ![Screenshot of the Autoscale Pool menu in Cloud Manager](autoscale-node-pool.png) - -1. To enable autoscaling, toggle the **Autoscaler** button. - -1. Enter the minimum and maximum number of nodes for the node pool. The autoscaler feature ensures that the total number of nodes in the pool is never below the minimum number and above the maximum number. The minimum number can be between 1 and 99 while the maximum number needs to be higher than the minimum up to a limit of 100. - -1. Click the `Save Changes` button to complete the process and enable (or disable) the autoscaling feature. - -{{< note >}} -The LKE Autoscaler will not automatically increase or decrease the size of the node pool if the current node pool is either below the minimum of the autoscaler, or above the maximum. This behavior can be further described by following examples: - -- If the Node pool has 3 nodes in the current node pool and a minimum of 5, the autoscaler will not automatically scale the current node pool up to meet the minimum. It will only scale up if pods are unschedulable otherwise. - -- If the Node Pool has 10 nodes in the current node pool and a maximum of 7, the autoscaler will not automatically scale the current node pool down to meet the maximum. It can only scale down when the maximum is at or above the current number of nodes in the node pool. This is an intentional design choice to prevent the disruption of existing workloads. -{{< /note >}} - -## Recycle Nodes - -Recycling a worker node deletes the corresponding Compute Instance and deploys a new one. This is used when upgrading minor versions of Kubernetes or when debugging a node. You can recycle an individual node, recycle all nodes in a node pool, or recycle all nodes within a cluster. When recycling multiple nodes, each node is recycled on a rolling basis so that only a single node is down at any time. - -1. Navigate to the **Kubernetes** page in Cloud Manager and select the cluster you wish to edit. See [View Node Pools](#view-node-pools). - -1. Within the **Node Pool** section, select the button corresponding with the recycle operation you wish to perform: - - - **Recycle All Nodes**: Performs recycle operations on each node in the cluster on a rolling basis. - - - **Recycle Pool Nodes**: Performs recycle operations on each node in the selected node pool on a rolling basis. - - - **Recycle**: Performs a recycle operation on the corresponding node. - -1. A popup message appears which details the recycle process. Click the **Recycle** button to confirm. - - {{< note type="warning" >}} - Shrinking a node pool results in the deletion of some associated Compute Instances. Any local storage on these instances (such as `hostPath` and `emptyDir` volumes, or "local" PersistentVolumes) is erased. - {{< /note >}} - -## Remove a Node Pool - -If you no longer need to use a node pool, you can remove it from the cluster. This deletes all corresponding Compute Instance. If you instead wish to decrease the number of nodes in a node pool, see [Resize a Node Pool](#resize-a-node-pool) - -1. Navigate to the **Kubernetes** page in Cloud Manager and select the cluster you wish to edit. See [View Node Pools](#view-node-pools). - -1. Within the **Node Pool** section, locate the node pool you wish to delete and click the **Delete Pool** button. - - {{< note >}} - Each cluster must have at least one active node pool. If there is only a single node pool, the **Delete Pool** button is disabled. - {{< /note >}} - -1. A popup message appears requesting you to confirm the operation. Click **Delete** to confirm. \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/manage-node-pools/resize-node-pool.png b/docs/products/compute/kubernetes/guides/manage-node-pools/resize-node-pool.png deleted file mode 100644 index c36a74846e6..00000000000 Binary files a/docs/products/compute/kubernetes/guides/manage-node-pools/resize-node-pool.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/manage-node-pools/view-node-pools.png b/docs/products/compute/kubernetes/guides/manage-node-pools/view-node-pools.png deleted file mode 100644 index 5edc41f9b52..00000000000 Binary files a/docs/products/compute/kubernetes/guides/manage-node-pools/view-node-pools.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/reset-kubeconfig/index.md b/docs/products/compute/kubernetes/guides/reset-kubeconfig/index.md deleted file mode 100644 index 0c58444b76a..00000000000 --- a/docs/products/compute/kubernetes/guides/reset-kubeconfig/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Reset Kubeconfig -description: "How to reset the kubeconfig for Linode Kubernetes Engine (LKE) clusters." -published: 2022-03-10 -modified: 2023-02-09 ---- - -### Reset Cluster Kubeconfig - -In cases where access to a cluster using a current kubeconfig must be revoked, LKE provides the ability to **Reset** a cluster kubeconfig. This will effectively remove the current kubeconfig, and create a new one for cluster administrators to use. - -1. To reset the cluster kubeconfig access the [cluster's details page](/docs/products/compute/kubernetes/guides/manage-clusters/). - -1. Select the **Reset** button under the **kubeconfig** sub-category. - - ![Cluster Kubeconfig Reset](reset-kube-config.png) - -1. A confirmation message will appear confirming the Kubeconfig reset. Select the **Reset kubeconfig** button to proceed. - -A new kubeconfig will now be created. Once this process is completed, the new kubeconfig can be [Accessed and Downloaded](/docs/products/compute/kubernetes/guides/kubectl/) as usual. \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/reset-kubeconfig/reset-kube-config.png b/docs/products/compute/kubernetes/guides/reset-kubeconfig/reset-kube-config.png deleted file mode 100644 index 3b5d3f16eba..00000000000 Binary files a/docs/products/compute/kubernetes/guides/reset-kubeconfig/reset-kube-config.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/rotate-kubernetes-secrets/index.md b/docs/products/compute/kubernetes/guides/rotate-kubernetes-secrets/index.md deleted file mode 100644 index 148b816f016..00000000000 --- a/docs/products/compute/kubernetes/guides/rotate-kubernetes-secrets/index.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -slug: rotate-kubernetes-secrets -title: "Rotate Kubernetes Secrets" -description: "Learn how to secure your cluster by rotating Kubernetes secrets." -published: 2023-12-10 -keywords: ["kubernetes", "linode kubernetes engine", "lke", "cluster", "cluster security", "secret", "secrets", "token", "tokens"] -tags: ["Kubernetes", "Linode Kubernetes Engine", "LKE"] ---- - -## Kubernetes Secrets - -A Kubernetes secret is an object that stores sensitive authentication information like passwords, tokens, or keys. A secret is either auto-generated by the control plane and populated as a service-account-token or created manually by a user. Anyone with root-level access to a cluster has access to the "secrets" for that cluster. It is a best practice to rotate secrets on a regular basis or otherwise as-needed (i.e. an employee leaves a company or role, general security practices, etc.). This guide reviews the steps required to rotate the auto-generated service-account-token secrets in kube-system using kubectl, as well as how to rotate your lke-admin-token via the Linode CLI. - -Note that the instructions in this guide only apply to service-account-token secrets in kube-system; depending on your application configuration, there may be additional user-generated secrets in other namespaces you may want to delete or rotate manually. - -## Before You Begin - -You will need to have the kubectl command line tool installed and your local system configured to communicate with your cluster. To do this, you must download your cluster's kubeconfig file and save its file path to your `$KUBECONFIG` environment variable. Instructions can be found here: [Access and Download your kubeconfig](/docs/products/compute/kubernetes/get-started/#access-and-download-your-kubeconfig) - -## Rotate Your Cluster's Secrets - -### Rotate service-account-token Secrets in the kube-system Namespace - -Once your local `$KUBECONFIG` environment variable is configured with your cluster's kubeconfig file, follow these steps to rotate the auto-generated service-account-token secrets within your cluster. - -1. List the secrets in your cluster's kube-system namespace and filter by service-account-token to see secrets auto-generated by the control plane: - - ```command - kubectl -n kube-system get secrets --field-selector="type=kubernetes.io/service-account-token" - ``` - You should see output similar to the following: - ```output - NAME TYPE DATA AGE - ccm-user-token-5d5lk kubernetes.io/service-account-token 3 59d - cluster-autoscaler-user-token-sc6qr kubernetes.io/service-account-token 3 59d - kubernetes-dashboard-lke-user-token-59vpx kubernetes.io/service-account-token 3 59d - lke-admin-token-b9vdj kubernetes.io/service-account-token 3 59d - ``` - - {{< note title="Note for Kubernetes version 1.26" >}} - In Kubernetes version 1.26, there are additional auto-generated service-account-token secrets that exist beyond those included in the output above. - {{< /note >}} - -1. Delete the secrets. - - ```command - kubectl -n kube-system delete secrets --field-selector="type=kubernetes.io/service-account-token" - ``` - You should receive a confirmation the secrets have been deleted: - ```output - secret "ccm-user-token-5d5lk" deleted - secret "cluster-autoscaler-user-token-sc6qr" deleted - secret "kubernetes-dashboard-lke-user-token-59vpx" deleted - secret "lke-admin-token-b9vdj" deleted - ``` -1. Once your service-account-token secrets have been deleted, you will no longer have access to your cluster using your existing kubeconfig. To regain access, you will need to regenerate your kubeconfig and re-export your local environment variable using the steps below in [Regenerate Your Kubeconfig](#regenerate-your-kubeconfig). - -### Regenerate Your Kubeconfig - -In order to expedite secret recreation after deletion and regain access to your cluster, you can regenerate your kubeconfig. This process will also regenerate the lke-admin-token secret in kube-system. Note that these steps use the Linode CLI and follow the [Kubernetes Cluster Regenerate](/docs/api/linode-kubernetes-engine-lke/#kubernetes-cluster-regenerate) instructions from our API documentation. See our API documentation for correlating API commands. - -1. View your list of Kubernetes clusters to get the ID number of the cluster you wish to target: - - ```command - linode-cli lke clusters-list - ``` - The cluster ID can be found in the `id` column: - ```output - ┌────────┬─────────────────┬────────┬─────────────┬─────────────────────────────────┐ - │ id │ label │ region │ k8s_version │ control_plane.high_availability │ - ├────────┼─────────────────┼────────┼─────────────┼─────────────────────────────────┤ - │ 12345 │ example-cluster │ us-iad │ 1.27 │ True │ - └────────┴─────────────────┴────────┴─────────────┴─────────────────────────────────┘ - ``` -1. Regenerate your cluster's kubeconfig file using the cluster ID obtained in step 1. Replace {{< placeholder "12345" >}} with your cluster's ID number: - - ```command - linode-cli lke regenerate {{< placeholder "12345" >}} --kubeconfig=true --servicetoken=true - ``` -1. Download your new kubeconfig file from Cloud Manager by navigating to the **Kubernetes** section, clicking on your cluster's **more options ellipsis**, and selecting **Download Kubeconfig**. It may take a few minutes for the new kubeconfig file to become available. - - {{< note >}} - Alternatively, you can use the Linode CLI to view your new kubeconfig and overwrite your existing kubeconfig.yaml file, replacing {{< placeholder "12345" >}} with your cluster ID and {{< placeholder "~/Downloads/kubeconfig.yaml" >}} with the file path to your current kubeconfig: - ```command - linode-cli --json lke kubeconfig-view 12345 | jq -r '.[].kubeconfig' | base64 -d > ~/Downloads/kubeconfig.yaml - ``` - {{< /note >}} - -1. If you choose to download your new kubeconfig via Cloud Manager, you will need to reconfigure your kubeconfig by saving the file path to your `$KUBECONFIG` environment variable. Replace {{< placeholder "~/Downloads/kubeconfig.yaml" >}} with the file path for your new kubeconfig file: - - ```command - export KUBECONFIG={{< placeholder "~/Downloads/kubeconfig.yaml" >}} - ``` -1. Verify that you have access to your cluster by viewing your nodes: - - ```command - kubectl get nodes - ``` -1. Delete your old kubeconfig file once you have verified access to your cluster. - -1. Now that a new kubeconfig has been generated and configured, your service-account-token secrets and lke-admin-token secret have been rotated. - -## Additional Best Practices - -This guide reviews steps for rotating secrets in the kube-system namespace used by the lke-managed control plane. As a best practice, it is recommended to use separate namespaces for any application-specific service-account-tokens and secrets. - -Depending on your specific use case and configuration, there may be additional security steps you wish to take for your application-specific service-account-tokens once your secrets have been rotated, including restarting pods or recycling nodes. - -### Restart Your Pods - -1. View your pods: - - ```command - kubectl get pods - ``` -1. Restart your pods: - - ```command - kubectl rollout restart - ``` - -### Recycle Your Nodes - -When recycling a worker node, the corresponding Compute Instance is deleted and replaced with a new one. Nodes can be recycled via Cloud Manager using the instructions in our **Manage Nodes and Node Pools** guide here: [Recycle Nodes](/docs/products/compute/kubernetes/guides/manage-node-pools/#recycle-nodes) \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/secure-a-cluster-with-rbac/index.md b/docs/products/compute/kubernetes/guides/secure-a-cluster-with-rbac/index.md deleted file mode 100644 index 1015bdbdc90..00000000000 --- a/docs/products/compute/kubernetes/guides/secure-a-cluster-with-rbac/index.md +++ /dev/null @@ -1,306 +0,0 @@ ---- -title: "Secure a Cluster with User Permissions and RBAC" -description: 'This guide describes how to create roles and set contexts for specific users to create an environment with limited kubernetes permissions.' -contributors: ["Ryan Syracuse"] -published: 2018-02-28 -modified: 2023-02-09 -keywords: ["Kubernetes", "cluster", "docker", "security", "permissions"] -tags: ["security","nginx","kubernetes","container"] -aliases: ['/kubernetes/securing-an-LKE-cluster/','/guides/using-rbac-to-secure-an-lke-cluster/'] -concentrations: ["Kubernetes"] -external_resources: - - '[Kubernetes Documentation](https://kubernetes.io/docs/home)' ---- - -## Securing Kubernetes Users - -In Linux administration, the application of [Users, Groups, and Permissions](/docs/guides/linux-users-and-groups/) is a tried and tested method for improving a security posture for a number of use cases. Kubernetes administration similarly applies the same concepts using **RBAC** (Role Based Access Control), **Service Accounts**, and more. For example, when interacting with a standard Kubernetes installation, the default behavior is for a singular `kubeconfig` file to provide unlimited access to the relevant cluster. With RBAC and Service accounts, kubeconfig files can be created for specific individuals in an organization, giving them access only to the parts of the cluster that they need. - -## In This Guide - -While the Linode Kubernetes Engine(LKE) is a managed Platform as a Service solution providing a base level of security, it does not by default handle the creation of roles and service accounts for any users that are configured on LKE. This guide will serve as a tutorial for creating a role and role binding for an example user in the example user's own namespace, so that users can export a custom Kubeconfig file for users to authenticate with for limited permissions. This way, all users in a specific cluster will not be required to have full administrator permissions. - -### Before You Begin - -This guide assumes you have a working Kubernetes cluster that was deployed using the Linode Kubernetes Engine (LKE). You can deploy a Kubernetes cluster using LKE in the following ways: - -- The [Linode Cloud Manager](/docs/products/compute/kubernetes/). -- [Linode's API v4](/docs/products/compute/kubernetes/guides/deploy-and-manage-cluster-with-the-linode-api/). -- [Terraform](/docs/guides/deploy-lke-cluster-using-terraform/), the popular infrastructure as code (IaC) tool. - - {{< note >}} - An LKE cluster will already have Linode's Cloud Controller Manager installed in the cluster's control plane. If you **did not** deploy your Kubernetes cluster using LKE and would like to make use of the Linode Cloud Controller Manager, see [Installing the Linode CCM on an Unmanaged Kubernetes Cluster - A Tutorial](/docs/guides/install-the-linode-ccm-on-unmanaged-kubernetes/). - {{< /note >}} - -## Create a new User - -The following steps will provide a secure method for limiting user access to a cluster. An SSL certificate will be created for a user, approved by an administrator, and then applied to a limited `kubeconfig` for the user to use to gain access instead of the primary administrator kubeconfig file. - -### Create Certificates and approve CSRs for a new user - -In order for a user to securely authenticate to the Kubernetes server, an `x.509` certificate will be used, similar to how SSL/TLS is applied on a web browser. A **Certificate Signing Request** or CSR, allows the `.x.509` certificate to be approved and signed for use with Kubernetes. To apply a certificate and create a CSR, the following steps can be followed: - -1. Create a new directory labeled `auth` to store any new user certificates that will be created. Navigate to this new directory following it's creation.: - - ```command - mkdir auth - cd auth - ``` - -1. Generate a new certificate for your user: - - ```command - openssl genrsa -out exampleuser.key 2048 - ``` - - {{< note >}} - The text `user` can be replaced with a username of your choice. - {{< /note >}} - -1. Generate a new certificate signing request file: - - ```command - openssl req -new -key exampleuser.key -out exampleuser.csr -subj "/CN=exampleuser" - ``` - -1. Copy the key to the directory where kubectl is installed. This is usually the parent folder: - - ```command - cp exampleuser.key .. - ``` - -1. Navigate back to the directory where kubectl is installed. From here, a generate a BASE64 string using the `.csr` file: - - ```command - cd .. - less auth/exampleuser.csr | base64 | tr -d '\n' - ``` - - A base64 string will be outputted. Copy the output to be used in the next step. - -1. Using a text editor of your choice, create a new CSR YAML file: - - ```command - sudo nano exampleusercsr.yaml - ``` - - The CSR YAML should reflect the following. Replace the string in the `request` field with the base64 string that was generated for your own csr file: - - ```file - apiVersion: certificates.k8s.io/v1 - kind: CertificateSigningRequest - metadata: - name: exampleuser-csr - spec: - groups: - - system:authenticated - request: OGY4d1pQRGlqT21NV2VXCjM4dFdjRmJrQXRyTXJ6YWZnWGRZS1VYb2Z2ZDhLalVPeUJEaFdoWTFJbjZ6NGpEZ2RTbm94K21SdlJxQTFOUEwKN2k0QVd4OFlKcEdVS0Uvb1VKREZDcHVYcE9SZVdUMnY3enhFTzE5QUpRSURBUUFCb0FBd0RRWUpLb1pJaHZjTgpBUUVMQlFBRGdnRUJBRDg5T3JlUC - signerName: kubernetes.io/kube-apiserver-client - usages: - - digital signature - - key encipherment - - client auth - ``` - -1. Create the certificate signing request: - - ```command - kubectl create -f exampleusercsr.yaml - ``` - - You should see output resembling the following: - - ```output - certificatesigningrequest.certificates.k8s.io/user1-csr created - ``` - - {{< note >}} - If at any point the status of a CSR needs to be checked, the following command can be entered: - - ```command - kubectl get csr - ``` - - Additionally, although CSR's will be automatically deleted after enough time has passed, they can be manually deleted so that a new CSR can be attempted at any time using the following syntax: - - ```command - kubectl delete csr user1-csr - ``` - {{< /note >}} - -1. Through kubectl, approve the certificate for use with your Kubernetes cluster: - - ```command - kubectl certificate approve user1-csr - ``` - -1. Export the `.crt` file from the Kubernetes API to receive a copy of your signed certificate, and save it to the `/auth/` directory: - - ```command - kubectl get csr user1-csr -o jsonpath='{.status.certificate}' | base64 --decode > ~/auth/exampleuser.crt - ``` - -### Create a Limited Kubeconfig File - -In order for a new limited user to interact with Kubernetes, they will need their own `Kubeconfig` file that does not include administrative permissions. The following steps will describe how to create this file. - -1. To ensure that the original kubeconfig file is not overwritten without a backup, create a backup now: - - ```command - cp kubeconfig.yaml kubeconfigbackup.yaml - ``` - -1. Add the new user to the `kubeconfig.yaml` file: - - ```command - kubectl config set-credentials exampleuser --client-certificate=/home/user/auth/exampleuser.crt --client-key=/home/user/auth/exampleuser.key - ``` - - Your Kubeconfig file should now reflect the following: - - ```file - apiVersion: v1 - clusters: - - cluster: - certificate-authority-data: oaiedjaoiu9833ed98whfc9h - server: https://def4624b-5fbb-4ac6-ae70-77f28eb131fe.us-east-1.linodelke.net:443 - name: lke1111 - contexts: - - context: - cluster: lke1111 - namespace: default - user: lke1111-admin - name: lke1111-ctx - current-context: lke1111-ctx - kind: Config - preferences: {} - users: - - name: exampleuser - user: - client-certificate: exampleuser.crt - client-key: exampleuser.key - - name: lke1111-admin - user: - token: OIAWHF09W08R08w4f0hs0efch8q088080HEHSC - ``` - -1. To ensure that only a second limited user can access the cluster with limited permissions, an additional `kubeconfig` file must be created without administrative control: - - ```command - cp kubeconfig.yaml exampleuser_kubeconfig.yaml - ``` - -1. The new `kubeconfig` file should **only** include configuration options for the limited user. Delete all administrative user lines of the new kubeconfig file, until the `exampleuser_kubeconfig.yaml` file reflects the following: - - ```file - apiVersion: v1 - clusters: - - cluster: - certificate-authority-data: iuawhefIDWIDHI23EW98HICUH - server: https://def4624b-5fbb-4ac6-ae70-77f28eb131fe.us-east-1.linodelke.net:443 - name: lke1111 - contexts: - - context: - cluster: lke1111 - user: exampleuser - name: lke1111-ctx - current-context: lke1111-ctx - kind: Config - preferences: {} - users: - - name: exampleuser - user: - client-certificate: /home/user/auth/exampleuser.crt - client-key: /home/user/auth/exampleuser.key - ``` - -1. To test, switch the current context to the new `kubeconfig` file: - - ```command - export KUBECONFIG=exampleuser_kubeconfig.yaml - ``` - - Once exported, attempt to list all nodes in the cluster: - - ```command - kubectl get nodes - ``` - - If the configuration worked, the new user's kubeconfig should make the request fail with the following error: - -```output -Error from server (Forbidden): nodes is forbidden: User "exampleuser" cannot list resource "nodes" in API group "" at the cluster scope -``` - -The failure is expected, since the user currently does not have any roles or permissions defined. By default, new Kubernetes users will be unable to access any resources. - -## Setting Permissions with RBAC - -Permissions can be applied to a new user by creating a `role.yaml` and `rolebinding.yaml` file. In Kubernetes, a **Role** defines the permissions that are given to a specific group of users, and the **Rolebinding** applies the roles to specific users. For example, if you wanted to a give the `exampleuser` user created previously the ability to interact with pods in the `examplenamespace` namespace, a good configuration would be as follows: - -1. Create a role.yaml file with the following contents: - - ```file - apiVersion: rbac.authorization.k8s.io/v1 - kind: Role - metadata: - name: example-role - namespace: examplenamespace - rules: - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "watch", "list"] - ``` - - The above example would allow any user with the assigned role to `get`, `watch`, and `list` resources in the `examplenamespace` namespace. The `name` `example-role` is a unique identifier which can be called when applying the `rolebinding` in the next step. - -1. Once the role is created, create a `rolebinding.yaml` file to bind the role to your user: - - ```file - apiVersion: rbac.authorization.k8s.io/v1 - kind: RoleBinding - metadata: - name: example-role-binding - namespace: default - subjects: - - apiGroup: rbac.authorization.k8s.io - kind: User - name: exampleuser - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: example-role - ``` - -1. Apply both the `role.yaml` and the `rolebinding.yaml` to grant permission to the new user: - - ```command - kubectl apply -f role.yaml - kubectl apply -f rolebinding.yaml - ``` - -1. To test, switch the active kubeconfig and namespace to the ones created for the limited example user: - - ```command - export KUBECONFIG=exampleuser_kubeconfig.yaml - kubectl config set-context --current --namespace=examplenamespace - ``` - -1. If the configuration works, you should not see any errors when requesting information on active pods in the namespace: - - ```command - kubectl get pods - ``` - - However, if the user attempts to get information on nodes, or any other request that has not been explicitly configured, the request will fail with an error similar to the following: - - ```output - Error from server (Forbidden): nodes is forbidden: User "exampleuser" cannot list resource "nodes" in API group "" at the cluster scope - ``` - -## Next Steps - -Now that the user has been successfully installed, the user's `kubeconfig` file may be exported for other users to use from their own `kubectl` clients, and the user can access the cluster with the limited permissions set by the administrator in their own namespace. Additionally security controls may still be applied, however will vary depending on your use case. **Admission Controllers** for example, are a great way to implement additional controls on authenticated and authorized requests. Applications on an LKE cluster can additionally be put behind a NodeBalancer and ingress with TLS enabled. For more information, the following resources may be helpful: - -- [Configuring Load Balancing with TLS Encryption](/docs/guides/how-to-configure-load-balancing-with-tls-encryption-on-a-kubernetes-cluster/) -- [Admission Controllers](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/index.md b/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/index.md deleted file mode 100644 index 7e2a43452e2..00000000000 --- a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/index.md +++ /dev/null @@ -1,543 +0,0 @@ ---- -title: "Upgrade a Cluster to a Newer Kubernetes Version" -description: 'This guide describes the process of upgrading LKE cluster versions to prevent any potential downtime due to an outdated configuration' -published: 2022-03-10 -modified: 2023-05-02 -keywords: ["Kubernetes", "cluster", "popeye", "security", "permissions"] -tags: ["security", "kubernetes","container"] -concentrations: ["Kubernetes"] -external_resources: - - '[Kubernetes Documentation](https://kubernetes.io/docs/home)' - - '[Kubernetes Changelog](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG)' -aliases: ['/guides/upgrading-lke-minor-versions/'] ---- - -Kubernetes releases new software versions and patches on a regular cadence. These updates are integrated into LKE *after* they are released on upstream Kubernetes, which ensures they are properly tested on the Linode Platform. Kubernetes uses a semantic versioning system that includes three parts: x.y.z, where **x** is the *major* version, **y** is the *minor* version, and **z** is the *patch* version. - -- **Patch version upgrades** *(ex: 1.23.4 to 1.23.5)*: Patches are generally critical bug fixes, which include fixing security vulnerabilities. LKE clusters are automatically upgraded to the latest available patch versions for the cluster's minor version of Kubernetes (once they are released on LKE). -- **Minor version upgrades** *(ex: 1.23.5 to 1.24.0)*: Minor versions include new features and may make breaking changes or introduce incompatibilities. Customers are highly encouraged to manually upgrade their clusters, though an upgrade will be scheduled automatically once a cluster's existing minor version in deprecated. - -{{< note >}} -When upgrading a minor version of Kubernetes on LKE, you must upgrade to the next consecutive version. If the cluster is multiple versions behind, each version upgrade must be completed individually. For instance, if the current version on the cluster is 1.23.x and the latest available version on LKE is 1.25.x, the cluster must be upgraded to v1.24.x *before* upgrading to 1.25.x. -{{< /note >}} - -## Upgrade Process - -When a Kubernetes version upgrade is initiated on an LKE cluster (including both patch versions and minor versions), the control plane components are automatically upgraded. New worker nodes are also created using the new version. In most cases, there is no downtime or impact to performance for this part of the upgrade. - -After the initial upgrade, existing worker nodes need to also be upgraded to the newer Kubernetes version. This typically requires a few extra steps. This guide outlines three options for upgrading these existing nodes, including recycling all worker nodes, performing an in-place upgrade, and performing an out-of-place upgrade. Each of these options is discussed in the [Upgrade Worker Nodes](#upgrade-worker-nodes) section. - -{{< note type="warning">}} -Existing worker nodes are *automatically upgraded* when initiating the upgrade in Cloud Manager if **Recycle All Nodes** is selected during the upgrade process. This can also be triggered manually by using the recycle all nodes feature in Cloud Manager, Linode CLI, and Linode API. This recycles all nodes on a rolling basis so that only a single node is down at any time. Since this means there is one less worker node during the upgrade process, it can affect performance and might not be preferred for production applications. - -It is strongly recommended that steps are taken to ensure that there is enough space on all nodes to accommodate for this temporary shift in resources. If a cluster of three nodes cannot briefly support the resources demands of an application using only two nodes, then the upgrade process may result in unintended application downtime. To overcome this, you can temporarily add additional worker nodes and perform either an *in-place* or *out-of-place* upgrade to avoid any performance impact. For more details on these approaches, see [Upgrade Worker Nodes](#upgrade-worker-nodes). -{{< /note >}} - -## Deprecating Kubernetes Versions (End of Life) - -Kubernetes versions are also regularly *deprecated* on LKE. This prevents customers from experiencing issues as a result of using outdated software. When a minor version of Kubernetes is deprecated, an upgrade is scheduled for any LKE clusters using that version. This scheduled update is communicated via email to all affected customers in advance. It is recommended that customers manually initiate the upgrade. If an upgrade does not occur manually, the cluster is automatically upgraded at the scheduled time. - -## Review the Kubernetes Changelog - -Changelogs for each new version of Kubernetes are published on the [Kubernetes CHANGELOG](https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG) page on GitHub. To ensure a clean upgrade and eliminate potential issues, review the changelog entry that corresponds with the Kubernetes version to which your cluster will be upgraded. Since LKE clusters can only be upgraded one minor version at a time (i.e. v1.24.x to v1.25.x), you only need to review a single changelog entry. - -Each Kubernetes changelog entry includes patch versions and alpha/development versions. It's recommended that you review every section titled `Changelog since vX.Y.Z` starting from your current Kubernetes version and continuing through the latest patch release for the version to which you'll be upgraded. Compare these changes with the components and configuration of your cluster to help identify any breaking changes or issues that may occur. Additionally, review any upgrade notes, known issues, deprecation notes, or API changes, all of which may appear alongside each changelog. - -The [Kubernetes Blog](https://kubernetes.io/blog/) may also include a post regarding changes in each version (such as the [Kubernetes Removals and Major Changes In 1.25](https://kubernetes.io/blog/2022/08/04/upcoming-changes-in-kubernetes-1-25/) post). These blog posts may be less detailed, but should be easier to understand so you can quickly identify major changes. - -As API changes are an issue that can commonly go unnoticed when upgrading LKE, we additionally recommend checking Kubernetes' [API deprecation guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/) for more information on API changes, and how they should be addressed in specific circumstances. - -{{< note >}} -When reviewing the changelog, it is important to keep in mind that **patch releases** are deployed automatically to LKE clusters as needed. These patch versions should not effect the intended behavior of your cluster. Only major and minor releases have potentially breaking changes. -{{< /note >}} - -## Search for Compatibility Issues with Popeye - -One way to identify breaking changes and compatibility issues with Kubernetes upgrades is to use the [Popeye](https://github.com/derailed/popeye) tool. For help with this process, see the [Use Popeye to Check for Kubernetes Configuration Issues](/docs/guides/check-for-configuration-issues-with-popeye/) guide. - -## Check the Kubernetes Version on an LKE Cluster - -{{< tabs >}} -{{< tab "Cloud Manager" >}} -Navigate to the **Kubernetes** page in [Cloud Manager](http://cloud.linode.com) to see a list of all LKE clusters on your account (see [Manage Kubernetes Clusters](/docs/products/compute/kubernetes/guides/manage-clusters/)). - -![Check Kubernetes Version](lke-version.png) - -The current overall Kubernetes version of each LKE cluster is listed within the *Version* column. If an upgrade is available, an **Upgrade** button is displayed next to the version number. - -To determine the exact version being used by your control plane and your worker nodes, view the instructions for kubectl. -{{< /tab >}} -{{< tab "kubectl" >}} -**Cluster version:** - -To get the current overall version of Kubernetes on your cluster through kubectl, use the following command: - -```command -kubectl version --short | grep Server -``` - -```output -Server Version: v1.25.6 -``` - -**Control plane version:** - -Since LKE manages the control plane, the control plane components are automatically upgraded to match the cluster's Kubernetes version. - -Run the following command to get a list of all kube-proxy pods running on your control plane: - -```command -kubectl get pods --namespace kube-system | grep "kube-proxy" -``` - -```output -kube-proxy-gh6xg 1/1 Running 0 49m -kube-proxy-p4fkm 1/1 Running 0 53m -kube-proxy-pd5vb 1/1 Running 0 51m -``` - -Then, perform the following command to check the version on any of the kube-proxy pods, replacing *[pod]* with the name of one of the pods listed in the previous output. - -```command -kubectl describe pod kube-proxy-gh6xg -n kube-system | grep "Image" -``` - -```output - Image: linode/kube-proxy-amd64:v1.25.6 - ... -``` - -**Worker node version:** - -Existing worker nodes may still be on older versions (unless they have already been recycled). To view the version of Kubernetes in use by your worker nodes, run the command below and look at the `VERSION` column in the output. - -```command -kubectl get nodes -``` - -```output -NAME STATUS ROLES AGE VERSION -lke83159-127587-63922e6379a9 Ready 103d v1.24.8 -lke83159-127587-63922e639de4 Ready 103d v1.24.8 -lke83159-127587-63922e63c088 Ready 103d v1.24.8 -``` -{{< /tab >}} -{{< /tabs >}} - -## Upgrade Kubernetes on an LKE Cluster - -### Initiate the Upgrade and Upgrade the Control Plane - -Once you are ready to perform an upgrade, you can start the upgrade process. This automatically upgrades the managed Control Plane on your LKE cluster and ensures that any *new* worker nodes are created using the newer Kubernetes version. - -{{< tabs >}} -{{< tab "Cloud Manager" >}} -1. Navigate to the **Kubernetes** page in [Cloud Manager](http://cloud.linode.com) to see a list of all LKE clusters on your account (see [Manage Kubernetes Clusters](/docs/products/compute/kubernetes/guides/manage-clusters/)). - -1. Locate the cluster you wish to upgrade and click the corresponding **Upgrade** button in the *Version* column. This button only appears if there is an available upgrade for that cluster. - - ![](upgrade-lke-cluster.png) - -1. A confirmation popup should appear notifying you of the current and target Kubernetes version. Click the **Upgrade Verion** button to continue with the upgrade. - - ![](upgrade-lke-cluster-confirmation.png) - -1. The next step is to upgrade all worker nodes in the cluster so that they use the newer Kubernetes version. A second popup should automatically appear requesting that you start the recycle process. Each worker node is recycled on a rolling basis so that only a single node is down at any time. *Only click the **Recycle All Nodes** button if you do not care about performance impact to your application.* For high performance production applications, consider clicking the **Cancel** button and performing one of the upgrade procedures outlined in the [Upgrade Worker Nodes](#upgrade-worker-nodes) section. - - ![](upgrade-lke-recycle.png) -{{< /tab >}} -{{< tab "Linode CLI" >}} -1. Identify the ID of the cluster you wish to upgrade. - - ```command - linode-cli lke clusters-list - ``` - ```output - ┌───────┬─────────────────────┬──────────────┬─────────────┬───────────────────┐ - │ id │ label │ region │ k8s_version │ high_availability │ - ├───────┼─────────────────────┼──────────────┼─────────────┼───────────────────┤ - │ 83159 │ production-cluster │ us-east │ 1.25 │ False │ - │ 99169 │ example-cluster │ us-southeast │ 1.24 │ False │ - └───────┴─────────────────────┴──────────────┴─────────────┴───────────────────┘ - ``` - -1. Initiate the upgrade, replacing *[cluster-id]* with the ID of your cluster (obtained in the previous step) and *[kubernetes-version]* with the Kubernetes version you'd like to upgrade to (keeping in mind that you can only upgrade to the next sequential version number). - - ```command - linode-cli lke cluster-update [cluster-id] --k8s_version [kubernetes-version] - ``` - - ```output - ┌─────────────────────┬──────┬─────────────────────┬─────────────────────┬──────────────┬─────────────┐ - │ label │ tags │ created │ updated │ region │ k8s_version │ - ├─────────────────────┼──────┼─────────────────────┼─────────────────────┼──────────────┼─────────────┤ - │ example-cluster-002 │ │ 2023-03-22T13:19:40 │ 2023-03-22T13:19:40 │ us-southeast │ 1.25 │ - └─────────────────────┴──────┴─────────────────────┴─────────────────────┴──────────────┴─────────────┘ - ``` - - Since this process does not upgrade the worker nodes, perform one of upgrade procedures outlined in the [Upgrade Worker Nodes](#upgrade-worker-nodes) section. - -{{< /tab >}} -{{< tab "Linode API" >}} -1. Identify the ID of the cluster you wish to upgrade. Run the API curl request below, making sure to properly paste in or reference your [API token](/docs/products/platform/accounts/guides/manage-api-tokens/). - - ```command - curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/lke/clusters - ``` - - Within the output, locate the `id` of the cluster. - - ```output - "data" : [ - { - "control_plane" : { - "high_availability" : false - }, - "created" : "2022-12-08T18:35:08", - "id" : 83159, - "k8s_version" : "1.24", - "label" : "example-cluster", - "region" : "us-east", - "status" : "ready", - "tags" : [], - "updated" : "2023-03-22T13:02:52" - }, - ... - ``` - -1. Initiate the upgrade, replacing *[cluster-id]* with the ID of your cluster (obtained in the previous step) and *[kubernetes-version]* with the Kubernetes version you'd like to upgrade to (keeping in mind that you can only upgrade to the next sequential version number). - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "k8s_version": "[kubernetes-version]" - }' \ - https://api.linode.com/v4/lke/clusters/[cluster-id] - ``` - - The output should list the new Kubernetes version. - - ```output - { - "control_plane" : { - "high_availability" : false - }, - "created" : "2023-03-22T13:52:31", - "id" : 99184, - "k8s_version" : "1.25", - "label" : "example-cluster-003", - "region" : "ca-central", - "status" : "ready", - "tags" : [], - "updated" : "2023-03-22T13:53:26" - } - ``` - - Since this process does not upgrade the worker nodes, perform one of upgrade procedures outlined in the [Upgrade Worker Nodes](#upgrade-worker-nodes) section. -{{< /tab >}} -{{< /tabs >}} - -### Upgrade Worker Nodes - -Once the upgrade has been initiated, the control plane should be on the newer Kubernetes version but the existing worker nodes will still be on the older version. You can now decide how you'd like to handle upgrading the existing worker nodes to the newer Kubernetes version. Select from one of the options below. - -- [Recycle All Worker Nodes](#recycle-all-worker-nodes): This recycles each worker node on a rolling basis so that only one node is down at a time. While this process is generally the easiest method, it will likely impact the application's performance as your application will have access to fewer resources during the upgrade. It is only recommended if you are not running a production application. - -- [Perform an In-Place Upgrade](#perform-an-in-place-upgrade): This process temporarily creates one additional worker node on each node pool. This minimizes the cost impact of the upgrade (compared with an out-of-place upgrade) but increases the time the upgrade may take. This is recommended for smaller production applications. - -- [Perform an Out-of-Place Upgrade](#perform-an-out-of-place-upgrade): This process temporarily creates an additional node pool (with multiple worker nodes). This minimizes the time the upgrade may take (compared with an in-place upgrade) but increases the cost impact. This is recommended for larger production applications. - -It is highly recommended to add additional resources and take a "cordon and migrate" approach, meaning that pods will no longer land on existing nodes and they are all migrated to newer nodes. - -#### Recycle All Worker Nodes - -*This process is the easiest way to upgrade all worker nodes but will likely impact application performance. It is only recommended if you are not running a production application.* - -This recycles each worker node on a rolling basis so that only one node is down at any particular moment. In the highest level of detail, each worker node is independently [drained and cordoned](https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/) *one at a time*. During this process, all workloads are migrated to other nodes. Once a worker node is drained and cordoned, it is removed and a new node is created using the new Kubernetes version. It is synced, and then uncordoned, immediately putting it back live into the cluster with the `Ready` status. - -{{< tabs >}} -{{< tab "Cloud Manager" >}} -On the details page of your LKE cluster in Cloud Manager, click the **Recycle All Nodes** button. See [Recycle Nodes](/docs/products/compute/kubernetes/guides/manage-node-pools/#recycle-nodes) for more details. -{{< /tab >}} -{{< tab "Linode CLI" >}} -Run the command below, replacing *[cluster-id]* with the ID of your cluster. - -```command -linode-cli lke cluster-nodes-recycle [cluster-id] -``` - -For more details, review the CLI request sample on the [Cluster Nodes Recycle API reference](/docs/api/linode-kubernetes-engine-lke/#cluster-nodes-recycle). -{{< /tab >}} -{{< tab "Linode API" >}} -Perform the API request below, replacing *[cluster-id]* with the ID of your cluster. - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST \ - https://api.linode.com/v4/lke/clusters/[cluster-id]/recycle -``` - -For more details, review the API request sample on the [Cluster Nodes Recycle API reference](/docs/api/linode-kubernetes-engine-lke/#cluster-nodes-recycle). -{{< /tab >}} -{{< /tabs >}} - -#### Perform an In-Place Upgrade - -*This process temporarily creates one additional worker node on each node pool. This minimizes the cost impact of the upgrade (compared with an out-of-place upgrade) but increases the time the upgrade may take. This is recommended for smaller production applications.* - -1. First, add an additional worker node and, if using the Autoscale feature, increase the minimum number of nodes. - - {{< tabs >}} - {{< tab "Cloud Manager" >}} - Locate the node pool on the details page of your LKE cluster in Cloud Manager. Click the corresponding **Resize Pool** button. Increase the size of the node pool by 1. For example, if you have 3 nodes in the pool, increase that value to 4. For additional instructions, see [Resize a Node Pool](/docs/products/compute/kubernetes/guides/manage-node-pools/#resize-a-node-pool). - - If you are also using the autoscale feature, increase the minimum and maximum nodes by 1. This can be done by clicking the corresponding **Autoscale Pool** button and adjusting the minimum and maximum values. For more details, see [Autoscale](/docs/products/compute/kubernetes/guides/manage-node-pools/#autoscale-automatically-resize-node-pools). - {{< /tab >}} - {{< tab "Linode CLI" >}} - Run the command below, replacing the following values as needed. If you are not using the autoscale feature, remove the last 3 options (starting with *autoscaler*) from the command. - - - *[cluster-id]*: The ID of your cluster. - - *[pool-id]*: The ID of your node pool. - - *[number-of-nodes]*: Enter one value more than the number of nodes that already exist in the node pool. - - *[maximum-nodes]*: The maximum number of nodes for the pool. Enter one value more than the existing value. - - *[minimum-nodes]*: The minimum number of nodes for the pool. Enter one value more than the existing value. - - ```command - linode-cli lke pool-update [cluster-id] [pool-id] \ - --count [number-of-nodes] \ - --autoscaler.enabled true \ - --autoscaler.max [maximum-nodes] \ - --autoscaler.min [minimum-nodes] - ``` - - For more details, review the CLI request sample on the [Node Pool Update API reference](/docs/api/linode-kubernetes-engine-lke/#node-pool-update). - {{< /tab >}} - {{< tab "Linode API" >}} - Perform the API request below, replacing the following values as needed. If you are not using the autoscale feature, remove the `autoscaler` parameters from the request. - - - *[cluster-id]*: The ID of your cluster. - - *[pool-id]*: The ID of your node pool. - - *[number-of-nodes]*: Enter one value more than the number of nodes that already exist in the node pool. - - *[maximum-nodes]*: The maximum number of nodes for the pool. Enter one value more than the existing value. - - *[minimum-nodes]*: The minimum number of nodes for the pool. Enter one value more than the existing value. - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "count": [number-of-nodes], - "autoscaler": { - "enabled": true, - "max": [maximum-nodes], - "min": [minimum-nodes] - }' \ - https://api.linode.com/v4/lke/clusters/[cluster-id]/pools/[pool-id] - ``` - - For more details, review the shell request sample on the [Node Pool Update API reference](/docs/api/linode-kubernetes-engine-lke/#node-pool-update). - {{< /tab >}} - {{< /tabs >}} - -1. Select one worker node running the older Kubernetes version and prevent new pods from being created on it. This can be accomplished using the `cordon` command through kubectl, replacing *[node]* with the name of the node you are taking action on. - - ```command - kubectl cordon [node] - ``` - -1. Once traffic is no longer being assigned to that node, drain that worker node so that the existing workloads are rescheduled to other nodes. - - ```command - kubectl drain [node] --ignore-daemonsets - ``` - - By default, this will allow the pods to gracefully terminate with a default grace period of 30 seconds. If your nodes have a long grace period, it may take a while to migrate off the existing workloads. You can adjust this by using the `--grace-period [value]` option in the above drain command, replacing *[value]* with the time in seconds you wish to use. See [Termination of Pods](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination) on the official Kubernetes documentation. - -1. After the node has been drained, it can be recycled, which rebuilds the worker node using the newer Kubernetes version. - - {{< tabs >}} - {{< tab "Cloud Manager" >}} - Locate the node pool on the details page of your LKE cluster in Cloud Manager. Next to the node that has just been drained, click the corresponding **Recycle** button as outlined in [Recycle Nodes](/docs/products/compute/kubernetes/guides/manage-node-pools/#recycle-nodes). - {{< /tab >}} - {{< tab "Linode CLI" >}} - Run the command below, replacing *[cluster-id]* with the ID of your cluster and *[node-id]* with the ID of the node. - - ```command - linode-cli lke node-recycle [cluster-id] [node-id] - ``` - - For more details, review the CLI request sample on the [Node Recycle API reference](/docs/api/linode-kubernetes-engine-lke/#node-recycle). - {{< /tab >}} - {{< tab "Linode API" >}} - Perform the API request below, replacing *[cluster-id]* with the ID of your cluster and *[node-id]* with the ID of the node. - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST \ - https://api.linode.com/v4/lke/clusters/[cluster-id]/nodes/[node-id]/recycle - ``` - - For more details, review the API request sample on the [Node Recycle API reference](/docs/api/linode-kubernetes-engine-lke/#node-recycle). - {{< /tab >}} - {{< /tabs >}} - -1. Repeat steps 2 through 4 for each worker node until *all but the last* worker nodes are using the newer Kubernetes version. For the last worker node, repeat steps 2 and 3 to cordon and drain that node - but do not recycle it as that will cause workloads to land back on that node. Instead, continue with the step below to delete it. - -1. Remove the additional worker node that was added during this upgrade process. This can be accomplished by resizing your cluster back to your original value to use one less worker node. The last worker node that was created, which was the one you have not yet recycled, is removed during the resize. Then, if you previously adjusted the Autoscale Pool, adjust the values back to what they were before the upgrade. - - {{< tabs >}} - {{< tab "Cloud Manager" >}} - Locate the node pool on the details page of your LKE cluster. Click the corresponding **Resize Pool** button. Decrease the size of the node pool by 1. For example, if you have 4 nodes in the pool, decrease that value to 3. For additional instructions, see [Resize a Node Pool](/docs/products/compute/kubernetes/guides/manage-node-pools/#resize-a-node-pool). - - If you are also using the autoscale feature, decrease the minimum and maximum nodes by 1. This can be done by clicking the corresponding **Autoscale Pool** button and adjusting the minimum and maximum values. For more details, see [Autoscale](/docs/products/compute/kubernetes/guides/manage-node-pools/#autoscale-automatically-resize-node-pools). - {{< /tab >}} - {{< tab "Linode CLI" >}} - Run the command below, replacing the following values as needed. If you are not using the autoscale feature, remove the last 3 options (starting with *autoscaler*) from the command. - - - *[cluster-id]*: The ID of your cluster. - - *[pool-id]*: The ID of your node pool. - - *[number-of-nodes]*: Enter one value less than the number of nodes that exist in the node pool. - - *[maximum-nodes]*: The maximum number of nodes for the pool. Enter one value less than the existing value. - - *[minimum-nodes]*: The minimum number of nodes for the pool. Enter one value less than the existing value. - - ```command - linode-cli lke pool-update [cluster-id] [pool-id] \ - --count [number-of-nodes] \ - --autoscaler.enabled true \ - --autoscaler.max [maximum-nodes] \ - --autoscaler.min [minimum-nodes] - ``` - - For more details, review the CLI request sample on the [Node Pool Update API reference](/docs/api/linode-kubernetes-engine-lke/#node-pool-update). - {{< /tab >}} - {{< tab "Linode API" >}} - Perform the API request below, replacing the following values as needed. If you are not using the autoscale feature, remove the `autoscaler` parameters from the request. - - - *[cluster-id]*: The ID of your cluster. - - *[pool-id]*: The ID of your node pool. - - *[number-of-nodes]*: Enter one value less than the number of nodes that already exist in the node pool. - - *[maximum-nodes]*: The maximum number of nodes for the pool. Enter one value less than the existing value. - - *[minimum-nodes]*: The minimum number of nodes for the pool. Enter one value less than the existing value. - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "count": [number-of-nodes], - "autoscaler": { - "enabled": true, - "max": [maximum-nodes], - "min": [minimum-nodes] - }' \ - https://api.linode.com/v4/lke/clusters/[cluster-id]/pools/[pool-id] - ``` - - For more details, review the shell request sample on the [Node Pool Update API reference](/docs/api/linode-kubernetes-engine-lke/#node-pool-update). - {{< /tab >}} - {{< /tabs >}} - -#### Perform an Out-of-Place Upgrade - -*This process temporarily creates an additional node pool (with multiple worker nodes). This minimizes the time the upgrade may take (compared with an in-place upgrade) but increases the cost impact. This is recommended for larger production applications.* - -{{< note >}} -These instructions cover deleting the old node pool after all nodes have been fully drained. This lets you fallback to the existing nodes should the need arise. Alternatively, you can delete each node after it has been successfully drained, which reduces the overall cost impact of the upgrade. -{{< /note >}} - -1. Create a new pool with the same Compute Instance plans and number of nodes as your existing pool. - - {{< tabs >}} - {{< tab "Cloud Manager" >}} - Within the **Node Pools** section on the details page of your LKE cluster in Cloud Manager, click the **Add a Node Pool** button. In the prompt that appears, enter the plan type, plan size, and the number of nodes to match the existing node pool. See [Add a Node Pool](/docs/products/compute/kubernetes/guides/manage-node-pools/#add-a-node-pool). - {{< /tab >}} - {{< tab "Linode CLI" >}} - Run the command below, replacing the following values as needed. If you are not using the autoscale feature, remove the last 3 options (starting with *autoscaler*) from the command. - - - *[cluster-id]*: The ID of your cluster - - *[plan-type]*: The ID of the Compute Instance plan you wish to use. You can see all available plans and their corresponding IDs by running `linode-cli linodes types`. - - *[maximum-nodes]*: The maximum number of nodes for the pool. - - *[minimum-nodes]*: The minimum number of nodes for the pool. - - ```command - linode-cli lke pool-create [cluster-id] \ - --type [plan-id] - --count [number-of-nodes] - --autoscaler.enabled true \ - --autoscaler.max [maximum-nodes] \ - --autoscaler.min [minimum-nodes] \ - ``` - - For more details, reference the corresponding operation on the [API/CLI docs](/docs/api/linode-kubernetes-engine-lke/#node-pool-create) (select the **CLI** tab). - {{< /tab >}} - {{< tab "Linode API" >}} - Perform the API request below, replacing the following values as needed. If you are not using the autoscale feature, remove the `autoscaler` parameters from the request. - - - *[cluster-id]*: The ID of your cluster - - *[plan-type]*: The ID of the Compute Instance plan you wish to use. You can see all available plans and their corresponding IDs by running `linode-cli linodes types`. - - *[maximum-nodes]*: The maximum number of nodes for the pool. - - *[minimum-nodes]*: The minimum number of nodes for the pool. - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "type": "[plan-id]", - "count": [number-of-nodes], - "autoscaler": { - "enabled": true, - "max": [maximum-nodes], - "min": [minimum-nodes] - } - }' \ - https://api.linode.com/v4/lke/clusters/[cluster-id]/pools - ``` - For more details, reference the corresponding operation on the [API/CLI docs](/docs/api/linode-kubernetes-engine-lke/#node-pool-create). - {{< /tab >}} - {{< /tabs >}} - -1. Select one worker node on the old pool and prevent new pods from being created on it. This can be accomplished using the `cordon` command through kubectl, replacing *[node]* with the name of the node you are taking action on. - - ```command - kubectl cordon [node] - ``` - -1. Once traffic is no longer being assigned to that node, drain that worker node so that the existing workloads are rescheduled to nodes on the other pool. - - ```command - kubectl drain [node] --ignore-daemonsets - ``` - - By default, this will allow the pods to gracefully terminate with a default grace period of 30 sections. If your nodes have a long grace period, it may take a while to migrate off the existing workloads. You can adjust this by using the `--grace-period [value]` option in the above drain command, replacing *[value]* with the time in sections you wish to use. See [Termination of Pods](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination) on the official Kubernetes documentation. - -1. Repeat steps 2 through 3 for *each* worker node on the old pool. - -1. Once all worker nodes have been drained on the old node pool, the pool can be deleted. - - {{< tabs >}} - {{< tab "Cloud Manager" >}} - Locate the original node pool on the details page of your LKE cluster in Cloud Manager. Click the corresponding **Delete Pool** button as outlined in [Remove a Node Pool](/docs/products/compute/kubernetes/guides/manage-node-pools/#remove-a-node-pool). - {{< /tab >}} - {{< tab "Linode CLI" >}} - Run the command below, replacing *[cluster-id]* with the ID of your cluster and *[pool-id]* with the ID of the original node pool. - - ```command - linode-cli lke pool-delete [cluster-id] [pool-id] - ``` - - For more details, reference the corresponding operation on the [API/CLI docs](/docs/api/linode-kubernetes-engine-lke/#node-pool-delete) (select the **CLI** tab). - {{< /tab >}} - {{< tab "Linode API" >}} - Perform the API request below, replacing *[cluster-id]* with the ID of your cluster and *[pool-id]* with the ID of the original node pool. - - ```command - curl -H "Authorization: Bearer $TOKEN" \ - -X DELETE \ - https://api.linode.com/v4/lke/clusters/[cluster-id]/pools/[pool-id] - ``` - - For more details, reference the corresponding operation on the [API/CLI docs](/docs/api/linode-kubernetes-engine-lke/#node-pool-delete). - {{< /tab >}} - {{< /tabs >}} \ No newline at end of file diff --git a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/lke-version.png b/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/lke-version.png deleted file mode 100644 index 203294bcd1f..00000000000 Binary files a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/lke-version.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-cluster-confirmation.png b/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-cluster-confirmation.png deleted file mode 100644 index b3dd0bf299b..00000000000 Binary files a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-cluster-confirmation.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-cluster.png b/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-cluster.png deleted file mode 100644 index 2c7f383274f..00000000000 Binary files a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-cluster.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-recycle.png b/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-recycle.png deleted file mode 100644 index 96b627fdcca..00000000000 Binary files a/docs/products/compute/kubernetes/guides/upgrade-kubernetes-version/upgrade-lke-recycle.png and /dev/null differ diff --git a/docs/products/compute/kubernetes/release-notes/_index.md b/docs/products/compute/kubernetes/release-notes/_index.md deleted file mode 100644 index adcd06dcf42..00000000000 --- a/docs/products/compute/kubernetes/release-notes/_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Release Notes -title_meta: "Release Notes for LKE (Linode Kubernetes Engine)" -description: "Learn more about what's new and changing on LKE by reviewing the changelog entries." -published: 2022-11-07 -promo_default: false -tab_group_main: - weight: 100 ---- - -{{< releasenotes/list path="lke">}} \ No newline at end of file diff --git a/docs/products/compute/kubernetes/resources/index.md b/docs/products/compute/kubernetes/resources/index.md deleted file mode 100644 index eb964c9d191..00000000000 --- a/docs/products/compute/kubernetes/resources/index.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Resources -title_meta: "Resources for LKE (Linode Kubernetes Engine)" -description: "Resources and other information related to Linode Kubernetes Engine (LKE) including videos, blog posts, community posts, customer stories, ebooks, and press releases." -published: 2020-06-02 -modified: 2023-02-09 -tab_group_main: - weight: 40 ---- - -## Videos - -- [Linode Kubernetes Engine Demo](https://www.linode.com/content/linode-kubernetes-engine-demo/) - -## Blog Posts - -- [Linode Kubernetes Engine Now Available in Global Markets](https://www.linode.com/blog/kubernetes/lke-global-availability/) - -- [Linode Kubernetes Engine (LKE) General Availability](https://www.linode.com/blog/kubernetes/linode-kubernetes-engine-general-availability/) - -- [Linode Managed Kubernetes Now Available](https://www.linode.com/blog/kubernetes/linode-managed-kubernetes-now-available/) - -- [Whitelisting IP Addresses on Kubernetes: What We Learned](https://www.linode.com/blog/kubernetes/whitelisting-ip-addresses-on-kubernetes-what-we-learned/) - -- [Rancher 2.3 makes it easier to use Linode for Kubernetes](https://www.linode.com/blog/kubernetes/rancher-2-3-makes-it-easier-to-use-linode-for-kubernetes/) - -- [5 Kubernetes Shell Tricks](https://www.linode.com/blog/kubernetes/5-kubernetes-shell-tricks/) - -- [Coming Soon: Linode Kubernetes Engine](https://www.linode.com/blog/kubernetes/coming-soon-linode-kubernetes-engine/) - -- [July Technical Docs: Kubernetes, Pulumi, and More](https://www.linode.com/blog/kubernetes/july-technical-docs-kubernetes-pulumi-and-more/) - -- [From Kubernetes to GPU, Catch Up On the Latest Linode Guides](https://www.linode.com/blog/cms/from-kubernetes-to-gpu-catch-up-on-the-latest-linode-guides/) - -- [Linode at 17: A bunch of updates](https://www.linode.com/blog/linode/linode-turns-17/) - -- [Introducing Linode LIVE!](https://www.linode.com/blog/linode/introducing-linode-live/) - -- [2019: A Big Year of Innovation for Linode and a Big Thank Your to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [Now Available: Linode Rancher Integration](https://www.linode.com/blog/kubernetes/now-available-linode-rancher-integration/) - -## Community Posts - -- [How Can I Deploy the Kubernetes-Metrics Server on LKE?](https://www.linode.com/community/questions/19756/how-can-i-deploy-the-kubernetes-metrics-server-on-lke) - -- [What’s the best way to upgrade the type of Compute Instances in my LKE Cluster?](https://www.linode.com/community/questions/20168/whats-the-best-way-to-upgrade-the-type-of-linodes-in-my-lke-cluster) - -- [LKE LoadBalancer or Ingress for an internal network only?](https://www.linode.com/community/questions/20160/lke-loadbalancer-or-ingress-for-an-internal-network-only) - -- [DNS resolution inside LKE Kubernetes not working](https://www.linode.com/community/questions/19981/dns-resolution-inside-lke-kubernetes-not-working) - -- [Details on LKE](https://www.linode.com/community/questions/19628/details-on-lke) - -- [How can I monitor performance and resource usage on my Kubernetes (LKE) cluster?](https://www.linode.com/community/questions/19636/how-can-i-monitor-performance-and-resource-usage-on-my-kubernetes-lke-cluster) - -- [Questions regarding managed LKE / Kubernetes](https://www.linode.com/community/questions/19429/questions-regarding-managed-lke-kubernetes) - -- [How can I achieve autoscaling on the Linode platform?](https://www.linode.com/community/questions/19274/how-can-i-achieve-autoscaling-on-the-linode-platform) - -- [Linode Kubernetes Engine is Open for Beta Testing](https://www.linode.com/community/questions/19131/linode-kubernetes-engine-is-open-for-beta-testing) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=kubernetes). - -## Customer Stories - -- [Craft of Code Chris Alfano](https://www.linode.com/spotlight/chris-alfano/) - -- [Craft of Code Changelog](https://www.linode.com/spotlight/changelog/) - -- [Craft of Code Savvii](https://www.linode.com/spotlight/savvii/) - -## eBooks - -- [Understanding Kubernetes: A Guide to Modernizing Your Cloud Infrastructure](https://www.linode.com/content/kubernetes-guide/) - -## Press Releases - -- [Linode Launches Managed Kubernetes Engine](https://www.linode.com/press-release/linode-launches-managed-kubernetes-engine/) - -## External Resources - -- [Video: Getting Started with Linode Kubernetes from LearnLinuxTV](https://youtu.be/paXVPiX7O9k) - -- [Kubernetes API Documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/) - -- [Kubernetes Concepts Documentation](https://kubernetes.io/docs/concepts/) - -- [Cloud Native Computing Foundation](https://www.cncf.io/) diff --git a/docs/products/databases/_index.md b/docs/products/databases/_index.md deleted file mode 100644 index a57eef806a4..00000000000 --- a/docs/products/databases/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Databases" -title_meta: Database Products and Services -description: "A fully managed database service with high availability." ---- diff --git a/docs/products/databases/feature.png b/docs/products/databases/feature.png deleted file mode 100644 index dcf17d9842c..00000000000 Binary files a/docs/products/databases/feature.png and /dev/null differ diff --git a/docs/products/databases/feature.svg b/docs/products/databases/feature.svg deleted file mode 100644 index 55f556884c2..00000000000 --- a/docs/products/databases/feature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/databases/managed-databases/_index.md b/docs/products/databases/managed-databases/_index.md deleted file mode 100644 index 35b46cfb767..00000000000 --- a/docs/products/databases/managed-databases/_index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Managed Databases -title_meta: "Managed Databases Product Documentation" -description: "Learn about Linode's Managed Database service, which provides fully managed cloud database clusters built on top of Linode’s trusted and reliable platform." -modified: 2023-05-02 -linkTitle: Managed Databases -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2022-02-23 - product_description: "Fully managed cloud database clusters built on top of Linode’s trusted and reliable platform." -aliases: ['/products/database/'] ---- - -{{% content "dbass-eos" %}} - -Linode's Managed Databases combine performance, reliability, and high availability into a fully managed database solution. Databases are used by most organizations to store their business and operational data, including customer information, financial details, application content, ecommerce transactions, and much more. Managing the database infrastructure to store and safeguard this data can put additional stress on the resources you have available. **Managed Databases** take care of managing this critical infrastructure for you, providing you with an easy to use DBaaS (database-as-a-service) solution built on top of Linode's trusted and reliable platform. - -## Simplified deployment and maintenance - -- **Automated deployment:** When a database is deployed through Managed Databases, the infrastructure, software, and firewall, and high availability systems are configured automatically. This can save hours of time compared to manually setting up a database. - -- **Automatic updates:** Updates to the underlying software of your database cluster are installed automatically using user-configurable maintenance windows. See [Automatic Updates and Maintenance Windows](/docs/products/databases/managed-databases/guides/updates-and-maintenance/). - -- **Access controls:** Prevent unauthorized database access by only allowing connections from specific IP addresses (or ranges). - -- **Daily Backups:** Automatic daily backups are provided at no additional cost and are retained for 7 days. This provides you with a recovery point for each day over the last 7 days. - -## High availability - -Managed Databases can be configured with either 1 or 3 underlying machines, also called *nodes*. Using 3 nodes provides you with a highly available database cluster, complete with data redundancy and automatic failover. Your data is replicated across every other node in the cluster. If one goes down, any traffic is redirected to the other available nodes. - -## Database Engines - -The following database management systems (DBMSs) are available on Managed Databases: - -- **MySQL:** An industry standard relational database management system that uses the SQL query language. Many popular applications (including WordPress) require MySQL or MySQL compatible databases. - -- **PostgreSQL:** An object-relational database management system that can use either SQL or JSON queries. It's generally more flexible and feature-rich than MySQL, though it's not a drop-in replacement and applications need to have built-in support for it. - -See [Choosing a Database Engine and Plan](/docs/products/databases/managed-databases/guides/database-engines/) for more details on each of the available database engines. - -## Recommended Workloads - -- Any production application that uses a database, especially one with high-traffic or one that stores critical data. -- Medium to high traffic websites using WordPress, CraftCMS, Drupal, or other database-enabled application. -- E-commerce sites -- Organizations that don't want to commit IT resources towards managing a database cluster. - -See the [Use Cases for Managed Databases](/docs/products/databases/managed-databases/guides/use-cases/) guide to learn more about these use cases. - -## Availability - -Managed Databases can be created and deployed across [all regions](https://www.linode.com/global-infrastructure/). - -## Plans and Pricing - -| Resource | Available Plans | -| -- | -- | -| Cluster size | 1 - 3 nodes | -| vCPU cores | 1 - 64 cores (shared or dedicated) | -| Memory | 1 GB - 512 GB | -| Storage | 25 GB - 7200 GB | - -Pricing starts at $15/mo for a 1 GB instance with a single node. Review the [pricing page](https://www.linode.com/pricing/#databases) for additional plans and their associated costs. There may be some differences between each available database engine due to licensing costs and other factors. - -Managed Databases do not consume [network transfer](/docs/products/platform/get-started/guides/network-transfer/) or include a monthly transfer allowance. Transfer is consumed when connecting to a Managed Database from a Compute Instance when that instance is located in a different data center. - -## Additional Technical Specifications - -In addition to the resources allocated to each available plan (outlined above), Managed Databases have the following specifications: - -- Fully-managed, including automated deployment and maintenance -- Multiple database engines and versions -- Customize access controls to allow connections from trusted sources -- Automatic backups are taken daily and retained for 7 days -- Administrative access with elevated user permissions -- Access the database using command-line or desktop applications -- 100% SSD (Solid State Disk) storage -- 40 Gbps inbound network bandwidth -- Free inbound network transfer -- Provisioning and management through [Cloud Manager](https://cloud.linode.com/), [Linode CLI](https://www.linode.com/products/cli/), or programmatically through the [Linode API](https://www.linode.com/products/linode-api/) - -## Limits and Considerations - -- Managed Databases cannot be resized to a different plan or cluster size after they are created. - -- The default user cannot be changed or removed, though the password can be reset at any time. - -- You are not able to access the underlying operating system of a database cluster. Configuration files (such as `my.cnf` ) cannot be directly edited and configuration changes done through the `SET PERSIST` command do not persist when the cluster is rebooted. - -- Live replicas or standby nodes for a high availability Managed Database cluster cannot be created or hosted outside of Linode's Managed Database service. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/_shortguides/dbass-eos/index.md b/docs/products/databases/managed-databases/_shortguides/dbass-eos/index.md deleted file mode 100644 index dcfeff77695..00000000000 --- a/docs/products/databases/managed-databases/_shortguides/dbass-eos/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: Note for the new data center launch. - -headless: true -show_on_rss_feed: false ---- - -{{< note type="warning" title="Managed Database Availability">}} -Starting November 14, 2024, Akamai is re-introducing its Managed Database service in partnership with Aiven to bring customers higher performance, reliability, and flexibility. At launch, the new service is available in 20 core compute sites across the globe for distribution and low latency. Click here for more information: [Database migration notice](https://techdocs.akamai.com/cloud-computing/docs/migration-notice) -{{< /note >}} \ No newline at end of file diff --git a/docs/products/databases/managed-databases/_shortguides/managed-database-mongodb-private-notice-shortguide/index.md b/docs/products/databases/managed-databases/_shortguides/managed-database-mongodb-private-notice-shortguide/index.md deleted file mode 100644 index 91d68baa3ef..00000000000 --- a/docs/products/databases/managed-databases/_shortguides/managed-database-mongodb-private-notice-shortguide/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: No Private Conncetion notice for MongoDB - -headless: true -show_on_rss_feed: false ---- - -{{< note >}} -Managed MongoDB clusters are currently accessible over public IP addresses. To provide an additional layer of protection, support for private IP addresses will be available in the coming months. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/databases/managed-databases/developers/index.md b/docs/products/databases/managed-databases/developers/index.md deleted file mode 100644 index af5915839e3..00000000000 --- a/docs/products/databases/managed-databases/developers/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Managed Databases" -description: "Deploy Linode Managed Databases with developer tools like the Linode API or CLI." -tab_group_main: - weight: 50 ---- - -{{% content "dbass-eos" %}} - -## Linode API - -Linode’s API v4 provides the ability to programmatically manage the full range of Linode products and services. -[Linode API documentation](/docs/api/databases) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to [use and install the Linode CLI](/docs/products/tools/cli/get-started/) to get started. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/feature.png b/docs/products/databases/managed-databases/feature.png deleted file mode 100644 index ceed0c77e4c..00000000000 Binary files a/docs/products/databases/managed-databases/feature.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/feature.svg b/docs/products/databases/managed-databases/feature.svg deleted file mode 100644 index 90656f2683c..00000000000 --- a/docs/products/databases/managed-databases/feature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/databases/managed-databases/get-started/index.md b/docs/products/databases/managed-databases/get-started/index.md deleted file mode 100644 index fa89f0d81dc..00000000000 --- a/docs/products/databases/managed-databases/get-started/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with Managed Databases" -description: "Learn how to quickly get up and running with the Managed Database service." -modified: 2022-06-06 -tab_group_main: - weight: 20 ---- - -{{% content "dbass-eos" %}} - -Linode's Managed Database service is a convenient and reliable way to host your database workloads in the cloud. Quickly get up and running by following the instructions within this guide. - -## Create a Managed Database - -A Managed Database can be deployed using Cloud Manager, the Linode API, or the Linode CLI. For instructions on deploying it through Cloud Manager, see the following guide: - -- [Create a Managed Database](/docs/products/databases/managed-databases/guides/create-database/) -- [Choosing a Database Engine and Plan](/docs/products/databases/managed-databases/guides/database-engines/) - -## Connect to Your Database - -Once a Managed Database has been provisioned, you can connect to it from any compatible system or applications. Before you do so, the system's IP address needs to be added to the database cluster's access control list. - -- [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/) -- [Connect to a MySQL Managed Database](/docs/products/databases/managed-databases/guides/mysql-connect/) -- [Connect to a PostgreSQL Managed Database](/docs/products/databases/managed-databases/guides/postgresql-connect/) - -## Migrate an Existing Database - -If you are replacing an existing database with Linode's Managed Database service, you will need to migrate that data after the database cluster has been fully provisioned. The guide [Migrate a MySQL or MariaDB Database to a Managed Database](/docs/products/databases/managed-databases/guides/migrate-mysql/) walks you through migrating a MySQL database. - -## Integrate the Database into an Application - -While its possible to add data directly to a database using CLI or GUI tools, it's much more common to integrate the database into an existing application. For instance, you can use the database with any web stack that uses your chosen database engine (DBMS) such as [LEMP](/docs/guides/web-servers/lemp/) / [LAMP](/docs/guides/web-servers/lamp/) for MySQL and MERN / [MEAN](/docs/guides/mean-stack-tutorial/) for MongoDB. When using a Managed Database, you can forgo installing the database locally on the system and instead use the credentials and connection details for your Managed Database. The instructions for connecting to a remote database vary by application. For example, here's a guide for WordPress: [Configure WordPress to use a Remote Database](/docs/guides/configure-wordpress-remote-database/). \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/_index.md b/docs/products/databases/managed-databases/guides/_index.md deleted file mode 100644 index add32e7aa34..00000000000 --- a/docs/products/databases/managed-databases/guides/_index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Managed Databases" -description: "A collection of guides on using Linode's Managed Database service" -published: 2022-06-06 -modified: 2023-05-02 -tab_group_main: - weight: 30 ---- - -{{% content "dbass-eos" %}} - -## Basics - -- [Create a Managed Database](/docs/products/databases/managed-databases/guides/create-database/) - -- [Choosing a Database Engine and Plan](/docs/products/databases/managed-databases/guides/database-engines/) - -- [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/) - -- [Automatic Updates and Maintenance Windows](/docs/products/databases/managed-databases/guides/updates-and-maintenance/) - -- [Restore from a Backup](/docs/products/databases/managed-databases/guides/manage-backups/) - -- [Reset the Root Password](/docs/products/databases/managed-databases/guides/reset-root-password/) - -- [Use Cases for Managed Databases](/docs/products/databases/managed-databases/guides/use-cases/) - -## MySQL - -- [Connect to a MySQL Managed Database](/docs/products/databases/managed-databases/guides/mysql-connect/) - -- [Migrate a MySQL or MariaDB Database to a Managed Database](/docs/products/databases/managed-databases/guides/migrate-mysql/) - -{{< note >}} -General MySQL guides (not specific to Managed Databases): - -- [An Overview of MySQL](/docs/guides/an-overview-of-mysql/) -- [How to List Tables in MySQL and MariaDB](/docs/guides/list-tables-in-mysql-and-mariadb/) -- [How to Use Views in a MySQL Database](/docs/guides/how-to-create-and-use-mysql-views/) -{{< /note >}} - -## PostgreSQL - -- [Connect to a PostgreSQL Managed Database](/docs/products/databases/managed-databases/guides/postgresql-connect/) - -- [PostgreSQL Extensions](/docs/products/databases/managed-databases/guides/postgresql-extensions/) - -- [Migrate a PostgreSQL Database to a Managed Database](/docs/products/databases/managed-databases/guides/postgresql-migrate/) - -{{< note >}} -General PostgreSQL guides (not specific to Managed Databases): - -- [An Introduction to PostgreSQL](/docs/guides/an-introduction-to-postgresql/) -- [Backing Up a PostgreSQL Database (Database Dump)](/docs/guides/how-to-back-up-your-postgresql-database/) -{{< /note >}} \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/create-database/database-create-select-engine.png b/docs/products/databases/managed-databases/guides/create-database/database-create-select-engine.png deleted file mode 100644 index a1a28c24758..00000000000 Binary files a/docs/products/databases/managed-databases/guides/create-database/database-create-select-engine.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/create-database/index.md b/docs/products/databases/managed-databases/guides/create-database/index.md deleted file mode 100644 index 6e24b07cbd8..00000000000 --- a/docs/products/databases/managed-databases/guides/create-database/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Create a Managed Database" -description: "A walkthough on creating a Managed Database through Cloud Manager" -published: 2022-06-06 -modified: 2022-08-09 ---- - -{{% content "dbass-eos" %}} - -This guide walks you through creating a Linode Managed Database through Cloud Manager. - -1. [Open the Create Database Cluster Form in Cloud Manager](#open-the-create-database-cluster-form-in-cloud-manager) -1. [Set the Label](#set-the-label) -1. [Select the Database Engine](#select-the-database-engine) -1. [Select a Region](#select-a-region) -1. [Choose a Plan](#choose-a-plan) -1. [Determine the Number of Nodes](#determine-the-number-of-nodes) -1. [Add Access Controls](#add-access-controls) -1. [Deploy the Managed Database](#deploy-the-managed-database) - -## Open the Create Database Cluster Form in Cloud Manager - -Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. Click the **Create Database Cluster** button. This opens the *[Create Database Cluster](https://cloud.linode.com/databases/create)* page. - -## Set the Label - -Enter a name for your cluster under **Cluster Label**, allowing you to easily identify it from other database clusters on your account. A good label should provide some indication as to what the database is used for. The label must be alphanumeric and between 3 and 32 characters. - -## Select the Database Engine - -Select the **database engine** you'd like to use for your new database. This setting determines the underlying database management system (DBMS) that your cluster uses. Each database engine is significantly different and you should choose the one that is required by the application you intend to use it with. For instance, WordPress requires MySQL. If you are building a custom application, work with your developers to determine the best selection. See [Choosing a Database Engine and Plan](/docs/products/databases/managed-databases/guides/database-engines/) to learn about each of the available database engines. - -![Screenshot of the Database Engine dropdown menu](database-create-select-engine.png) - -*It's recommended to select the latest database version available, unless your application requires an older version.* - -## Select a Region - -Select the **region** where the database cluster will reside. Regions correspond with individual data centers, each located in a different geographical area. If you will access this database from a Linode Compute Instance or LKE cluster, you should likely select the same region as those services. Otherwise, select the region closest to you and/or your customers. This helps reduce latency and can make a significant impact in connection speeds and quality. - -- [Global Infrastructure](https://www.linode.com/global-infrastructure/) -- [Speed Tests for Data Centers](https://www.linode.com/speed-test/) -- [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) - -## Choose a Plan - -Every node of a database cluster is built on its own Linode Compute Instance. In the **Choose a Plan** section, select the Compute Instance type and plan that the nodes will use. You can choose from either [Dedicated CPU](/docs/products/compute/compute-instances/plans/dedicated-cpu/) or [Shared CPU](/docs/products/compute/compute-instances/plans/shared-cpu/) plans. In general, Dedicated CPU plans are recommended for high-performance production databases. - -- [Choosing a Compute Instance Type and Plan](/docs/products/compute/compute-instances/plans/choosing-a-plan/) - -{{< note >}} -Once a Managed Database cluster is created, it cannot be resized to a different plan. To modify the resources allocated to your database, you will need to create a new Managed Database with the desired plan, migrate your data, and delete the original Managed Database. -{{< /note >}} - -## Determine the Number of Nodes - -Each Managed Database can be built with either 1 or 3 nodes (individual virtual machines): - -- **1 node standalone database**: This option is recommended for development purposes or production databases where a lower cost is more beneficial than redundancy and failover. -- **3 node high availability database cluster**: This option is recommended for product databases. High availability database clusters have built-in data redundancy and automatic failover. Your data is replicated across every other node in the cluster. If one goes down, any traffic is redirected to the other available nodes. - -## Optionally Add Access Controls - -Within the **Add Access Controls** section, you can specify which IP addresses (and ranges) are permitted to access your new database cluster. Each Managed Database cluster has its own access control list, which grants specific IP addresses or ranges access to the database. By default, all connections (both public and private) are blocked unless they appear on this list. See [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/) for more information and for assistance adding access controls after the database has been deployed. - -If you are testing the connection from your local machine, you may also wish to enter the IP address that your ISP has assigned to your machine. One way you can find this out is by typing ["What's my IP"](https://www.google.com/search?q=what%27s+my+ip) into Google. - -## Deploy the Managed Database - -Once you have completed the form, click the **Create Database Cluster** button to start deploying your new database cluster. It takes approximately 15 to 30 minutes to fully provision the cluster. You can track the status by reviewing the *Status* column within the list of [Database Clusters](https://cloud.linode.com/databases) in Cloud Manager. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/database-engines/index.md b/docs/products/databases/managed-databases/guides/database-engines/index.md deleted file mode 100644 index d5172f6e7d6..00000000000 --- a/docs/products/databases/managed-databases/guides/database-engines/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Database Engines and Plans" -description: "Learn the differences between the database engines offered by Linode's Managed Database service." -published: 2022-06-06 -modified: 2023-05-02 ---- - -{{% content "dbass-eos" %}} - -When deploying a Managed Database, you are able to select from a variety of database engines and plans. While each database engine enables you to store data, application compatibility and the way in which they store and access data can vary greatly. This guide aims to provide more information on each database engine, the reasons you might choose one over the other, and advice on selecting an appropriate plan size. - -## Database Engines - -The following database engines are available on Linode's platform: - -- [MySQL](#mysql) -- [PostgreSQL](#postgresql) - -### MySQL - -**Starting at $15 ($0.0225/hr) for a single node and $35 ($0.0525/hr) for a 3 node high availability cluster.** - -MySQL is an industry standard relational database management system (RDMBS) that uses the SQL query language. Compared to other databases, it's relatively easy to use and its large community means there are lots of online resources available. MySQL values performance and accessibility over pure SQL compliance, so its syntax can slightly differ from strict SQL. Many popular applications (including WordPress) require MySQL or a MySQL compatible database. - -*Best for general-purpose websites and applications, e-commerce sites, applications employing LAMP or LEMP stacks, and for beginner database developers looking for robust online resources* - -**Available versions:** - -- MySQL 8.0 -- MySQL 5.7 - -### PostgreSQL - -**Starting at $15 ($0.0225/hr) for a single node and $35 ($0.0525/hr) for a 3 node high availability cluster.** - -PostgreSQL is an object-relational database management system (ORDBMS) that can use SQL. It's generally more flexible and feature-rich than MySQL, though it's not a drop-in replacement and applications need to have built-in support for it. It also has support for more data types, including JSON, and adopts some features of NoSQL databases. While PostgreSQL is generally more challenging to implement, it can support more advanced queries and is a popular choice for enterprise applications. - -*Best for experienced SQL developers, applications that perform complex queries, using PostgreSQL-specific features, and for business users looking for dedicated commercial support.* - -**Available versions:** - -- PostgreSQL 14 -- PostgreSQL 13 -- PostgreSQL 12 -- PostgreSQL 11 -- PostgreSQL 10 - -## Database Plans - -Each Managed Database can be deployed with a specific set of resources. This collection of resources is called the *plan*. Linode offers two plan types for Managed Databases: - -- [Shared CPU](#shared-cpu-instances) -- [Dedicated CPU](#dedicated-cpu-instances) - -### Shared CPU Instances - -**1 GB - 192 GB Memory, 1 - 32 Shared vCPU Cores, 25 GB - 3840 GB Storage**
- -[Shared CPU Instances](/docs/products/compute/compute-instances/plans/shared-cpu/) offer a balanced array of resources coupled with shared CPUs that can burst up to 100% for short intervals. This keeps costs down while still supporting a wide variety of cloud applications. Your processes are scheduled on the same CPU cores as processes from other Compute Instances and Managed Databases. This shared scheduling is done in a secure and performant manner and Linode works to minimize competition for CPU resources between your server and other servers. - -*Best for development servers, staging servers, low traffic websites, personal blogs, and production applications that may not be affected by resource contention.* - -### Dedicated CPU Instances - -**4 GB - 512 GB Memory, 2 - 64 Dedicated vCPUs, 80 GB - 7200 GB Storage**
- -[Dedicated CPU Instances](/docs/products/compute/compute-instances/plans/dedicated-cpu/) reserve physical CPU cores that you can utilize at 100% load 24/7 for as long as you need. This provides competition free guaranteed CPU resources and ensures your software can run at peak speed and efficiency. With Dedicated CPU instances, you can run your software for prolonged periods of maximum CPU usage, and you can ensure the lowest latency possible for latency-sensitive operations. These instances offer a perfectly balanced set of resources for most production applications. - -*Best for production websites, enterprise applications, high traffic databases, and any application that requires 100% sustained CPU usage or may be impacted by resource contention.* - -{{< note >}} -Once a Managed Database cluster is created, it cannot be resized to a different plan. To modify the resources allocated to your database, you will need to create a new Managed Database with the desired plan, migrate your data, and delete the original Managed Database. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/manage-access-controls/database-access-controls.png b/docs/products/databases/managed-databases/guides/manage-access-controls/database-access-controls.png deleted file mode 100644 index 12857ca6484..00000000000 Binary files a/docs/products/databases/managed-databases/guides/manage-access-controls/database-access-controls.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/manage-access-controls/index.md b/docs/products/databases/managed-databases/guides/manage-access-controls/index.md deleted file mode 100644 index 0790b9c5de9..00000000000 --- a/docs/products/databases/managed-databases/guides/manage-access-controls/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Manage Access Controls" -description: "Learn how to manage access controls on a Managed Database, including allowing connections from specific IP addresses." ---- - -{{% content "dbass-eos" %}} - -Each Managed Database cluster has its own access control list, which allows specific IPv4 addresses or ranges to connect to the database. By default, all connections (both public and private) are blocked unless they appear on this list. - -## View Access Controls - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select your Managed Database from the list. This opens the detail page for that database cluster. - -1. Within the *Summary* tab, access controls appears under the *Access Controls* section. A list of each allowed IP address or range is displayed. - -![Screenshot of Access Controls](database-access-controls.png) - -## Types of Access - -- **No access** (*blank*): If no IP addresses are provided, the database will not allow any connections. - -- **Open access** (`0.0.0.0/0`): Entering an IP address of *0.0.0.0/0* allows connections from any IP address. - -- **Individual access** (`192.0.2.1/32`): To grant an individual system access, enter that system's IPv4 address. The `/32` is added automatically if no prefix size is provided, which means only this single IPv4 address is included within this rule. - -- **Range access** (`192.0.2.0/24`): Allow connections from an entire range of IP addresses by specifying the prefix and the prefix length. For instance, entering *192.0.2.0/24* as an access control allows connections from 192.0.2.0 - 192.0.2.255. - -## Add or Modify IP Addresses or Ranges - -1. View your access controls by following the steps within [View Access Controls](#view-access-controls). - -1. Click the **Manage Access Controls** button to open the *Manage Access Controls* panel. - -1. The *Manage Access Controls* panel appears and displays a list of allowed IP addresses and ranges. From here, you can perform the following actions: - - - **Add** a new entry by clicking the **Add an IP** button and enter your desired IP address or range into the new field. - - **Modify** an existing entry by updating it with the new IP address or range. - - **Remove** an entry by clicking the **X** icon to the right of the entry. - -1. Once you've made your changes, click the **Update Access Controls** button to commit them. - -## Remove an IP Address or Range - -1. View your access controls by following the steps within [View Access Controls](#view-access-controls). - -1. Find the IP address or range you wish to remove and click the **Remove** link. A confirmation dialog appears. - -1. Click the **Remove IP Address** button to confirm and remove the address. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/manage-backups/available-managed-backups.png b/docs/products/databases/managed-databases/guides/manage-backups/available-managed-backups.png deleted file mode 100644 index c626986ab3e..00000000000 Binary files a/docs/products/databases/managed-databases/guides/manage-backups/available-managed-backups.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/manage-backups/index.md b/docs/products/databases/managed-databases/guides/manage-backups/index.md deleted file mode 100644 index 2567db4ad35..00000000000 --- a/docs/products/databases/managed-databases/guides/manage-backups/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Manage Backups" -description: "Learn how to restore one of the available backups for a Managed Database." -modified: 2022-07-01 -aliases: ['/products/databases/managed-databases/guides/restore-backup/'] ---- - -{{% content "dbass-eos" %}} - -Each Managed Database includes daily backups of your data, taken on a 24 hour cadence. Up to 7 backups are stored for each database cluster, which provides you with a restore point for each day in the last week. This guide walks you through viewing and restoring from these managed backups. - -## View Managed Backups - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select your Managed Database from the list. This opens the detail page for that database cluster. - -1. Navigate to the **Backups** tab. A list of your available backups are displayed, organized by the date they were created. - -![Screenshot of all available managed backups in Cloud Manager](available-managed-backups.png) - -## Restore Managed Backups - -{{< note type="alert" >}} -Restoring from a backup erases all data stored within the database cluster and replaces it with the data from that backup. -{{< /note >}} - -1. View the available backups by following the [View Managed Backups](#view-managed-backups) instructions. - -1. Locate the backup you wish to restore and click the corresponding **Restore** link. A confirmation dialog appears. - - ![Screenshot of several available backups highlighting the restore button](restore-from-backup.png) - -1. Enter the name of the database cluster in the **Database Label** field and click the **Restore Database** button. This deletes all the data currently stored on the database and restores the data from the selected backup. The restore process takes a few moments, the length of which depends on the amount of data. You can monitor the progress by viewing the listing page for all your database clusters. - -## Alternative Backup Methods - -To fully protect your data, your backup strategy should include additional backup solutions. While managed backups provide several quick recovery points, you may wish to retain backups for longer periods of time, store backups offsite, or only backup certain databases or tables. In these cases, you can use built-in DBMS tools or other third-party solutions. - -The following is a list of command-line tools included with each DBMS. These tools can all be used to create manual backups or to automate backups through cron jobs or other tools. - -### MySQL - -The [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) utility captures *logical* backups of MySQL databases and is included as part of the MySQL software. The following command exports a database called *Example* within the MySQL Managed Database cluster and saves it as an `.sql` file. Replace the host and database name with your own values. See [Connect to a MySQL Managed Database](/docs/products/databases/managed-databases/guides/mysql-connect/) guide for instructions on viewing the connection details (including the username, password, host, and port). - -```command -mysqldump -h lin-1111-1111-mysql-primary.servers.linodedb.net -u linroot -p --single-transaction --set-gtid-purged=OFF Example > backup-$(date +%F-%H.%M.%S).sql -``` - -For more instructions, see [Backing Up MySQL Databases Using mysqldump](/docs/guides/mysqldump-backups/). - -### PostgreSQL - -[pg_dump](https://www.postgresql.org/docs/current/app-pgdump.html), included with PostgreSQL, captures logical backups of PostgreSQL databases. The following command exports the database called *Example* within the given PostgreSQL Managed Database cluster and saves it as a file. Replace the host and database name with your own values. See [Connect to a PostgreSQL Managed Database](/docs/products/databases/managed-databases/guides/postgresql-connect/) guide for instructions on viewing the connection details (including the username, password, host, and port). - -```command -pg_dump -Fd --host lin-1111-1111-pgsql-primary.servers.linodedb.net --dbname Example --quote-all-identifiers --verbose --lock-wait-timeout=480000 --no-unlogged-table-data --serializable-deferrable --jobs=1 --username linpostgres --file database.backup -``` - -For more information, review the [Backing Up a PostgreSQL Database (Database Dump)](/docs/guides/how-to-back-up-your-postgresql-database/) guide. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/manage-backups/restore-from-backup.png b/docs/products/databases/managed-databases/guides/manage-backups/restore-from-backup.png deleted file mode 100644 index f39e177bacd..00000000000 Binary files a/docs/products/databases/managed-databases/guides/manage-backups/restore-from-backup.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/migrate-mysql/index.md b/docs/products/databases/managed-databases/guides/migrate-mysql/index.md deleted file mode 100644 index 3da11ca36b3..00000000000 --- a/docs/products/databases/managed-databases/guides/migrate-mysql/index.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: "Migrate a MySQL or MariaDB Database to a Managed Database" -description: "Learn how to migrate an existing MySQL database to Linode's Managed Database service." -published: 2022-02-23 -modified: 2022-06-30 ---- - -{{% content "dbass-eos" %}} - -This guide covers how to migrate an existing MySQL or MariaDB database to a Managed Database. When migrating a database, there are two important terms to keep in mind: the *source* database and the *target* database. - -- **Source database:** The original database running on a software, system, or machine that you wish to decommission. This could be MySQL running within your own Linux server, a development database on your local machine, or even a cloud database. -- **Target database:** The new replacement database that you wish to use. For this guide, the target database will be a Managed Database running on Linode's platform. - -Your individual migration workflow could deviate from the instructions provided here. You may need to consult your own developers or application's documentation to learn how to perform some of these steps and to gather any best practices. You should also perform the migration on a staging server first or during a time when downtime least affects your users and/or business. - -## Before You Begin - -- **Create a Managed Database:** To minimize downtime, make sure to create your Managed Database database cluster *before* continuing. This ensures that your database has been fully provisioned (which can take up to 30 minutes) and that you have the new database credentials available. See [Create a Managed Database](/docs/products/databases/managed-databases/guides/create-database/). - -- **Ensure proper MySQL user grants:** The MySQL user you intend to use to export your existing database must have SELECT, LOCK TABLES, SHOW VIEW and TRIGGER grants. - -## Export the Source Database - -Export the data from the source database into a `.sql` file. While this file is eventually used to import your data to a different machine, it can also be stored as backup. The best method for generating a backup of your data highly depends on the applications you are using and what other databases are also stored on that same system. - -- **mysqldump:** In most cases, you can export the data using the mysqldump command-line tool. The following command exports the specified databases within the local mysql instance into a file called `db-backup.sql`. Replace *[username]* with the username you use to access the database and *[database-name]* with the name of your database. - - ```command - sudo mysqldump -u [user] -p --single-transaction [database-name] > db-backup.sql - ``` - - **Notes on additional command options:** - - - `-h`: If you prefer to run this command remotely and have access to MySQL from a remote system, add `-h [hostname]`, where *[hostname]* is the IP address or hostname of the remote database server. - - - `--ssl-mode=REQUIRED`: Force SSL when your existing database has SSL enabled. - - - `--set-gtid-purged=OFF`: Use this option if you have [GTID-based replication](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids-howto.html) enabled. - - - `--all-databases`: **Do not use this option**. When importing this backup into your Managed Database, it may delete all existing users from the cluster. - - See [Backing Up MySQL Databases Using mysqldump](/docs/guides/mysqldump-backups/) for more details on running the mysqldump command. - -- **cPanel:** See [Backup Wizard > Create a partial backup](https://docs.cpanel.net/cpanel/files/backup-wizard/#create-a-partial-backup) and [How to Back Up and Restore MySQL® Databases in cPanel](https://blog.cpanel.com/how-to-back-up-and-restore-mysql-databases-in-cpanel/). - -- **Plesk:** See [Exporting and Importing Database Dumps](https://docs.plesk.com/en-US/obsidian/reseller-guide/website-management/website-databases/exporting-and-importing-database-dumps.69538/#). - -### Preventing Corruption - -If data is modified during the export, your dataset may become inconsistent or corrupted. Because of this, you may want to prevent new data from being written during the time. This can be accomplished by stopping any services or applications that are currently using your database. In many cases, stopping the web server software is one of the quickest ways to do this, though its not recommended if that web server is also running other websites that need to maintain access. The following instructions cover stopping the two most popular web services, NGINX and Apache. - -- **Stop NGINX:** - - ```command - sudo systemctl stop nginx - ``` - -- **Stop Apache on Ubuntu/Debian:** - - ```command - sudo systemctl stop apache2 - ``` - -- **Stop Apache on RHEL/CentOS:** - - ```command - sudo systemctl stop httpd - ``` - -Alternatively, you can activate a _maintenance mode_ (or whatever it may be called for your application) on any applications or services using your database. This typically disables some of your site's functionality and may present a web page to visitors to notify them of the downtime. The process for this varies greatly depending on the application you may be using. - -## Import the Database - -Next, you'll need to import the `.sql` file to your Managed Database (the target database). This process can be accomplished through the mysql command-line tool. Run the following command on a system that has the MySQL client or server software installed. Replace *[host]* and *[username]* with the appropriate values for your database cluster. See the [Connect to a MySQL Database](/docs/products/databases/managed-databases/guides/mysql-connect/) guide for additional information and to learn how to view your Managed Database's connection details. - -```command -mysql -h [host] -u [username] -p < db-backup.sql -``` - -## Update the Database Connection Details within Your Application - -After the data has been imported into the Managed Database, you should update any applications that were using the original source database so that they use the new Managed Database instead. This typically involves editing the database connection details (such as the host, username, password, and port) within the code or within your application's GUI. Please consult the documentation for your application to learn how to adjust the database settings. In WordPress, for instance, the database connection details are stored within the `wp-config.php` file on your web server (see [Editing wp-config.php > Configure Database Settings](https://wordpress.org/support/article/editing-wp-config-php/)). - -## Enable Your Application - -If you turned off your web server or placed your application in a *maintenance mode*, you can now enable your application again. While the instructions for turning off *maintenance mode* vary depending on your application, here are the commands for starting the two most common web servers: - -- **Start NGINX:** - - ```command - sudo systemctl start nginx - ``` - -- **Start Apache on Ubuntu/Debian:** - - ```command - sudo systemctl start apache2 - ``` - -- **Start Apache on RHEL/CentOS:** - - ```command - sudo systemctl start httpd - ``` \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/mongodb-connect/index.md b/docs/products/databases/managed-databases/guides/mongodb-connect/index.md deleted file mode 100644 index d60854afce5..00000000000 --- a/docs/products/databases/managed-databases/guides/mongodb-connect/index.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: "Connect to a MongoDB Database" -description: "Learn how to connect to a MongoDB Managed Database through the command line or Compass" -published: 2022-06-06 -expiryDate: 2023-05-01 ---- - -{{% content "dbass-eos" %}} - -{{% content "managed-database-mongodb-private-notice-shortguide" %}} - -To connect to a MongoDB Managed Database, you need to know a few important details, such as the username, password, and host (or IP). You'll also need a MySQL client. This guide details how to access your database using popular tools. - -## View Connection Details - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select your Managed Database from the list. This opens the detail page for that database cluster. - -The *Connection Details* section contains information and credentials needed for you to connect to your database. - -- **Username:** The default user for all MongoDB Managed Databases is `linroot`, which has superuser admin privileges. This replaces the `root` user, which is not accessible. -- **Password:** The randomly generated password for your database cluster. See [Reset Root Password](/docs/products/databases/managed-databases/guides/reset-root-password/) if you wish to change it. -- **Host(s):** The fully qualified domain name you can use to reach your database cluster through the public network. For high availability clusters, multiple hosts are displayed. -- **Port:** The default port for your database is `27017`. -- **Replica set:** The name of the replica set. This is only relevant for multi-node high availability clusters and does not appear for standalone (single node) databases. -- **SSL:** This field is set to `ENABLED`, which means that it is required to use an encrypted TLS/SSL connection. - -Under the *Connection Details* section, there is a **Download CA Certificate** link, which lets you download the CA (Certificate Authority) certificate. This certificate file can be used if you wish to verify the CA certificate when connecting to the database. - -## Connect Using the MongoDB Shell (CLI) - -To connect direct to the database from a command-line, you can use the [MongoDB Shell](https://www.mongodb.com/products/shell) tool through the command `mongosh`. - -1. Make sure the IP address assigned to your system is included within your database's access controls. If not, add it now. See [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/). - -1. Verify that the `mongosh` command is installed on your system by running the following command: - - mongosh --version - - If it is not installed, follow the steps for your operating system under [Install the MongoDB Shell](#install-the-mongodb-shell). - -1. Use the `mongosh` command below to connect to your database, replacing `[username]` and `[host]` with the corresponding values in the [Connection Details](#view-connection-details) section. You must also download the CA certificate file for the database and replace `[certificate]` with the path and filename of that certificate. - - - **Standalone cluster (single node)** - - mongosh "mongodb://[username]@[host]:27017" --password --tls --tlsCAFile=[certificate] - - - **High availability cluster (3 nodes)** - - When connecting to a high availability cluster, input each host (along with the port) separated by a comma. You must also replace `[replica-set]` with the replica set defined in your connection details. - - mongosh "mongodb://[username]@[host1]:27017,[host2]:27017,[host3]:27017?replicaSet=[replica-set]" --password --tls --tlsCAFile=[certificate] - -1. Enter your password at the prompt. - -Once you are connected successfully, the MongoDB Shell prompt appears and you can enter queries and commands. See [mongosh Usage](https://www.mongodb.com/docs/mongodb-shell/run-commands/) for examples. - -### Install the MongoDB Shell - -If you do not currently have the MongoDB Shell installed on your system, the application can be download directly from the [MongoDB Shell Download](https://www.mongodb.com/try/download/shell) page by selecting your platform and clicking the **Download** button. The latest installation instructions can be found on the [Install mongosh](https://www.mongodb.com/docs/mongodb-shell/install/) guide. - -- **Windows:** - - Follow the instructions above to download the appropriate package directly from MongoDB's website. - -- **macOS:** - - It is recommended to install the MongoDB Shell through [Homebrew](https://brew.sh/]) though you can also install it by downloading the application from MongoDB's website. - - brew install mongosh - -- **Linux:** - - MongoDB Shell is available as a .deb (for Ubuntu 20.04 and 18.04), .rpm (for CentOS/RHEL), or as a compressed tarball for nearly any Linux distribution. - - 1. On the MongoDB Shell Download page, select *Linux Tarball 64-bit* as the platform and click the **Copy Link** text. - - 1. Run the following command in your Linux terminal, replacing *[download-url]* with the link you just copied. - - curl [download-url] --output mongodb-shell.tgz - - 1. Extract the compressed tarball. If you do not have the [tar](https://man7.org/linux/man-pages/man1/tar.1.html) command on your system, you will need to install that first. - - tar -zxvf mongodb-shell.tgz - - 1. Navigate into the `bin` folder within the unzipped directory. Your folder may vary from the one in the example command below. - - cd mongosh-1.5.0-linux-x64/bin - - 1. Make the mongosh file executable. - - chmod +x mongosh - - 1. Copy the files into your local bin directory or any directory already in your PATH variable. - - sudo cp mongosh /usr/local/bin/ - sudo cp mongosh_crypt_v1.so /usr/local/lib/ - -## Connect Using MongoDB Compass (GUI) - -The Compass tool provides a graphical interface for connecting to MongoDB databases. Using this tool, you can visualize your database and the data it contains. - -1. Install the MongoDB Compass software from the [MongoDB website](https://www.mongodb.com/products/compass). Be sure to select the operating system you're using locally. - -1. Open the software. You may need to continue through an initial walkthrough and set your privacy settings before you can use Compass. - -1. The default page should be the **New Connection** form. If you do not see this, click **Connect** > **New Connection** in the main menu. - -1. To connect to a your MongoDB database, you can either enter a connection string or click **Advanced Connection Option** and build a connection string manually. Since these instructions cover the latter option, click **Advanced Connection Option**. - -1. Under the *General* tab, enter the host url of your Managed Database followed by the port number *27017* (in the format `host:27017`). For high availability clusters, click the plus (+) icon and add each host that appears in your connection details. - - ![The General tab in MongoDB Compass](mongodb-compass-connection-general.png) - -1. Under the *Authentication* tab, select **Username/Password** and enter the username and password for your database. - - ![The Authentication tab in MongoDB Compass](mongodb-compass-connection-auth.png) - -1. Under the *TLS/SSL* tab, set the **SSL/TLS Connection** to *On*. Then, click the **Select a file** button under the **Certificate Authority** field and select the CA certificate file for your database. If you haven't downloaded the certificate file, do so now. See [View Connection Details](#view-connection-details). - - ![The TLS/SSL tab in MongoDB Compass](mongodb-compass-connection-tls.png) - -1. For high availability clusters, go to the *Advanced* tab and enter the replica set under **Replica Set Name**. - -1. Review the URI connection string and click **Connect** to test your connection and connect to the database. - - ![The New Connection window in MongoDB Compass](mongodb-compass-connection-string.png) - -1. Once the connection is successful, a new window appears where you can view your database and run queries. - - ![The main window in MongoDB Compass](mongodb-compass.png) - -For instructions on using MongoDB Compass to interact with your database, see the [MongoDB Compass documentation](https://www.mongodb.com/docs/compass/current/). \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-auth.png b/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-auth.png deleted file mode 100644 index 1ecce3121d5..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-auth.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-general.png b/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-general.png deleted file mode 100644 index 3c410cb9719..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-general.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-string.png b/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-string.png deleted file mode 100644 index fedfb76403c..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-string.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-tls.png b/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-tls.png deleted file mode 100644 index ffd30d98062..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass-connection-tls.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass.png b/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass.png deleted file mode 100644 index b2056316e64..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mongodb-connect/mongodb-compass.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mongodb-migrate/index.md b/docs/products/databases/managed-databases/guides/mongodb-migrate/index.md deleted file mode 100644 index 3beba7adf7e..00000000000 --- a/docs/products/databases/managed-databases/guides/mongodb-migrate/index.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: "Migrate a MongoDB Database to a Managed Database" -description: "Learn how to migrate an existing MongoDB database to Linode's Managed Database service." -published: 2022-06-17 -expiryDate: 2023-05-01 ---- - -{{% content "dbass-eos" %}} - -This guide covers how to migrate an existing MongoDB database to a Managed Database using the `mongodump` and `mongorestore` utilities. - -When migrating a database, there are two important terms to keep in mind: the *source* database and the *target* database. - -- **Source database:** The original database running on a software, system, or machine that you wish to decommission. This could be MongoDB running within your own Linux server, a development database on your local machine, or even a cloud database. -- **Target database:** The new replacement database that you wish to use. For this guide, the target database will be a Managed Database running on Linode's platform. - -Your individual migration workflow could deviate from the instructions provided here. You may need to consult with your developers or your application's documentation to learn how to perform some of these steps and to gather any best practices. You should also perform the migration on a staging server first and/or during a time when downtime least affects your users and/or business. - -## Before You Begin - -- **Create a Managed Database:** To minimize downtime, make sure to create your Managed Database database cluster *before* continuing. This ensures that your database has been fully provisioned (which can take up to 30 minutes) and that you have the new database credentials available. See [Create a Managed Database](/docs/products/databases/managed-databases/guides/create-database/). - -- **Verify the MongoDB Database Tools are installed** on whichever system you intend to use when exporting and importing the database. MongoDB Database Tools include the `mongodump` and `mongorestore` utilities, alongside other tools that can be used for working with MongoDB deployments. Starting with MongoDB v4.4, these tools have been packaged separately from the database software itself. They are compatible with MongoDB v4.0 and above. To determine if the tools are installed on your system, run the following command. - - mongodump --version - - If you receive an output with the version number, the tools are installed. If not, follow the instructions in the [Install MongoDB Database Tools](#install-mongodb-database-tools) section. - -## Install MongoDB Database Tools - -MongoDB Database Tools can be downloaded directly from the [MongoDB Download](https://www.mongodb.com/try/download/database-tools) page by selecting your platform and clicking the **Download** button. The latest installation instructions can be found in the [Installing the Database Tools](https://www.mongodb.com/docs/database-tools/installation/installation/) guide. - -- **Windows:** - - Follow the instructions above to download the appropriate package directly from MongoDB's website. - -- **macOS:** - - On macOS, MongoDB Database Tools can be installed through [Homebrew](https://brew.sh/). For more instructions, see [Installing the Database Tools on macOS](https://www.mongodb.com/docs/database-tools/installation/installation-macos/). - - 1. Add the [MongoDB formulae repository](https://github.com/mongodb/homebrew-brew) to Homebrew: - - brew tap mongodb/brew - - 1. Install the `mongodb-database-tools` package: - - brew install mongodb-database-tools - -- **Linux:** - - The toolset is available as a .deb (for Ubuntu 20.04 and 18.04), .rpm (for CentOS/RHEL), or as a compressed tarball for nearly any Linux distribution. For more instructions, see [Installing the Database Tools on Linux](https://www.mongodb.com/docs/database-tools/installation/installation-linux/). - - 1. In the [MongoDB Download Center](https://www.mongodb.com/try/download/database-tools) under the **MongoDB Database Tools** section, select the corresponding x86_64 package for your Linux distribution. Verify that the package is either a *deb* or *rpm*, not *tgz*. Click the **Copy Link** text next to the **Download** button. - - 1. Download the file to your Linux system. In the command below, replace *[download-url]* with url you copied in the previous step. - - curl -O [download-url] - - 1. Install the package through your system's package manager. Replace *[filename]* with the name of the file you just downloaded. - - **apt (.deb)** (Ubuntu and Debian): - - sudo apt install ./[filename] - - **yum (.rpm)** (CentOS Stream, CentOS, AlmaLinux, Rocky Linux) - - sudo yum install -y [filename] - -## Export from the Source Database - -Exporting the data from the original database is facilitated through the [mongodump](https://www.mongodb.com/docs/database-tools/mongodump/) utility. The following commands create a BSON export of the contents of a specified database. Replace *[username]* with your database user, *[database-name]* with the name of your database, and *[host]* with the hostname/domain of your source database. - -- **Standalone cluster (single node)** - - mongodump --username=[username] --host=[host]:27017 --db=[database-name] --gzip --archive=database.archive - -- **High availability cluster (3 nodes)** - - When connecting to a high availability cluster, input each host (along with the port) separated by a comma. You must also replace *[replica-set]* with the replica set of your source database. - - mongodump --username=[username] --host=[replica-set]/[host1]:27017,[host2]:27017,[host3]:27017 --db=[database-name] --gzip --archive=database.archive - -{{< note >}} -If your source database is also a Linode Managed Database, add the following options to either of the above commands: `--authenticationDatabase=admin --ssl --sslCAFile=[certificate-file]`. Replace *[certificate-file]* with the filename and path of your CA Certificate. -{{< /note >}} - -See the [mongodump](https://www.mongodb.com/docs/database-tools/mongodump/) documentation to learn more about the [options](https://www.mongodb.com/docs/database-tools/mongodump/#options) available for this utility and to view common [examples](https://www.mongodb.com/docs/database-tools/mongodump/#examples). - -## Import to the Target Managed Database - -Once you've successfully backed up the source database, you can import your data into your Managed Database (the *target* database). To import the database, this guide covers the [mongorestore](https://www.mongodb.com/docs/database-tools/mongorestore/) utility, which is the counterpart to mongodump. It restores a BSON dump created by mongodump to a MongoDB database instance. In the below commands, replace *[database-name]* with the name of your database and replace *[host]* with the hostname of your Managed Database. - -- **Standalone cluster (single node)** - - mongorestore --username=linroot --host=[host]:27017 --nsInclude="[database-name].*" --ssl --sslCAFile=[certificate-file] --gzip --archive=database.archive - -- **High availability cluster (3 nodes)** - - When restoring to a high availability cluster, input each host (along with the port) separated by a comma. You must also replace *[replica-set]* with the replica set defined for your Managed Database and replace *[host1]*, *[host2]*, and *[host3]* with the hostnames of your Managed Database. - - mongorestore --username=linroot --host=[replica-set]/[host1]:27017,[host2]:27017,[host3]:27017 --nsInclude="[database-name].*" --ssl --sslCAFile=[certificate-file] --gzip --archive=database.archive - -This assumes your database backup file is called *database.archive* and is located in your current directory (as per previous steps in this guide). If you used a different filename or path for your backup, replace *database.archive* as needed in the above command. - -See the [mongorestore](https://www.mongodb.com/docs/database-tools/mongorestore/) documentation to learn more about the [options](https://www.mongodb.com/docs/database-tools/mongorestore/#options) available for this utility and to view common [examples](https://www.mongodb.com/docs/database-tools/mongorestore/#examples). \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-main.png b/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-main.png deleted file mode 100644 index 0538cfdb82f..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-main.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-new.png b/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-new.png deleted file mode 100644 index 37ed863bf52..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-new.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-ssl.png b/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-ssl.png deleted file mode 100644 index 911ba4d91b6..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mysql-connect/dbeaver-mysql-connection-ssl.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mysql-connect/index.md b/docs/products/databases/managed-databases/guides/mysql-connect/index.md deleted file mode 100644 index 1913e04c337..00000000000 --- a/docs/products/databases/managed-databases/guides/mysql-connect/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: "Connect to a MySQL Managed Database" -description: "Learn how to connect to a MySQL Managed Database through the command line or MySQL Workbench." -published: 2022-02-23 -modified: 2022-07-22 ---- - -{{% content "dbass-eos" %}} - -To connect to a MySQL Managed Database, you need to know a few important details, such as the username, password, and host (or IP). You'll also need a MySQL client. This guide details how to access your database using popular tools. - -## View Connection Details - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select your Managed Database from the list. This opens the detail page for that database cluster. - -The *Connection Details* section contains information and credentials needed for you to connect to your database. - -- **Username:** The default user for all MySQL Managed Databases is `linroot`, which has superuser admin privileges. This replaces the `root` user, which is not accessible. -- **Password:** The randomly generated password for your database cluster. See [Reset Root Password](/docs/products/databases/managed-databases/guides/reset-root-password/) if you wish to change it. -- **Host:** The fully qualified domain name you can use to reach your database cluster through the public network. -- **Private network host:** The fully qualified domain name you can use to reach your database cluster through the data center's private network (not a VLAN). Communicating with a Database Cluster over the private network avoids network transfer fees, so it's recommended to use this host string when possible. -- **Port:** The default port for your database is `3306`. -- **SSL:** This field is set to `ENABLED`, which means that it is required to use an encrypted TLS/SSL connection. - -Under the *Connection Details* section, there is a **Download CA Certificate** link, which lets you download the CA (Certificate Authority) certificate. This certificate file can be used if you wish to verify the CA certificate when connecting to the database. - -## Connect Using MySQL (CLI) - -To connect direct to the database from a command-line, you can use the `mysql` tool. This tool is typically not available by default on most operating systems, but is included along with many MySQL clients (and servers) - -1. Make sure the IP address assigned to your system is included within your database's access controls. If not, add it now. See [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/). - -1. Verify that the `mysql` tool is installed on your system by running the following command: - - ```command - mysql --version - ``` - - If it is not installed, follow the steps for your operating system in the [Installing MySQL](/docs/guides/install-mysql/) guide. - -1. Use the `mysql` command below to connect to your database, replacing `[host]` and `[username]` with the corresponding values in the [Connection Details](#view-connection-details) section. - - ```command - mysql --host=[host] --user=[username] --password --ssl-mode=required - ``` - - If your system is using MariaDB instead of MySQL (such as when using the default packages in Debian's own repository), replace the `--ssl-mode=required` parameter with `--ssl=true`. - - {{< note >}} - If you are connecting to the *private network host*, ensure your Compute Instance is located within that same data center and you have added a Private IPv4 address to that instance. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#adding-an-ip-address). - {{< /note >}} - -1. Enter your password at the prompt. - -Once you are connected successfully, the MySQL prompt appears and you can enter SQL queries. See [Introduction to SQL Commands](/docs/guides/sql-commands/) for examples. - -See [Using the MySQL Command Line Client](/docs/guides/mysql-command-line-client/) for more information or reference [Connecting to the MySQL Server Using Command Options](https://dev.mysql.com/doc/refman/8.0/en/connecting.html) within MySQL's own documentation. - -## Connect Using MySQL Workbench (GUI) - -The MySQL Workbench provides a graphical interface for connecting to MySQL databases. Using this tool, you can visualize your database, its structure, and the data it contains. - -1. Make sure the IP address assigned to your system is included within your database's access controls. If not, add it now. See [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/). - -1. Install the MySQL Workbench software from the [MySQL Community Downloads](https://dev.mysql.com/downloads/workbench/) page. Be sure to select the operating system you're using locally. - -1. Open the software and select **Database > Manage Connections** from the menu. This displays the **Manage Server Connections** window. - -1. Enter a **Connection Name** for this new connection. - -1. Under the *Parameters* tab, enter the details for your connection, including the **Hostname**, **Username**, and **Port**. You can optionally store your password by clicking the **Store in Keychain...** button and entering your password. If you do not store your password, you must enter it manually each time you connect. For security reasons, it's typically recommended *not* to store your password. - - ![The Parameters tab in MySQL Workbench](mysql-workbench-connection-parameters.png) - -1. Under the *SSL* tab, set **Use SSL** to *Require*. You may also use *Required and Verify CA* if you wish to verify the CA (Certificate Authority) certificate each time you connect. If you choose this option, download the CA certificate from Cloud Manager and set the **SSL CA File** field to point to that downloaded file. - - ![The SSL tab in MySQL Workbench](mysql-workbench-connection-ssl.png) - -1. Click **Test Connection** to verify you can successfully connect to the database and then click **Close** to store the connection settings and return to the main screen. - -1. To connect to the database, select **Database > Connect to Database** from the main menu. In the following screen, select the stored connection you just created and click **OK**. - -For instructions on using MySQL Workbench to interact with your database, see [Install MySQL Workbench for Database Administration](/docs/guides/deploy-mysql-workbench-for-database-administration/#creating-and-populating-databases) or look through the [MySQL Workbench Manual](https://dev.mysql.com/doc/workbench/en/). - -## Connect Using DBeaver - -[DBeaver](https://dbeaver.io/) is free and open source universal database tool for developers and database administrators. DBeaver provides a powerful SQL-editor, administration features, ability to migrate data and schema, monitor database connection sessions, and others. - -1. Make sure the IP address assigned to your system is included within your database's access controls. If not, add it now. See [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/). - -1. Install the DBeaver Community (or Pro) software from the [DBeaver Downloads](https://dbeaver.io/download/) page. Be sure to select the operating system you're using locally. - -1. Open DBeaver, click the **Database** menu dropdown, and select **New Connection**. - -1. The **Connect to a database** window appears. Select **MySQL** and click **Next** to continue. - - ![Screenshot of the DBeaver database selection screen with MySQL highlighted](dbeaver-mysql-connection-new.png) - -1. Within the *Main* tab, enter the details for your connection, including the **Server Host** (hostname) **Port**, and **Username**. You can optionally store your password by entering your password and clicking the **Save password locally** button. If you do not store your password, you must enter it manually each time you connect. For security reasons, it's typically recommended *not* to store your password. - - ![Screenshot of DBeaver's MySQL connection settings.](dbeaver-mysql-connection-main.png) - -1. In the *SSL* tab, check **Use SSL**, check **Require SSL**, and uncheck **Verify server certificate**. - - ![Screenshot of DBeaver's MySQL SSL connection settings.](dbeaver-mysql-connection-ssl.png) - -1. Click the **Test Connection** button to check if the connection is successful. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/mysql-connect/mysql-workbench-connection-parameters.png b/docs/products/databases/managed-databases/guides/mysql-connect/mysql-workbench-connection-parameters.png deleted file mode 100644 index 6a56a1a07ba..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mysql-connect/mysql-workbench-connection-parameters.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/mysql-connect/mysql-workbench-connection-ssl.png b/docs/products/databases/managed-databases/guides/mysql-connect/mysql-workbench-connection-ssl.png deleted file mode 100644 index 768c528bce2..00000000000 Binary files a/docs/products/databases/managed-databases/guides/mysql-connect/mysql-workbench-connection-ssl.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/postgresql-connect/dbeaver-postgresql-connection-details.png b/docs/products/databases/managed-databases/guides/postgresql-connect/dbeaver-postgresql-connection-details.png deleted file mode 100644 index 46d484ade7a..00000000000 Binary files a/docs/products/databases/managed-databases/guides/postgresql-connect/dbeaver-postgresql-connection-details.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/postgresql-connect/dbeaver-postgresql-connection-new.png b/docs/products/databases/managed-databases/guides/postgresql-connect/dbeaver-postgresql-connection-new.png deleted file mode 100644 index 82758bd7fa8..00000000000 Binary files a/docs/products/databases/managed-databases/guides/postgresql-connect/dbeaver-postgresql-connection-new.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/postgresql-connect/index.md b/docs/products/databases/managed-databases/guides/postgresql-connect/index.md deleted file mode 100644 index 0eac69d8b20..00000000000 --- a/docs/products/databases/managed-databases/guides/postgresql-connect/index.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: "Connect to a PostgreSQL Database" -description: "Learn how to connect to a PostgreSQL Managed Databse through the command line or pgAdmin." -published: 2022-06-06 -modified: 2022-07-28 ---- - -{{% content "dbass-eos" %}} - -To connect to a PostgreSQL Managed Database, you need to know a few important details, such as the username, password, and host (or IP). You'll also need a PostgreSQL client. This guide details how to access your database using popular tools. - -## View Connection Details - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select your PostgreSQL Managed Database from the list. This opens the detail page for that database cluster. - -The *Connection Details* section contains information and credentials needed for you to connect to your database. - -- **Username:** The default user for all PostgreSQL Managed Databases is `linpostgres`. This replaces the `root` user, which is not accessible. Superuser access is not available. - {{< note >}} - The `linpostgres` user and default `postgres` database should be used for administrative purposes only, you can create separate users and databases for application purposes. For more information about creating users and databases, see [Using PostgreSQL](/docs/guides/how-to-install-use-postgresql-ubuntu-20-04/#using-postgresql). - {{< /note >}} -- **Password:** The randomly generated password for your database cluster. See [Reset Root Password](/docs/products/databases/managed-databases/guides/reset-root-password/) if you wish to change it. -- **Host:** The fully qualified domain name you can use to reach your database cluster through the public network. -- **Private network host:** The fully qualified domain name you can use to reach your database cluster through the data center's private network (not a VLAN). Communicating with a Database Cluster over the private network avoids network transfer fees, so it's recommended to use this host string when possible. -- **Port:** The default port for your database is `5432`. -- **SSL:** This field is set to `ENABLED`, which means that it is required to use an encrypted TLS/SSL connection. - -Under the *Connection Details* section, there is a **Download CA Certificate** link, which lets you download the CA (Certificate Authority) certificate. This certificate file can be used if you wish to verify the CA certificate when connecting to the database. - -## Connect Using psql (CLI) - -To connect direct to the database from the command-line, you can use the `psql` tool. This tool is included as part of most PostgreSQL server installations, though you can also install it separately on most operating systems. - -1. Make sure the IP address assigned to your system is included within your database's access controls. If not, add it now. See [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/). - -1. Verify that the `psql` tool is installed on your system by running the following command: - - ```command - psql --version - ``` - - If it is not installed, follow the steps for your operating system under [Install psql](#install-psql). - -1. Use the `psql` command below to connect to your database, replacing `[host]` and `[username]` with the corresponding values in the [Connection Details](#view-connection-details) section. - - ```command - psql --host=[host] --username=[username] --password --dbname=postgres - ``` - - {{< note >}} - If you are connecting to the *private network host*, ensure your Compute Instance is located within that same data center and you have added a Private IPv4 address to that instance. See [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#adding-an-ip-address). - {{< /note >}} - -1. Enter your password at the prompt. - -Once you are connected successfully, the PostgreSQL prompt appears and you can enter commands to interact with the database. See the [psql documentation](https://www.postgresql.org/docs/13/app-psql.html) to learn more about the command and the options available to you. - -### Install psql - -If you do not currently have the psql command-line client installed on your system, follow the instructions in this section to install it through your distribution's repositories. - -{{< note >}} -If you require a specific version of the PostgreSQL client, it's recommended to use the official PostgreSQL repositories instead of your distribution's. Visit [PostgreSQL Downloads](https://www.postgresql.org/download/), select your operating system (and distribution), and follow the corresponding installation instructions. -{{< /note >}} - -- **CentOS Stream 9 (and 8), CentOS/RHEL 8 (including AlmaLinux 8 and RockyLinux 8):** - - ```command - sudo dnf install postgresql - ``` - -- **CentOS/RHEL 7:** - - ```command - sudo yum install postgresql - ``` - -- **Fedora:** - - ```command - sudo dnf install postgresql - ``` - -- **Ubuntu and Debian:** - - ```command - sudo apt update - sudo apt install postgresql-client - ``` - -## Connect Using pgAdmin (GUI) - -pgAdmin is an open-source application that provides you with a graphical interface for interacting with your PostgreSQL database. It can be used on a server (through a web browser) or as a stand-alone desktop application. These instructions cover installing and using the desktop application. - -1. Download and install pgAdmin from the [pgAdmin Downloads](https://www.pgadmin.org/download/) page, making sure to select the appropriate file for your local operating system. - -1. The first time the application runs, you are prompted to configure a primary password (also called *master password*) that is used to unlock any saved passwords for database servers you may configure. - -1. Next, you are prompted to register a server (configuring a connection to a server). If you do not see this screen, click Object > Register > Server from the main menu. - -1. Under the *General* tab, set a name for your server. - - ![Screenshot of the General tab within the Register Server form](pgadmin-register-server-general.png) - -1. Under the *Connection* tab, configure the connection details for this server. To obtain this information, see [View Connection Details](#view-connection-details). - - ![Screenshot of the Connection tab within the Register Server form](pgadmin-register-server-connection.png) - -1. Under the *SSL* tab, you can leave **SSL Mode** as *Prefer* or explicitly set it to *Require*. You may also set it to *Verify-CA* if you wish to verify the CA (Certificate Authority) certificate each time you connect. If you choose this option, download the CA certificate from Cloud Manager and set the **Root Certificate** field to point to that downloaded file. - -1. Once all the settings have been appropriately configured, click the **Save** button to save the settings and attempt to connect. - - ![Screenshot of the browser window in pgAdmin 4](pgadmin-browser.png) - -## Connect Using DBeaver - -[DBeaver](https://dbeaver.io/) is free and open source universal database tool for developers and database administrators. DBeaver provides a powerful SQL-editor, administration features, ability to migrate data and schema, monitor database connection sessions, and others. - -1. Make sure the IP address assigned to your system is included within your database's access controls. If not, add it now. See [Manage Access Controls](/docs/products/databases/managed-databases/guides/manage-access-controls/). - -1. Install the DBeaver Community (or Pro) software from the [DBeaver Downloads](https://dbeaver.io/download/) page. Be sure to select the operating system you're using locally. - -1. Open DBeaver, click the **Database** menu dropdown, and select **New Connection**. - -1. The **Connect to a database** window appears. Select **PostgeSQL** and click **Next** to continue. - - ![Screenshot of the DBeaver database selection screen with MySQL highlighted](dbeaver-postgresql-connection-new.png) - -1. In the *Main* tab, enter the details for your connection, including the **Server Host** (hostname) **Port**, and **Username**. You can optionally store your password by entering your password and clicking the **Save password locally** button. If you do not store your password, you must enter it manually each time you connect. For security reasons, it's typically recommended *not* to store your password. - - ![Screenshot of the DBeaver PostgreSQL connection details window](dbeaver-postgresql-connection-details.png) - -1. Click the **Test Connection** button to check if the connection is successful. diff --git a/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-browser.png b/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-browser.png deleted file mode 100644 index 0af173f7f5e..00000000000 Binary files a/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-browser.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-register-server-connection.png b/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-register-server-connection.png deleted file mode 100644 index 0975a0b0df7..00000000000 Binary files a/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-register-server-connection.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-register-server-general.png b/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-register-server-general.png deleted file mode 100644 index 8cc5a5ae5db..00000000000 Binary files a/docs/products/databases/managed-databases/guides/postgresql-connect/pgadmin-register-server-general.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/postgresql-extensions/index.md b/docs/products/databases/managed-databases/guides/postgresql-extensions/index.md deleted file mode 100644 index afca4eb1c4a..00000000000 --- a/docs/products/databases/managed-databases/guides/postgresql-extensions/index.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: "PostgreSQL Extensions" -title_meta: "Using PostgreSQL Extensions with Managed Databases" -description: "Learn which PostgreSQL extensions are supported by Linode's Managed Database service and how to install them." -published: 2022-06-06 -modified: 2023-04-27 ---- - -{{% content "dbass-eos" %}} - -The functionality of PostgreSQL can be enhanced through the use of [extensions](https://wiki.postgresql.org/wiki/Extensions). Linode's PostgreSQL Managed Database service supports many of these extensions. - -## Manage Extensions - -Many extensions can be viewed, installed, and removed directly from the PostgreSQL command-line prompt. To access this prompt, connect to your database using the psql tool. See [Connect to a PostgreSQL Database > psql](/docs/products/databases/managed-databases/guides/postgresql-connect/#connect-using-psql-cli). - -### View Installed Extensions - -To view the extensions that are currently installed on your PostgreSQL Managed Database, run the `\dx` command at the prompt. The output should be similar to the following, displaying each extension along with its version number, schema, and a short description. - -```output - Name | Version | Schema | Description ----------------+---------+------------+-------------------------------- - plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language -``` - -### View Available Extensions - -To see a full list of all the extensions available for your version of PostgreSQL, run the following query. You can also review the [List of Available Extensions](#list-of-available-extensions) below. - -```command -SELECT * FROM pg_available_extensions; -``` - -{{< note type="alert" >}} -Linode does not provide superuser access to PostgreSQL Managed Databases. As such, some extensions may not function properly or may otherwise encounter permissions issues. -{{< /note >}} - -### Install an Extension - -To install one of the available extensions on your database, use the [CREATE EXTENSION](https://www.postgresql.org/docs/current/sql-createextension.html) command, replacing `[extension_name]` with the name of the extension you wish to install. - -```command -CREATE EXTENSION IF NOT EXISTS [extension_name]; -``` - -If this command does not work, the extension may either not be compatible or it may need to be manually enabled on your Managed Database by our team. Review the [extensions list](#list-of-available-extensions) below. - -### Remove an Extension - -To remove an extension, use the [DROP EXTENSION](https://www.postgresql.org/docs/current/sql-dropextension.html) command, replacing `[extension_name]` with the name of the extension you wish to install. - -```command -DROP EXTENSION [extension_name]; -``` - -## List of Available Extensions - -The table below lists all of the PostgreSQL extensions that may be supported by our Managed Database service, along with the compatible PostgreSQL versions. - -{{< note type="alert" >}} -Linode does not provide superuser access to PostgreSQL Managed Databases. As such, some extensions may not function properly or may otherwise encounter permissions issues. Extensions that are known not to work, such as `adminpack`, have been marked as incompatible in the list below. If you encounter an extension that isn't working as expected due to permissions issues, our team can review the extension. Reach out to [Support](https://www.linode.com/support/) with the extension name, the name of the database for which you wish to use the extension, and your use case. -{{< /note >}} - -| Extension | Compatible PostgreSQL Version(s) | Description | -| -- | -- | -- | -| `address_standardizer` | 11, 12, 13 | Used to parse an address into constituent elements. Generally used to support geocoding address normalization step. | -| `address_standardizer_data_us` | 11, 12, 13 | Example dataset for `address_standardizer`. | -| `adminpack` (**incompatible**) | 10, 11, 12, 13 | Administrative functions for PostgreSQL | -| `amcheck` | 10, 11, 12, 13 | Functions for verifying relation integrity | -| `amcheck_next`| 10, 11 | Functions for verifying relation integrity | -| `autoinc` | 10, 11, 12, 13 | Functions for auto incrementing fields | -| `bloom` | 10, 11, 12, 13 | Bloom access method - signature file based index | -| `btree_gin` | 10, 11, 12, 13 | Support for indexing common data types in GIN | -| `btree_gist` | 10, 11, 12, 13 | Support for indexing common data types in GiST | -| `chkpass` | 10 | Data type for auto-encrypted passwords | -| `citext` | 10, 11, 12, 13 | Data type for case-insensitive character strings | -| `cube` | 10, 11, 12, 13 | Data type for multidimensional cubes | -| `dblink` | 10, 11, 12, 13 | Connect to other PostgreSQL databases from within a database | -| `dict_int` | 10, 11, 12, 13 | Text search dictionary template for integers | -| `dict_xsyn` | 10, 11, 12, 13 | Text search dictionary template for extended synonym processing | -| `earthdistance` | 10, 11, 12, 13 | Calculate great-circle distances on the surface of the Earth | -| `file_fdw` | 10, 11, 12, 13 | Foreign-data wrapper for flat file access | -| `fuzzystrmatch`\* | 10, 11, 12, 13 | Determine similarities and distance between strings | -| `hll` | 10, 11, 12, 13 | Type for storing HyperLogLog data | -| `hstore` | 10, 11, 12, 13 | Data type for storing sets of (key, value) pairs | -| `hstore_plperl` | 10, 11, 12, 13 | Transform between `hstore` and `plperl` | -| `hstore_plperlu` | 10, 11, 12, 13 | Transform between `hstore` and `plperlu` | -| `hypopg` | 11, 12, 13 | Hypothetical indexes for PostgreSQL | -| `insert_username` | 10, 11, 12, 13 | Functions for tracking who changed a table | -| `intagg` | 10, 11, 12, 13 | Integer aggregator and enumerator (obsolete) | -| `intarray` | 10, 11, 12, 13 | Functions, operators, and index support for 1-D arrays of integers | -| `ip4r` | 10, 11, 12, 13 | | -| `isn` | 10, 11, 12, 13 | Data types for international product numbering standards | -| `jsonb_plperl` | 11, 12, 13 | Transform between `jsonb` and `plperl` | -| `jsonb_plperlu` | 11, 12, 13 | Transform between `jsonb` and `plperlu` | -| `lo` | 10, 11, 12, 13 | Large Object maintenance | -| `ltree` | 10, 11, 12, 13 | Data type for hierarchical tree-like structures | -| `moddatetime` | 10, 11, 12, 13 | Functions for tracking last modification time | -| `orafce` | 10, 11, 12, 13 | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS | -| `pageinspect` | 10, 11, 12, 13 | Inspect the contents of database pages at a low level | -| `pg_buffercache` | 10, 11, 12, 13 | Examine the shared buffer cache | -| `pg_cron` | 11, 12, 13 | Job scheduler for PostgreSQL | -| `pg_freespacemap` | 10, 11, 12, 13 | Examine the free space map (FSM) | -| `pg_prewarm` | 10, 11, 12, 13 | Prewarm relation data | -| `pg_repack` | 10, 11, 12, 13 | Reorganize tables in PostgreSQL databases with minimal locks | -| `pg_stat_statements` | 10, 11, 12, 13 | Track execution statistics of all SQL statements executed | -| `pg_trgm` | 10, 11, 12, 13 | Text similarity measurement and index searching based on trigrams | -| `pg_visibility` | 10, 11, 12, 13 | Examine the visibility map (VM) and page-level visibility info | -| `pgaudit` (**incompatible**) | 10, 11, 12, 13 | Provides auditing functionality | -| `pgcrypto` | 10, 11, 12, 13 | Cryptographic functions | -| `pglogical` | 10, 11, 12, 13 | PostgreSQL Logical Replication | -| `pglogical_origin` | 10, 11, 12, 13 | Dummy extension for compatibility when upgrading from Postgres 9.4 | -| `pgrowlocks` | 10, 11, 12, 13 | Show row-level locking information | -| `pgstattuple` | 10, 11, 12, 13 | Show tuple-level statistics | -| `plpgsql` | 10, 11, 12, 13 | PL/pgSQL procedural language | -| `postgis`\* | 10, 11, 12, 13 | PostGIS geometry and geography spatial types and functions | -| `postgis_sfcgal` | 10, 11, 12, 13 | PostGIS SFCGAL functions | -| `postgis_tiger_geocoder` | 10, 11, 12, 13 | PostGIS tiger geocoder and reverse geocoder | -| `postgis_topology` | 10, 11, 12, 13 | PostGIS topology spatial types and functions | -| `postgres_fdw` | 10, 11, 12, 13 | Foreign-data wrapper for remote PostgreSQL servers | -| `prefix` | 10, 11, 12, 13 | Prefix Range module for PostgreSQL | -| `refint` | 10, 11, 12, 13 | Functions for implementing referential integrity (obsolete) | -| `seg` | 10, 11, 12, 13 | Data type for representing line segments or floating-point intervals | -| `sslinfo` | 10, 11, 12, 13 | Information about SSL certificates | -| `tablefunc` | 10, 11, 12, 13 | Functions that manipulate whole tables, including crosstab | -| `tcn` | 10, 11, 12, 13 | Triggered change notifications | -| `timescaledb` | 11, 12, 13 | Enables scalable inserts and complex queries for time-series data | -| `timetravel` | 10, 11 | Functions for implementing time travel | -| `tsm_system_rows` | 10, 11, 12, 13 | TABLESAMPLE method which accepts number of rows as a limit | -| `tsm_system_time` | 10, 11, 12, 13 | TABLESAMPLE method which accepts time in milliseconds as a limit | -| `unaccent` | 10, 11, 12, 13 | Text search dictionary that removes accents | -| `uuid-ossp` | 10, 11, 12, 13 | Generate universally unique identifiers (UUIDs) | -| `xml2` | 10, 11, 12, 13 | XPath querying and XSLT | - -*\* This extension may need to be manually enabled by our team. Contact [Support](https://www.linode.com/support/) with the name of the extension and the name of the Managed Database you wish to enable it on.* - -If you would like to use an extension that's not currently listed here, contact our [Support](https://www.linode.com/support/) team and they'll be able to send your feedback to our developers. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/postgresql-migrate/index.md b/docs/products/databases/managed-databases/guides/postgresql-migrate/index.md deleted file mode 100644 index ac3ae0ce078..00000000000 --- a/docs/products/databases/managed-databases/guides/postgresql-migrate/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Migrate a PostgreSQL Database to a Managed Database" -description: "Learn how to migrate an existing PostgreSQL database to Linode's Managed Database service." -published: 2022-06-17 ---- - -{{% content "dbass-eos" %}} - -This guide covers how to migrate an existing PostgreSQL database to a Managed Database. When migrating a database, there are two important terms to keep in mind: the *source* database and the *target* database. - -- **Source database:** The original database running on a software, system, or machine that you wish to decommission. This could be PostgreSQL running within your own Linux server, a development database on your local machine, or even a cloud database. -- **Target database:** The new replacement database that you wish to use. For this guide, the target database will be a Managed Database running on Linode's platform. - -Your individual migration workflow could deviate from the instructions provided here. You may need to consult with your developers or your application's documentation to learn how to perform some of these steps and to gather any best practices. You should also perform the migration on a staging server first and/or during a time when downtime least affects your users and/or business. - -## Before You Begin - -- **Create a Managed Database:** To minimize downtime, make sure to create your Managed Database database cluster *before* continuing. This ensures that your database has been fully provisioned (which can take up to 30 minutes) and that you have the new database credentials available. See [Create a Managed Database](/docs/products/databases/managed-databases/guides/create-database/). - -- **Ensure that the PostgreSQL version on your new Managed Database is equal to or greater than the version on your source database cluster.** This guide uses the [pg_restore](https://www.postgresql.org/docs/current/app-pgrestore.html) utility, which cannot be used to import data into a PostgreSQL version *older* than on the source machine. - -## Export from the Source Database - -Exporting the data from the original database is facilitated through the [pg_dump](https://www.postgresql.org/docs/current/app-pgdump.html) and [pg_dumpall](https://www.postgresql.org/docs/current/app-pg-dumpall.html) utilities. The **pg_dump** tool saves a copy of a single database as a script file, while the **pg_dumpall** tool can save all databases as well as any [database roles](https://www.postgresql.org/docs/current/user-manag.html). - -1. **Export the database roles.** Replace *[user]* with the username for your source database. The default username for many PostgreSQL installations is `postgres`. - - ```command - pg_dumpall --roles-only --username=[user] --file=roles.backup - ``` - - If you are connecting to a remote database, add `--host [host]` and `--port [port]` to the command above, replacing *[host]* with the host url of your remote database and *[port]* with the port number. - - {{< note >}} - This step requires admin/superuser access to the PostgreSQL cluster. If you do not have this level of access and you still wish to preserve the existing roles, you can manually create the roles on your Managed Database though [SQL](https://www.postgresql.org/docs/current/sql-createrole.html) or the [`createuser`](https://www.postgresql.org/docs/current/app-createuser.html) functionality of psql. If you do not do this, all data will be owned by the `linpostgres` user once you import your data to your Managed Database cluster. - {{< /note >}} - -1. **Export each database you wish to backup.** Replace *[database-name]* with the name of your database and *[user]* with the username for your source database. The other options in this command are used to ensure maximum compatibility with Linode's PostgreSQL Managed Databases. - - ```command - pg_dump -Fd --quote-all-identifiers --verbose --lock-wait-timeout=480000 --no-unlogged-table-data --serializable-deferrable --jobs=1 --dbname [database-name] --username [user] --file database.backup - ``` - - Again, add `--host [host]` and `--port [port]` to the command above if you are connecting to a remote database. You can run this command for each database you wish to export, though you may want to edit the `--file` option with a custom filename. - -## Import to the Target Managed Database - -Once you've successfully backed up the source database, you can import your data into your Managed Database (the *target* database). To import the database, this guide covers the [pg_restore](https://www.postgresql.org/docs/current/app-pgrestore.html) utility. - -1. **Import your database roles to your Managed Database** using the psql command below. Replace *[host]*, and *[username]* with the corresponding values for your Managed Database. See [Connection Details](/docs/products/databases/managed-databases/guides/postgresql-connect/#view-connection-details). - - ```command - psql --host=[host] --username=[username] --dbname=postgres --file=roles.backup - ``` - - This assumes your database roles backup file is called *roles.backup* and is located in your current directory (as per previous steps in this guide). If you used a different filename or path for your backup, replace *roles.backup* as needed in the above command. - -1. **Create your database**, making sure that your preferred database name doesn't already exist. If it does, you can drop the database before creating it. In the commands below, replace *[database-name]* with the name of your database and *[host]* and *[username]* with the corresponding [Connection Details](/docs/products/databases/managed-databases/guides/postgresql-connect/#view-connection-details) for your Managed Database. - - ```command - psql --host=[host] --username=[username] --dbname=postgres --command='DROP DATABASE IF EXISTS [database-name];' - psql --host=[host] --username=[username] --dbname=postgres --command='CREATE DATABASE [database-name];' - ``` - - {{< note type="alert" >}} - Using `DROP DATABASE` command results in the deletion of any data stored on that database. If you are replacing an existing database and would like to avoid data loss, make sure you have a backup containing any data you would like to retain before running the command. - {{< /note >}} - -1. **Import your database file** to your newly created database. - - ```command - pg_restore --host=[host] --username=[user] --verbose --no-tablespaces --dbname=[database-name] database.backup - ``` - - This assumes your database backup file is called *database.backup* and located in your current directory (as per previous steps in this guide). If you used a different filename or path for your backup, replace *database.backup* as needed in the above command. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/reset-root-password/database-reset-root.png b/docs/products/databases/managed-databases/guides/reset-root-password/database-reset-root.png deleted file mode 100644 index d287b3813c0..00000000000 Binary files a/docs/products/databases/managed-databases/guides/reset-root-password/database-reset-root.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/reset-root-password/index.md b/docs/products/databases/managed-databases/guides/reset-root-password/index.md deleted file mode 100644 index 564e8d8d728..00000000000 --- a/docs/products/databases/managed-databases/guides/reset-root-password/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Reset the Root Password" -description: "Learn how to reset the root password on a Linode Managed Database." ---- - -{{% content "dbass-eos" %}} - -If you need to reset the root password on your Managed Database, you can do so through Cloud Manager. This process assigns a new randomly generated password to the `linroot` user. This is helpful when someone should no longer have access to that user or if you believe your password may have been compromised. - -{{< note type="alert" >}} -Resetting the root password will prevent you from restoring all previously taken backups. Ensure that you have offsite backups available if needed. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select your Managed Database from the list. This opens the detail page for that database cluster. - -1. Navigate to the **Settings** tab. - -1. In the *Reset Root Password* section, click the **Reset Root Password** button. A confirmation dialog appears. - - ![Screenshot of the Reset Root Password section](database-reset-root.png) - -1. Click **Reset Password** to confirm. A new password will automatically be generated for this database cluster within a few minutes. To view the new password, navigate to the **Summary** tab and click the **Show** button next to the *password* field within the *Connection Details* section. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/updates-and-maintenance/index.md b/docs/products/databases/managed-databases/guides/updates-and-maintenance/index.md deleted file mode 100644 index 6a9e8410026..00000000000 --- a/docs/products/databases/managed-databases/guides/updates-and-maintenance/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Automatic Updates and Maintenance Windows" -description: "Managed databases are automatically updated on a weekly or monthly basis. Learn how to manage these maintenance windows in Cloud Manager" -modified: 2023-02-10 -date: 2022-04-15 ---- - -{{% content "dbass-eos" %}} - -As part of the Managed Database service, the database cluster is updated regularly. This includes security updates and patches for the underlying operating system. These updates occur on a user-configurable *maintenance window*. By default, the maintenance window is set to start *every week* on *Sunday* at *20:00 UTC* and lasts for 3 hours. - -{{< note type="warning" >}} -If your database cluster is configured with a single node, the cluster will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that is the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan, which provides additional nodes and enables automatic failover between them. While the cluster may still experience a momentary loss of connectivity when a failover occurs, downtime is greatly reduced. -{{< /note >}} - -{{< note >}} -**The database software is not updated automatically.** To upgrade to a new version (such as from MySQL 5.7.30 or 8.0.25 to 8.0.26), consider deploying a new Managed Database with the version you wish to use. You can then [migrate your databases](/docs/products/databases/managed-databases/guides/migrate-mysql/) from the original Managed Database cluster to the new one. -{{< /note >}} - -## View and Modify the Maintenance Window - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select your Managed Database from the list. This opens the detail page for that database cluster. - -1. Navigate to the **Settings** tab. - -1. In the *Maintenance Window* section, you can view the day of the week the maintenance occurs, the time of day it starts, and if maintenance is performed on a weekly or monthly basis. - - ![Screenshot of the Maintenance Window in Cloud Manager](maintenance-window.png) - - - **Day of Week:** The day of the week that the maintenance will occur. The default is *Sunday*. - - **Time of Day (UTC):** The time of day (in UTC) the maintenance window will start. The default is *20:00 UTC (8 PM)*. The maintenance window lasts for 3 hours. - - **Weekly or Monthly:** Defines if the maintenance occurs once per week or once per month. The default is *Weekly*. If *Monthly* is selected, you can select if the maintenance should occur during the first, second, third, or fourth week of each month. - -1. To modify the maintenance window, make any changes you wish and click the **Save Changes** button. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/updates-and-maintenance/maintenance-window.png b/docs/products/databases/managed-databases/guides/updates-and-maintenance/maintenance-window.png deleted file mode 100644 index 036b0d94c74..00000000000 Binary files a/docs/products/databases/managed-databases/guides/updates-and-maintenance/maintenance-window.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/upscale-database/index.md b/docs/products/databases/managed-databases/guides/upscale-database/index.md deleted file mode 100644 index c66953b7a5b..00000000000 --- a/docs/products/databases/managed-databases/guides/upscale-database/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Resize A Database Cluster" -description: "Learn how to resize your database cluster." -published: 2024-04-09 ---- - -{{% content "dbass-eos" %}} - -You can upscale database clusters to adapt them to your needs. Clusters can’t be downscaled. - -{{< note type="alert" >}} -This operation causes downtime for the resized node clusters. - -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Databases** from the left navigation menu. - -1. Select a database cluster from the list. - -1. Navigate to the **Resize** tab. - -1. In the *Choose a plan* section, select a new plan for your database cluster. - - ![Screenshot of Choose a plan section](upscale-plan.png) - -1. In the *Summary* section, verify the changes. Click **Resize Database Cluster**. - -1. Follow the on-screen instructions and click **Resize Cluster** to confirm. The cluster will be upscaled within two hours. \ No newline at end of file diff --git a/docs/products/databases/managed-databases/guides/upscale-database/upscale-plan.png b/docs/products/databases/managed-databases/guides/upscale-database/upscale-plan.png deleted file mode 100644 index cf9b7b07750..00000000000 Binary files a/docs/products/databases/managed-databases/guides/upscale-database/upscale-plan.png and /dev/null differ diff --git a/docs/products/databases/managed-databases/guides/use-cases/index.md b/docs/products/databases/managed-databases/guides/use-cases/index.md deleted file mode 100644 index 5f007d50ed8..00000000000 --- a/docs/products/databases/managed-databases/guides/use-cases/index.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Use Cases for Managed Databases" -description: "Learn about the many benefits and use cases for Managed Database, including disaster recover, cost reduction, and rapid deployment." ---- - -{{% content "dbass-eos" %}} - -Managed Databases is Linode's own Database-as-a-Service (DBaaS) platform. These types of database services allow organizations to offload their database infrastructure and management so they can focus on their own applications and services. This guide discusses the use cases and benefits for Managed Databases. - -## Cost Reduction - -Hosting your own database on-premise (or on your own custom cloud architecture) can require you to dedicate a significant budget and lots of IT resources towards its implementation and operation. Offloading this to a dedicated DBaaS solution like Managed Databases has the potential to significantly lower the cost and reduce the complexity. This lets you focus on your business - not your computing infrastructure. - -## Rapid Deployment - -It's often necessary to create short-lived databases quickly and securely. You may want to do this for development, disaster recovery (discussed below), ephemeral applications, traffic management, and much more. Managed Databases makes this process incredibly efficient, allowing you to create databases quickly using Cloud Manager or programmatically through the Linode API. - -## Disaster Recovery - -Every organization should have a comprehensive disaster recovery plan in place to safeguard their data. Every Managed Database provides daily backups that are retained for 7 days and can be restored through a click of a button. This provides an additional layer of data protection on top of your existing strategy. In addition, since Managed Databases can be provisioned quickly, you're able to use this service as part of a disaster recovery plan for on-premise or self-hosted databases. - -## High Availability - -Most production applications would greatly benefit from the redundancy and extreme uptime that high availability solutions offer. Managed Databases, when configured with 3 nodes, provides built-in data replication, redundancy, and automatic failover. This ensures downtime is significantly minimized and applications are always available. - -## Reasons to Consider Manged Databases - -**Types of organizations that benefit from Managed Databases:** - -- Organizations that have limited IT resources -- Organizations that want to save cost and reduce complexity -- Organizations that need to minimize any potential for downtime -- Organizations that want to extend their disaster recovery plans -- Organizations that need to rapidly deploy secure databases - -**Types of applications that benefit from Managed Databases:** - -- Databases that require always-on 24/7 access -- Databases that store critical data -- Financial industry applications, such as banking and trading -- Voice and Communications platforms -- E-commerce applications \ No newline at end of file diff --git a/docs/products/databases/managed-databases/resources/index.md b/docs/products/databases/managed-databases/resources/index.md deleted file mode 100644 index b8d56eefbbd..00000000000 --- a/docs/products/databases/managed-databases/resources/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Resources -description: "Resources and other information related to Managed Databases including videos, blog posts, community posts, and press releases." -tab_group_main: - weight: 40 ---- - -{{% content "dbass-eos" %}} - -## Blog Posts - -- [Popular Databases for Building Modern Linux Applications](https://www.linode.com/blog/databases/popular-databases-for-building-modern-linux-applications/) - -- [Choosing a Database: MySQL or PostgreSQL](https://www.linode.com/blog/databases/choosing-a-database-mysql-or-postgresql/) - -## External Resources - -- [What is MySQL?](https://dev.mysql.com/doc/refman/8.0/en/what-is-mysql.html) (from MySQL's documentation) - -- [About PostgreSQL](https://www.postgresql.org/about/) (from the PostgreSQL website) \ No newline at end of file diff --git a/docs/products/networking/_index.md b/docs/products/networking/_index.md deleted file mode 100644 index 2d01855f607..00000000000 --- a/docs/products/networking/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Networking -title_meta: Networking Products and Services -description: "Linode offers robust networking tools that allow you to secure your network, balance traffic, and control your infrastructure." ---- diff --git a/docs/products/networking/cloud-firewall/_index.md b/docs/products/networking/cloud-firewall/_index.md deleted file mode 100644 index 1ed089318d3..00000000000 --- a/docs/products/networking/cloud-firewall/_index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Cloud Firewall -title_meta: "Cloud Firewall Product Documentation" -description: "Linode Cloud Firewall offers a simple interface to protect your web apps. It is scalable security in seconds, allowing you to create custom firewall rules, making security more accessible." -modified: 2023-11-01 -bundles: ['debian-security', 'centos-security', 'network-security'] -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-11-10 - product_description: "A free cloud-based firewall service that makes it easy to secure network traffic." -aliases: ['/guides/platform/cloud-firewall/','/platform/cloud-firewall/'] ---- - -Linode’s Cloud Firewall service is a robust cloud-based firewall solution available at no additional charge for Linode customers. Through this service, you can create, configure, and add stateful network-based firewalls to Linode Compute Instances and NodeBalancers. - -## Enhanced Security - -A Cloud Firewall sits between a service (Compute Instance or NodeBalancer) and the Internet and can be configured to filter out unwanted network traffic before it even reaches your server. Defend your apps and services from malicious attackers by creating rules to only allow traffic from trusted sources. Firewall rules can filter traffic at the network layer, providing fine-grained control over who can access your servers. - -## Simple Interface - -Control inbound and outbound traffic using the [Linode API](/docs/api/networking), [Linode CLI](/docs/products/tools/cli/get-started/) or [Cloud Manager](https://www.linode.com/products/cloud-manager/). Each interface can be integrated into your workflow for seamless control over firewall rules. The Cloud Firewall service makes security more accessible and enables you to secure your network traffic without needing to learn complicated software or access the command line. - -## Scalable Security in Seconds - -Stay protected as your network grows. Effortlessly apply the same ruleset across multiple Compute Instances and NodeBalancers. This saves time as you no longer need to manually configure internal software on each server. - -## Pricing and Availability - -Cloud Firewalls are available at no charge across [all regions](https://www.linode.com/global-infrastructure/). - -## Limits and Considerations - -- Cloud Firewalls are **compatible with Linode Compute Instances and NodeBalancers**. They are not currently directly supported on other Linode services, such as Object Storage. -- A Cloud Firewall can be attached to multiple services (Compute Instances or NodeBalancers), but a service can only be attached to one *active* (enabled) Cloud Firewall at a time. -- A Cloud Firewall’s inbound and outbound rules are applied to Compute Instances, but only inbound rules are applied to NodeBalancers. -- When used in conjunction with NodeBalancers, a Cloud Firewall’s inbound rules only apply to the NodeBalancer's public IP, not the IPs of the back-end nodes. This means you may also want to add individual back-end nodes to a Cloud Firewall to protect any additional exposed IP addresses. -- Cloud Firewall rules are applied to traffic over the public and private network but are not applied to traffic over a private [VLAN](/docs/products/networking/vlans/). -- A maximum of **25 rules** can be added to each Cloud Firewall (both Inbound and Outbound rules combined). -- A maximum of **255 IP addresses (and ranges)** can be added to each Cloud Firewall rule. -- All **IP addresses** and **IP Ranges** must be formatted correctly, or changes will be unable to be saved. -- A maximum of **15 ports (and port ranges)** can be defined on each Cloud Firewall rule. diff --git a/docs/products/networking/cloud-firewall/_shortguides/cloud-firewall-shortguide/index.md b/docs/products/networking/cloud-firewall/_shortguides/cloud-firewall-shortguide/index.md deleted file mode 100644 index 999230ad336..00000000000 --- a/docs/products/networking/cloud-firewall/_shortguides/cloud-firewall-shortguide/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: Outlines our Cloud Firewall product, which can be plugged into any guide calling for a firewall. - -headless: true -show_on_rss_feed: false ---- - -{{< note >}} -Linode's free [Cloud Firewall](https://www.linode.com/products/cloud-firewall/) service can be used to replace or supplement internal firewall configuration. For more information on Cloud Firewalls, see our [Getting Started with Cloud Firewalls](/docs/products/networking/cloud-firewall/get-started/) guide. For help with solving general firewall issues, see the [Troubleshooting Firewalls](/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/) guide. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/networking/cloud-firewall/developers/index.md b/docs/products/networking/cloud-firewall/developers/index.md deleted file mode 100644 index dfac759bba9..00000000000 --- a/docs/products/networking/cloud-firewall/developers/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Cloud Firewalls" -description: "Linode Cloud Firewalls are easily managed with developer tools like the Linode API and CLI." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -The Cloud Firewall endpoints: - -- [Firewalls List](/docs/api/networking/#firewalls-list) -- [Firewall Create](/docs/api/networking/#firewall-create) -- [Firewall Delete](/docs/api/networking/#firewall-delete) -- [Firewall View](/docs/api/networking/#firewall-view) -- [Firewall Update](/docs/api/networking/#firewall-update) -- [Firewall Devices List](/docs/api/networking/#firewall-devices-list) -- [Firewall Device Delete](/docs/api/networking/#firewall-device-delete) -- [Firewall Device View](/docs/api/networking/#firewall-device-view) -- [Firewall Rules List](/docs/api/networking/#firewall-rules-list) -- [Firewall Rules Update](/docs/api/networking/#firewall-rules-update) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. [Learn how to use the Linode CLI](/docs/products/tools/cli/get-started/). diff --git a/docs/products/networking/cloud-firewall/feature.svg b/docs/products/networking/cloud-firewall/feature.svg deleted file mode 100644 index c31fd829886..00000000000 --- a/docs/products/networking/cloud-firewall/feature.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/products/networking/cloud-firewall/get-started/index.md b/docs/products/networking/cloud-firewall/get-started/index.md deleted file mode 100644 index 14ded3cfbd7..00000000000 --- a/docs/products/networking/cloud-firewall/get-started/index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with Cloud Firewalls" -description: "Get started with Linode Cloud Firewall. Learn to add a Cloud Firewall, assign a Cloud Firewall to a Linode, add and edit rules, update your Cloud Firewall status, and delete a Cloud Firewall." -modified: 2023-11-01 -tab_group_main: - weight: 20 -aliases: ['/platform/cloud-firewall/getting-started-with-cloud-firewall/','/guides/getting-started-with-cloud-firewall/'] -keywords: ["firewall", "cloud firewall", "security", "securing"] -tags: ["cloud manager","linode platform","security","networking"] ---- - -Linode’s free Cloud Firewall service can be used to create, configure, and add stateful network-based firewalls to Linode services. A Cloud Firewall is independent of the service it is attached to and can be applied to multiple services. Cloud Firewalls are compatible with Linode Compute Instances and NodeBalancers. - -## Create a Cloud Firewall - -There are two main options to consider when deciding how to protect your Linode Compute Instances: installing firewall software on your system or using Linode's Cloud Firewall service. While both are robust solutions, a major benefit to using Cloud Firewalls is the ease of configuration. Cloud Firewalls can be created and managed through Cloud Manager, Linode CLI, or Linode API. - -- [Create a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/) - -- [Comparing Cloud Firewalls to Linux Firewall Software](/docs/products/networking/cloud-firewall/guides/comparing-firewalls/) - -{{< note >}} -NodeBalancers do not support the installation of firewall software. If you wish to configure inbound firewall rules for your NodeBalancer, we recommend using the Cloud Firewall service. -{{< /note >}} - -## Manage Firewall Rules - -A Cloud Firewall analyzes traffic against a set of user-defined rules. The firewall can be configured to implicitly *accept* or *drop* all *inbound* or *outbound* traffic. Individual rules can be added to further accept or drop specific traffic, such as over certain ports or to/from a certain IP address. - -- [Manage Cloud Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/) - -{{< note >}} -Outbound firewall rules are not applied to NodeBalancers. -{{< /note >}} - -## Apply to Compute Instances - -To start using a Cloud Firewall to protect your services, you can apply it to Compute Instances or NodeBalancers. Each Cloud Firewall can be applied to multiple services, but a service can only belong to a single Cloud Firewall. - -- [Apply a Cloud Firewall to a Service](/docs/products/networking/cloud-firewall/guides/apply-to-service/) \ No newline at end of file diff --git a/docs/products/networking/cloud-firewall/guides/_index.md b/docs/products/networking/cloud-firewall/guides/_index.md deleted file mode 100644 index 87c7016dac3..00000000000 --- a/docs/products/networking/cloud-firewall/guides/_index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Cloud Firewalls" -description: "A collection of product guides to help you deploy and manage Cloud Firewalls." -tab_group_main: - weight: 30 ---- - -## Basics - -- [Get Started with Cloud Firewalls](/docs/products/networking/cloud-firewall/get-started/): Learn how to start using Cloud Firewalls. - -- [Create a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/): Learn how to deploy Linode's Cloud Firewall service. - -- [Manage Cloud Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/): Define rules to accept or drop traffic. - -- [Apply a Cloud Firewall to a Compute Instance](/docs/products/networking/cloud-firewall/guides/apply-to-service/): Add (and remove) Compute Instances to your Cloud Firewalls. - -- [Enable or Disable a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/update-status/): Configure the status of a Cloud Firewall. - -- [Delete a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/delete-firewall/): Remove a Cloud Firewall and its rules. - -## Going Further - -- [Comparing Cloud Firewalls to Linux Firewall Software](/docs/products/networking/cloud-firewall/guides/comparing-firewalls/): Learn which firewall solution may work best for your use case. - -- [Troubleshooting Firewalls](/docs/products/compute/compute-instances/guides/troubleshooting-firewall-issues/): Information on troubleshooting any firewall service. diff --git a/docs/products/networking/cloud-firewall/guides/apply-to-service/compute-instances-attached-to-firewall.jpg b/docs/products/networking/cloud-firewall/guides/apply-to-service/compute-instances-attached-to-firewall.jpg deleted file mode 100644 index b8ce2b074e1..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/apply-to-service/compute-instances-attached-to-firewall.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/apply-to-service/compute-instances-attached-to-firewall.png b/docs/products/networking/cloud-firewall/guides/apply-to-service/compute-instances-attached-to-firewall.png deleted file mode 100644 index cdcb72bf692..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/apply-to-service/compute-instances-attached-to-firewall.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/apply-to-service/index.md b/docs/products/networking/cloud-firewall/guides/apply-to-service/index.md deleted file mode 100644 index 61bc3532090..00000000000 --- a/docs/products/networking/cloud-firewall/guides/apply-to-service/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Apply Firewall Rules to a Service" -description: "Learn how to add and remove services from Cloud Firewalls." -modified: 2023-11-01 -aliases: ['/products/networking/cloud-firewall/guides/assign-firewall/', '/products/networking/cloud-firewall/guides/apply-to-compute-instances/'] ---- - -Each Cloud Firewall can be applied to multiple services (Compute Instances or NodeBalancers). Use the steps below to view and modify the services utilizing a Cloud Firewall. - -1. Log into your [Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. - -1. From the **Firewalls** listing page, click on the Cloud Firewall that you would like to use. This takes you to the **Rules** page for that Firewall. - -1. Click either the **Linodes** or **NodeBalancers** tab to see a list of the respective services currently using the Cloud Firewall. - -![Screenshot of the list of Compute Instances attached to the Cloud Firewall](compute-instances-attached-to-firewall.jpg) - -## Add a Service - -To add a service to this firewall, select either the **Linodes** or **NodeBalancers** tab, and click on the **Add Linodes/NodeBalancers to Firewall** button. In the form that appears, select the desired service from the dropdown menu and click **Add**. Once added, all rules configured on the Cloud Firewall are applied to the selected service. Note that only inbound rules are applied to NodeBalancers. - -{{< note >}} -You can apply the Cloud Firewall to more than one Linode service at a time. Repeat this process to add additional Compute Instances or NodeBalancers. -{{< /note >}} - -{{< note type="alert" >}} -If [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) has been disabled on your Compute Instance and the internal networking configuration uses DHCP for IPv4 address assignment, some additional firewall rules are necessary. You must edit the Cloud Firewall to allow DHCP traffic through port 67 and 68. If needed, a full list of IP addresses for our DHCP servers can be found in our [DHCP IP Address Reference Guide](/docs/products/compute/compute-instances/guides/dhcp-ip-address-reference/). -{{< /note >}} - -## Remove a Service - -To remove a Compute Instance or NodeBalancer, locate the service within the list and click the **Remove** link. Once removed, the rules configured on the Cloud Firewall are no longer applied to the service and, as such, the service may be less protected against malicious traffic or attacks. \ No newline at end of file diff --git a/docs/products/networking/cloud-firewall/guides/comparing-firewalls/index.md b/docs/products/networking/cloud-firewall/guides/comparing-firewalls/index.md deleted file mode 100644 index 4a6cf6da825..00000000000 --- a/docs/products/networking/cloud-firewall/guides/comparing-firewalls/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Comparing Cloud Firewalls to Linux Firewall Software -description: "" -modified: 2023-11-01 ---- - -With the addition of Linode’s Cloud Firewall solution, there are now two primary ways to control network traffic on a Linode Compute Instance: through a Cloud Firewall or locally installed firewall software. While both are robust solutions, there may be certain cases in which you choose to use one over the other. More often than not, both solutions should be used in tandem. - -{{< note >}} -Inbound and outbound rules configured through Linode’s Cloud Firewall are applied to Compute Instances, but only inbound rules apply to NodeBalancers. - -Additionally, NodeBalancers do not support installation of third-party firewall software. If you need to manage inbound traffic rules for a NodeBalancer, we recommend using the Cloud Firewall service. -{{< /note >}} - -## Cloud Firewalls - -Linode’s free Cloud Firewall service is a powerful firewall solution that operates between your Linode services and the Internet. It provides an easy to use interface for filtering out unwanted network traffic. Through this service, you can create, configure, and add stateful network-based firewalls to any Linode Compute Instance or NodeBalancer. - -- **Cost:** Free -- **Interface:** Cloud Manager (graphic user interface), the Linode CLI (command-line interface), and the Linode API (application programming interface). -- **Ease of use:** Relatively easy to configure using tools Linode customers may already be familiar with. -- **Advanced configurability:** Supports many common firewall rules, but does not support all configuration options available on software-based solutions like nftables. -- **Ideal use cases:** - - Users wanting to conveniently configure firewalls using familiar Linode tooling. - - Cascading rules over multiple servers simultaneously. - - Automatically generating rules through software compatible with the Linode API (such as integrating directly with your existing custom software). - - Users wanting to configure inbound firewall rules for NodeBalancers. - -{{< note >}} -If you choose to manage inbound firewall rules for NodeBalancers using Cloud Firewalls, you still need to protect any back-end nodes (Compute Instances) configured to the NodeBalancer. The Cloud Firewall only filters incoming traffic to the NodeBalancer’s public IP and not the IPs of the individual instances unless they are also added to the Cloud Firewall. - -You can protect your back-end nodes by either assigning the individual nodes to a Cloud Firewall (the same as your NodeBalancer or a new one) or by manually configuring firewalls internally on the instances themselves. -{{< /note >}} - -## Firewall Software - -*(Including nftables, iptables, ufw, and firewalld)* - -The standard firewall software available on most modern Linux distributions is *nftables*, which replaces the older *iptables* software. Both of these utilities are packet filtering frameworks that integrate with the Linux kernel. These software solutions are configured through the command line. Their syntax is quite different from one another and formulating rules can be complicated for beginners. To make these utilities more user friendly, many distributions employ an easy to use front-end tool. These include *UFW* (Uncomplicated Firewall) on Ubuntu and Debian and *firewalld* on CentOS and RHEL derivatives. - -- **Cost:** Free -- **Interface:** Command-line interface tools -- **Ease of use:** More difficult since a command-line is required and rule syntax can be quite complex, especially when working directly with *nftables* or *iptables*. -- **Advanced configurability:** Offers more comprehensive configuration for complex rules. -- **Ideal use cases:** - - Users comfortable with both the command-line and the software's syntax. - - Creating complex firewall rules. - - Automatically generating rules through software like [*fail2ban*](https://www.fail2ban.org/wiki/index.php/Main_Page). - - -## Deciding Which Option to Use - -When deciding on which firewall solution to use, consider your unique needs and the requirements for your application. - -- **Familiarity:** A major reason you may decide to use one option over another is your own comfort level with the tools and interfaces need to configure each firewall. If you're more familiar with Linode's own tooling (such as Cloud Manager or CLI), the Cloud Firewall service may be easier for you to quickly configure. If you're more familiar with nftables or front-end software like *UFW*, you may want to stick to your existing tools and workflow. Consider your entire team's familiarity with the tooling, not just yours. - -- **Configuration options:** While each solution is quite robust, using *nftables* allows for the creation of the most complex rules and provides absolute control of the firewall. That said, Cloud Firewalls are generally easier to configure and can be applied to multiple Linode services. This lets you quickly add or modify firewall rules across multiple Compute Instances simultaneously. - -- **Automation possibilities:** Some Linux software products already integrate directly with nftables and can automatically create firewall rules. Perhaps the most commonly used example of this is [*fail2ban*](https://www.fail2ban.org/wiki/index.php/Main_Page), which can automatically create firewall rules to permanently or temporarily ban suspicious traffic. If you are configuring your own software, you may find it easier to integrate with the Linode API and use Cloud Firewalls instead of integrating directly with software-based firewalls. - -## Combining Both Solutions - -While Cloud Firewalls and local firewall software are separate tools, they can often be used together to combine their strengths and create an even more powerful firewall solution. - -Consider using Cloud Firewalls to provide a line of defense *before* traffic even reaches your server. It is very user friendly and can quickly cascade rules over multiple different Linode Compute Instances. Consider using Firewall software like *nftables* when you need to create complex rules and want to integrate your firewall with existing software like *fail2ban*. - -{{< note >}} -When using both solutions together, consider when each rule will be processed on incoming and outgoing traffic. **For inbound traffic, Cloud Firewall rules are processed first. For outbound traffic, local firewall rules are processed first.** -{{< /note >}} \ No newline at end of file diff --git a/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/create-firewall.jpg b/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/create-firewall.jpg deleted file mode 100644 index 03cd4fc0b24..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/create-firewall.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/create-firewall.png b/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/create-firewall.png deleted file mode 100644 index aed6ada6582..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/create-firewall.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/index.md b/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/index.md deleted file mode 100644 index 32c177b9bb9..00000000000 --- a/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Create a Cloud Firewall" -description: "How to add a Linode Cloud Firewall." -modified: 2023-11-01 -aliases: ['/products/networking/cloud-firewall/guides/add-firewall/'] ---- - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. - -1. From the **Firewalls** listing page, click on the **Create Firewall** link. - -1. The **Create Firewall** drawer appears with the configuration options needed to add a Firewall. Configure your Firewall with at minimum the required fields: - - | **Configuration** | **Description** | - | --------------- | --------------- | - | **Label** | The label is used as an identifier for this Cloud Firewall. *Required*. | - | **Linodes**| The Linode(s) on which to apply the Firewall. A list of all Linodes on your account are visible. You can skip this configuration if you do not yet wish to apply the Firewall to a Linode. | - | **NodeBalancers** | The NodeBalancer(s) on which to apply the Firewall. A list of all NodeBalancers on your account are visible. You may skip this configuration if you do not yet wish to apply the Firewall to a NodeBalancer. Note that outbound firewall rules do not apply to NodeBalancers. | - - -1. Click on the ****Create Firewall**** button to finish creating your Cloud Firewall. By default, a new Cloud Firewall accepts all inbound and outbound connections. Custom rules can be added as needed. See [Add New Cloud Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/). - - ![Click on the Create button to create your Firewall.](create-firewall.jpg "Click on the Create button to create your Firewall.") - -{{< note >}} -If you add a Cloud Firewall to a NodeBalancer, the inbound rules only apply to NodeBalancer’s public IP address and not the IPs of the back-end nodes (Compute Instances) assigned to the NodeBalancer. This means that the IPs of the back-end nodes may still be exposed to the public internet. As a best practice, you can protect the IPs of the individual Compute Instances by: -- Adding the individual instances to the same Cloud Firewall as the NodeBalancer -- Adding the individual instances to a new Cloud Firewall -- Manually configuring internal firewall rules on the instances - -See [Comparing Cloud Firewalls to Linux Firewall Software](/docs/products/networking/cloud-firewall/guides/comparing-firewalls/) to help determine which solution is best for your use case. -{{< /note >}} diff --git a/docs/products/networking/cloud-firewall/guides/delete-firewall/delete-your-firewall.jpg b/docs/products/networking/cloud-firewall/guides/delete-firewall/delete-your-firewall.jpg deleted file mode 100644 index 7a8577cdfa3..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/delete-firewall/delete-your-firewall.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/delete-firewall/delete-your-firewall.png b/docs/products/networking/cloud-firewall/guides/delete-firewall/delete-your-firewall.png deleted file mode 100644 index ee9e5a43e7b..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/delete-firewall/delete-your-firewall.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/delete-firewall/index.md b/docs/products/networking/cloud-firewall/guides/delete-firewall/index.md deleted file mode 100644 index a1675ae71b4..00000000000 --- a/docs/products/networking/cloud-firewall/guides/delete-firewall/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Delete a Cloud Firewall -description: "How to delete a Linode Cloud Firewall." -modified: 2023-12-12 - ---- - -1. Log into your [Linode Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. This takes you to the **Firewalls** listing page. - -1. Click on the **Delete** button next to the corresponding Firewall you would like to delete. You are prompted to confirm deletion of the Firewall. Click **Delete** to proceed. - - ![Click on the delete button to delete your Firewall.](delete-your-firewall.jpg "Click on the delete button to delete your Firewall.") - - The Firewall is deleted and any services that the Firewall was applied to no longer have their network traffic filtered by the Firewall. \ No newline at end of file diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-a-new-rule.jpg b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-a-new-rule.jpg deleted file mode 100644 index 3bd0923ec46..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-a-new-rule.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-a-new-rule.png b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-a-new-rule.png deleted file mode 100644 index ed1a48f41e1..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-a-new-rule.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-an-inbound-rule-firewall.jpg b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-an-inbound-rule-firewall.jpg deleted file mode 100644 index 8d5a8afccc0..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-an-inbound-rule-firewall.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-an-inbound-rule-firewall.png b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-an-inbound-rule-firewall.png deleted file mode 100644 index 58936dbe540..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/add-an-inbound-rule-firewall.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-default-policies.jpg b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-default-policies.jpg deleted file mode 100644 index c70f07de05c..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-default-policies.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-default-policies.png b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-default-policies.png deleted file mode 100644 index ecf79369c98..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-default-policies.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-firewall-rule.jpg b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-firewall-rule.jpg deleted file mode 100644 index af42b935641..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-firewall-rule.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-firewall-rule.png b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-firewall-rule.png deleted file mode 100644 index 9f14e4461d5..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/edit-firewall-rule.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/index.md b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/index.md deleted file mode 100644 index b1e90b10557..00000000000 --- a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/index.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: "Manage Firewall Rules" -description: "How to add rules to a Linode Cloud Firewall." -published: 2020-11-10 -modified: 2023-11-01 -aliases: ['/products/networking/cloud-firewall/guides/add-rules/','/products/networking/cloud-firewall/guides/edit-rules/','/products/networking/cloud-firewall/guides/delete-rules/'] ---- - -A Cloud Firewall can be configured with both *Inbound* and *Outbound* rules. - -- **Inbound rules** limit incoming network connections to a Linode service based on the port(s) and sources you configure. - -- **Outbound rules** limit the outgoing network connections coming from a Linode service based on the port(s) and destinations you configure. - -{{< note >}} -Inbound and outbound rules are applied to Compute Instances. Only inbound rules are applied to NodeBalancers. -{{< /note >}} - -## Predefined Rules - -The Linode Cloud Manager provides a list of *predefined rules* that you can add to your Cloud Firewall. The predefined rules support common networking use cases and provide an easy foundation to get started with Cloud Firewalls. Since you can edit any rule applied to a Cloud Firewall, you can modify a predefined rule to accommodate your own applications and requirements. - -## View Rules - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. - -1. From the **Firewalls** listing page, click on the Cloud Firewall that you would like to view or modify. - -Rules are separated into *Inbound* and *Outbound* rule sections. - -## Add a Rule - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. - -1. From the **Firewalls** listing page, click on the Firewall that you would like to add new rules to. This takes you to the Firewall's **Rules** page. - -1. On the **Rules** page, select the default behavior for both inbound and outbound traffic using the **Inbound Policy** and **Outbound Policy** dropdown menus. **Accept** will allow all traffic except for those defined in the listed rules, and **Drop** will drop or deny all traffic except for those defined in the rules. - - ![Default policy selection.](edit-default-policies.jpg "Click on the Add an Inbound/Outbound Rule link.") - -1. Click on the **Add an Inbound/Outbound Rule** link (click on the appropriate link for the type of Rule you would like to add). - - ![Click on the Add an Inbound/Outbound Rule link.](add-a-new-rule.jpg "Click on the Add an Inbound/Outbound Rule link.") - - The **Add an Inbound/Outbound Rule** drawer appears. - -1. Provide the following Rule configurations: - - | **Configuration** | **Description** | - | --------------- | --------------- | - | **Preset** | Select from a list of optional predefined Firewall rules. Selecting a predefined rule fills in the remaining rule configuration values, however, they can all be edited. *Optional.*| - | **Label** | A label for the rule being created. This is used only as an identifier for the Linode Account holder and does not have any impact on firewall performance. *Required.* - | **Description** | A description of the rule being created. This is used only as an identifier for the Linode Account holder, and does not have any impact on firewall performance. *Optional.*| - | **Protocol** | Select the Transport Layer protocol to use for this Firewall rule. *Required.*| - | **Ports** | Select from a list of common port numbers, or select **Custom** to open the **Custom Port Range** configuration option. Up to 15 ports (and port ranges) can be added to a single Cloud Firewall rule. Port ranges are considered to be 2 total ports towards the total of 15 maximum ports. Port numbers must be within 1 and 65535, and they cannot contain leading zeroes. *Required for TCP and UDP protocols. Not allowed for ICMP and IPENCAP protocols.* | - | **Custom Port Range** | Provide a port number or a range of ports on which to take action. Multiple ports or ranges can be added by separating each port or range with a comma (`,`). To configure a **Port Range**, enter the starting port and ending port numbers separated by a dash (`-`). The port range string can contain up to 15 pieces, where a single port is treated as one piece, and a port range is treated as two pieces. For example, here is an example value that applies the rule to ports 21, 993, 995, and 2000-3000, considered a total of 5 pieces: `21,993,995,2000-3000`. | - | **Sources** | **Required for Inbound rules only.** Choose from a list of **Sources** that limit incoming connections to the chosen internet protocol, netmask, or specific IP address(es) and ranges. Select IP/Netmask to specify specific IP addresses. When defining IP/Netmask sources, a /32 mask is assumed for individual IPv4 addresses and a /128 mask is assumed for IPv6 addresses if unspecified. Each rule can include 255 total IPv4 and IPv6 addresses/ranges. | - | **Destinations** | **Required for Outbound rules only.** Select from a list of **Destinations** that limit the outgoing connections to the chosen internet protocol, netmask, or specific IP address(es) and ranges. When defining IP/Netmask destinations, a /32 mask is assumed for IPv4 addresses and a /128 mask is assumed for IPv6 addresses if unspecified. Each rule can include 255 total IPv4 and IPv6 addresses/ranges. | - | **Action** | Choose whether this rule allows or drops traffic. The action defined in specific rules takes precedence over the default inbound and outbound traffic policy. *Required.* | - - {{< note >}} - When applying individual IP addresses or IP ranges to either the `source` or `destination` field, the addresses must always be valid and formatted correctly using [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). IP address ranges are formatted differently than port number ranges. Instead of using a hyphenated range of numbers, CIDR notation is used to designate the network prefix and the number of bits in the prefix. The following are examples of valid IPv4 and IPv6 ranges: - - - `192.0.2.0/24` - - `198.51.0.0/16` - - `2001:db8:1234::/48` - - In the first example above, using a range of `192.0.2.0/24` applies the rule to all IP addresses from 192.0.2.1 through 192.0.2.254. - - If you need to specify a single IP address, use /32 when specifying your IP range. For example, `192.0.2.1/32` denotes a single IP address. - {{< /note >}} - -1. Click on **Add Rule** to add the new rule to this Firewall. If you would like to add any additional rules, repeat the process outlined in this section. - - ![Click on Add Rule to add the new rule to this Firewall.](add-an-inbound-rule-firewall.jpg "Click on Add Rule to add the new rule to this Firewall.") - -1. When you are done adding new Firewall rules, review them on the **Rules** page you are redirected to by default. Firewall rules are applied in order from top to bottom as they appear on this page. If you would like to re-order these rules, drag and drop any row into their desired position. - -1. When you are done reviewing the new Firewall rules, click on the **Save Changes** button on the **Rules** page. - - {{< note >}} - Any newly added rules do not take effect until you **Save Changes** to the Firewall. - {{< /note >}} - - ![Apply your changes to the Firewall.](save-changes-firewall.jpg "Apply your changes to the Firewall.") - - -## Edit a Rule - -Follow the steps in this section to edit predefined and custom Firewall Rules. - -1. Log into your [Linode Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. - -1. From the **Firewalls** listing page, click on the Firewall whose rules you'd like to edit. This takes you to the Firewall's **Rules** page. - -1. Click on the **Edit** button corresponding to the rule you'd like to edit. - - ![Select edit from the dropdown menu.](select-firewall-to-edit.jpg "Select edit from the dropdown menu.") - -1. From the **Edit Rule** drawer, update the rule's configurations as needed. - -1. Click on the **Add Changes** button to save your changes and apply them to the rule. If you would like to edit any additional rules, repeat the process outlined in this section. - - ![Save your Firewall rule edits.](edit-firewall-rule.jpg "Save your Firewall rule edits.") - -1. When you are done editing your Firewall rules, click on the **Save Changes** button on the **Rules** page for those changes to take effect. - -## Delete a Rule - -1. Log into your [Linode Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. - -1. From the **Firewalls** listing page, click on the Firewall whose rule(s) you'd like to delete. This takes you to the Firewall's **Rules** page. - -1. Click on the **Delete** corresponding to the rule that you would like to delete. If you would like to delete any additional rules, repeat the process outlined in this section. - -1. When you are done, click on the **Save Changes** button on the **Rules** page. - - {{< note >}} - Any rule deletion(s) does not take effect until you **Save Changes** to the Firewall. - {{< /note >}} \ No newline at end of file diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-firewall.jpg b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-firewall.jpg deleted file mode 100644 index 7a5c186be5a..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-firewall.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-firewall.png b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-firewall.png deleted file mode 100644 index 0c29e7dc7a6..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-firewall.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-to-firewall.png b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-to-firewall.png deleted file mode 100644 index 946863a6e6d..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/save-changes-to-firewall.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/select-firewall-to-edit.jpg b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/select-firewall-to-edit.jpg deleted file mode 100644 index 50760e85dd7..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/select-firewall-to-edit.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/select-firewall-to-edit.png b/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/select-firewall-to-edit.png deleted file mode 100644 index 09f1724d572..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/select-firewall-to-edit.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/update-status/index.md b/docs/products/networking/cloud-firewall/guides/update-status/index.md deleted file mode 100644 index ff7f03ce061..00000000000 --- a/docs/products/networking/cloud-firewall/guides/update-status/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Update Cloud Firewall Status -description: "How to update the status of your Linode Cloud Firewall." -modified: 2023-11-06 - ---- - -When you [add a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/), the Firewall is enabled by default. Enabled means that the Firewall is active. If it is applied to a Linode service it filters your Linode service's network traffic according to the Firewall's rules. Disabling a Firewall deactivates the Firewall and it no longer filters any traffic for the Linode services it has been applied to. - -1. Log into your [Linode Cloud Manager](https://cloud.linode.com/) and select **Firewalls** from the navigation menu. This takes you to the **Firewalls** listing page. - -1. Click on the **Enable/Disable** button corresponding to the firewall whose status you would like to update: - - ![Update your Firewall's status.](update-the-firewall-status.jpg "Update your Firewall's status.") - - The **Status** column on the **Firewalls** listing page updates to display the Firewall's current status. - - ![View the updated status of your Firewall.](view-the-firewall-status.jpg "View the updated status of your Firewall.") \ No newline at end of file diff --git a/docs/products/networking/cloud-firewall/guides/update-status/update-the-firewall-status.jpg b/docs/products/networking/cloud-firewall/guides/update-status/update-the-firewall-status.jpg deleted file mode 100644 index 4f7d6ef3bb6..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/update-status/update-the-firewall-status.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/update-status/update-the-firewall-status.png b/docs/products/networking/cloud-firewall/guides/update-status/update-the-firewall-status.png deleted file mode 100644 index dc9f0afbc89..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/update-status/update-the-firewall-status.png and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/update-status/view-the-firewall-status.jpg b/docs/products/networking/cloud-firewall/guides/update-status/view-the-firewall-status.jpg deleted file mode 100644 index cffbdd05a6b..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/update-status/view-the-firewall-status.jpg and /dev/null differ diff --git a/docs/products/networking/cloud-firewall/guides/update-status/view-the-firewall-status.png b/docs/products/networking/cloud-firewall/guides/update-status/view-the-firewall-status.png deleted file mode 100644 index 3df6824a0c1..00000000000 Binary files a/docs/products/networking/cloud-firewall/guides/update-status/view-the-firewall-status.png and /dev/null differ diff --git a/docs/products/networking/ddos-protection/_index.md b/docs/products/networking/ddos-protection/_index.md deleted file mode 100644 index efb5a6264d4..00000000000 --- a/docs/products/networking/ddos-protection/_index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: DDoS Protection -description: "Linode DDoS Protection provides real-time intelligent protection that monitors, detects, analyzes, and blocks threats to the network." -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-06-02 - product_description: "Linode's global network is protected by advanced DDoS mitigation in all of our data centers, helping to fend off attacks on your infrastructure. Linode DDoS protection is free for all customers." ---- - -## Availability - -DDoS protection is available across [all regions](https://www.linode.com/global-infrastructure/). - -## Features - -### Always on Real-Time Intelligent Protection - -Always-on DDoS protection monitors, detects, analyzes, and blocks threats to the network in real-time. Attacks are blocked inline, then redistributed across Linode's global fiber backbone. - -Rules are automatically created using machine learning from traffic across the global network to intelligently reroute malicious traffic during a DDoS event. - -Your server’s applications are protected from a range of DDOS attack methodologies including UDP, SYN, HTTP floods, and more. - -## Pricing - -Linode's DDoS Protection is provided for free to all customers. diff --git a/docs/products/networking/ddos-protection/feature.png b/docs/products/networking/ddos-protection/feature.png deleted file mode 100644 index d2972fdabe5..00000000000 Binary files a/docs/products/networking/ddos-protection/feature.png and /dev/null differ diff --git a/docs/products/networking/ddos-protection/feature.svg b/docs/products/networking/ddos-protection/feature.svg deleted file mode 100644 index 458f3f1a600..00000000000 --- a/docs/products/networking/ddos-protection/feature.svg +++ /dev/null @@ -1,5 +0,0 @@ - - DDOS Protection - - - \ No newline at end of file diff --git a/docs/products/networking/ddos-protection/resources/index.md b/docs/products/networking/ddos-protection/resources/index.md deleted file mode 100644 index 644c2059a93..00000000000 --- a/docs/products/networking/ddos-protection/resources/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Resources -description: "Resources and information related to Linode DDoS Protection including blog posts, community posts, and press releases." -tab_group_main: - weight: 40 ---- - -## Blog Posts - -- [DDoS: An Additional Layer of Security from Linode](https://www.linode.com/blog/networking/ddos-an-additional-layer-of-security-from-linode/) - -- [The Twelve Days of Crisis - A retrospective on Linode’s Holiday DDoS Attacks](https://www.linode.com/blog/cloud-computing/christmas-ddos-retrospective/) - -- [2019: A Big Year of Innovation for Linode and a Big Thank You to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [Network Status Updates - April 2016](https://www.linode.com/blog/networking/network-status-updates-april-2016/) - -- [Security Investigation Retrospective](https://www.linode.com/blog/linode/security-investigation-retrospective/) - -## Community Posts - -- [How to know if DDoS protection works?](https://www.linode.com/community/questions/19731/how-to-know-if-ddos-protection-works) - -- [Does Linode offer DDoS Mitigation?](https://www.linode.com/community/questions/18692/does-linode-offer-ddos-mitigation) - -- [DDoS Protection offered by Linode](https://www.linode.com/community/questions/19430/ddos-protection-offered-by-linode) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=ddos). - -## Press Releases - -- [Linode Launches Free Advanced DDoS Protection Across Its Global Network](https://www.linode.com/press-release/linode-launches-free-advanced-ddos-protection-across-its-global-network/) diff --git a/docs/products/networking/dns-manager/_index.md b/docs/products/networking/dns-manager/_index.md deleted file mode 100644 index a1e088e1299..00000000000 --- a/docs/products/networking/dns-manager/_index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: DNS Manager -title_meta: "Linode DNS Manager Product Documentation" -description: "The Linode DNS Manager provides simple and convenient management for all your high availability DNS records. You can import DNS zones with ease and Cloudflare DDoS mitigation is built-in." -modified: 2023-03-16 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-06-02 - product_description: "A comprehensive, reliable, and fast DNS service, providing easy domain management to Linode customers at no charge." -aliases: ['/dns-manager/','/platform/manager/dns-manager/','/networking/dns/dns-manager/','/platform/manager/dns-manager-new-manager/','/networking/dns/dns-manager-overview/','/platform/manager/dns-manager-classic-manager/','/guides/dns-manager/'] ---- - -The *Domains* section of [Cloud Manager](https://cloud.linode.com/domains) is a comprehensive DNS management interface, referred to as the Linode DNS Manager. Within the DNS Manager, you can add your registered domain names and manage DNS records for each of them. - -## High Availability - -Linode's DNS service is anycasted to over 250 locations (*PoPs*) around the world. This provides distributed denial-of-service (DDoS) attack mitigation, load balancing, and increased geographic distribution for our [name servers](/docs/guides/dns-overview/#name-servers). If one name server suffers an outage, the service will automatically failover to a redundant name server. These factors make our service reliable, fast, and a great choice for your DNS needs. - -## Flexible Configuration - -In addition to supporting a wide range of DNS record types, the Linode DNS Manager offers even more flexibility through AXFR transfers and zone types (*primary* and *secondary*). These two features work together so you can create a DNS configuration that works for your own application. Using Linode as the *primary* DNS Manager is the most common option and lets you manage DNS records directly on the Linode platform. Operating as a *secondary* DNS provider, you can mange your DNS records within other services or tools (like cPanel) but still host them on Linode, taking advantage of the reliability and high availability of our platform. - -## Pricing and Availability - -The DNS Manager is available at no charge across [all regions](https://www.linode.com/global-infrastructure/). - -{{< note type="warning" title="DNS Manager Compute Instance requirement">}} -To use the Linode DNS Manager to serve your domains, you must have at least one active Compute Instance on your account. If your account does not have any Compute Instances (for instance, if they have all been removed), DNS records will not be served. -{{< /note >}} - -## Technical Specifications - -- High-availability managed DNS provider -- Anycast DNS with over 250 PoPs (*point of presence*) -- DDoS mitigation -- Supports outgoing and incoming DNS zone transfers -- Can be configured as a read-only secondary DNS -- IPv6 support -- Manage domains through an intuitive web-based control panel ([Cloud Manager](https://cloud.linode.com/)), the [Linode CLI](https://www.linode.com/products/cli/), or programmatically through the [Linode API](https://www.linode.com/products/linode-api/) - -## Limits and Considerations - -- *DNSSEC* is not supported and should be disabled on your domain's registrar. - -- *CNAME flattening* is not supported. This means that you are not able to use the root (apex) domain as the hostname for a CNAME record. diff --git a/docs/products/networking/dns-manager/developers/index.md b/docs/products/networking/dns-manager/developers/index.md deleted file mode 100644 index 2adf07891d3..00000000000 --- a/docs/products/networking/dns-manager/developers/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for the Linode DNS Manager" -description: "Use developer tools like the Linode API or CLI to manage your DNS records." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [Domains Endpoint Collection](/docs/api/domains) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [create and manage Domains](/docs/products/tools/cli/guides/domains/). diff --git a/docs/products/networking/dns-manager/feature.png b/docs/products/networking/dns-manager/feature.png deleted file mode 100644 index 20c7268c117..00000000000 Binary files a/docs/products/networking/dns-manager/feature.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/feature.svg b/docs/products/networking/dns-manager/feature.svg deleted file mode 100644 index 12069c8be59..00000000000 --- a/docs/products/networking/dns-manager/feature.svg +++ /dev/null @@ -1,5 +0,0 @@ - - DNS Manager - - - \ No newline at end of file diff --git a/docs/products/networking/dns-manager/get-started/access-domains-section.png b/docs/products/networking/dns-manager/get-started/access-domains-section.png deleted file mode 100644 index 469d57fa800..00000000000 Binary files a/docs/products/networking/dns-manager/get-started/access-domains-section.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/get-started/domains-overview.png b/docs/products/networking/dns-manager/get-started/domains-overview.png deleted file mode 100644 index 1bd9dab6ada..00000000000 Binary files a/docs/products/networking/dns-manager/get-started/domains-overview.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/get-started/index.md b/docs/products/networking/dns-manager/get-started/index.md deleted file mode 100644 index 5b4fb91d434..00000000000 --- a/docs/products/networking/dns-manager/get-started/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with the Linode DNS Manager" -description: "Learn how to get up and running with the Linode DNS Manager, including creating and importing domains." -modified: 2023-03-16 -tab_group_main: - weight: 20 ---- - -Linode's DNS Manager enables users to manage DNS records for each of their domains directly within the tools they already use: like Cloud Manager, Linode CLI, or Linode API. It supports most common DNS record types, including A, AAAA (quad A), CNAME, MX, TXT, NS, SOA, SRV, and CAA. Follow this guide to learn how to start using the DNS Manager. - -1. [Register the Domain](#register-the-domain) -1. [Create the Domain Zone](#create-the-domain-zone) -1. [Add DNS Records](#add-dns-records) -1. [Use Linode's Name Servers](#use-linodes-name-servers) - -## Understanding DNS - -The Domain Name System (DNS) attaches human-readable domain names to machine-usable IP addresses. In many ways, it is the phone book of the Internet. Just like a phone book can help you find the phone number of a business, DNS can take a domain name like `google.com` and translate it into an IP address like `74.125.19.147`. This global system allows users to remember the names of websites instead of their numeric IP addresses. To learn more, see [Overview of DNS and DNS Records](/docs/guides/dns-overview/). - -## Register the Domain - -Determine what domain name you wish to use and, if you haven't done so already, register it through a domain registrar. The registration process gives you ownership of the domain for the specified number of years. The cost depends on the registrar, the TLD (top level domain), and the number of years. Domains cannot be purchased directly through Linode. Instead, use a third-party domain registrar such as [GoDaddy](https://www.godaddy.com/), [Namecheap](https://www.namecheap.com/), or [Hover](https://www.hover.com/). - -## Create the Domain Zone - -A *domain zone* (also called a [DNS zone](https://en.wikipedia.org/wiki/DNS_zone)) is a collection of DNS records for a particular domain. For full instructions on creating a domain zone, see [Create a Domain](/docs/products/networking/dns-manager/guides/create-domain/). - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Domains** from the left navigation menu. Click the **Create Domain** button. - -1. Select either **Primary** or **Secondary** as the zone type. This changes some of the form options below it. - -1. Enter the domain name you wish to use into the **Domain** field. - -1. For *primary* domains, enter the **SOA Email** and optionally use the **Insert Default Records** dropdown if you would like to pre-populate the domain zone with information from an existing service. - -1. For *secondary* domains, add the IP Address of your external DNS provider's name server. If they have more than one name server, click **Add an IP** to add each additional one if desired. See [Incoming DNS Zone Transfers > Operate as a Secondary Read-Only DNS Service](/docs/products/networking/dns-manager/guides/incoming-dns-zone-transfers/#operate-as-a-secondary-read-only-dns-service). - -1. Click the **Create Domain** button to create the domain zone. - -{{< note type="warning" title="DNS Manager Compute Instance requirement">}} -To use the Linode DNS Manager to serve your domains, you must have at least one active Compute Instance on your account. If your account does not have any Compute Instances (for instance, if they have all been removed), DNS records will not be served. -{{< /note >}} - -## Add DNS Records - -DNS records can associate specific domain names with pieces of information, such as a server's IP address. After the domain has been created, you can immediately start adding and editing DNS records for it. See [Manage DNS Records](/docs/products/networking/dns-manager/guides/manage-dns-records/) for instructions. You can also view each supported DNS record type to learn more about what it does and how to create it. - -- [A and AAAA Records](/docs/products/networking/dns-manager/guides/a-record/) - -- [CNAME Records](/docs/products/networking/dns-manager/guides/cname-record/) - -- [MX Records](/docs/products/networking/dns-manager/guides/mx-record/) - -- [TXT Records](/docs/products/networking/dns-manager/guides/txt-record/) - -- [NS Records](/docs/products/networking/dns-manager/guides/ns-record/) - -- [SOA Record](/docs/products/networking/dns-manager/guides/soa-record/) - -- [SRV Records](/docs/products/networking/dns-manager/guides/srv-record/) - -- [CAA Records](/docs/products/networking/dns-manager/guides/caa-record/) - -If you are migrating to Linode from another DNS provider, make sure you have added all of the necessary DNS records to your domain zone before adding Linode’s name servers to your domain's registrar. - -## Use Linode's Name Servers - -Once you are ready, set Linode's name servers as the authoritative name servers for your domain. To do this, log in to your domain registrar's control panel and set the name servers for your domain name to the entries below. See the instructions on your domain name registrar's website for more information. - -- `ns1.linode.com` -- `ns2.linode.com` -- `ns3.linode.com` -- `ns4.linode.com` -- `ns5.linode.com` - -The name for this setting various among registrars, but it is commonly called *external* or *custom* name servers. Follow the instructions for your registrar: - -- [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/) -- [GoDaddy](https://www.godaddy.com/help/change-nameservers-for-my-domains-664) -- [Hover](https://help.hover.com/hc/en-us/articles/217282477--Changing-your-domain-nameservers) - -{{< note >}} -DNS changes can take up to 24 hours to propagate throughout the internet, although the changes are usually visible within several hours. -{{< /note >}} diff --git a/docs/products/networking/dns-manager/guides/_index.md b/docs/products/networking/dns-manager/guides/_index.md deleted file mode 100644 index 5f5761a1953..00000000000 --- a/docs/products/networking/dns-manager/guides/_index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for the Linode DNS Manager" -description: "Learn the basics of adding and managing Domains and DNS records using the DNS manager. You can also find guides that take a deep dive into DNS records, common DNS configurations, and other more advanced topics." -modified: 2023-02-09 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Create a Domain](/docs/products/networking/dns-manager/guides/create-domain/): Instructions for adding your domain to Linode's DNS Manager. - -- [Manage Domains](/docs/products/networking/dns-manager/guides/manage-domains/): View, edit, and manage domains on your account. - -- [Manage DNS Records](/docs/products/networking/dns-manager/guides/manage-dns-records/): View, edit, and manage DNS records on your domains. - -- [Configure Your Domain's Authoritative Name Servers](/docs/products/networking/dns-manager/guides/authoritative-name-servers/): To use Linode's DNS Manager for your domain, you must configure the authoritative name server's on your domain's registrar. - -## Additional Management - -- [Incoming DNS Zone Transfers (Import a Domain)](/docs/products/networking/dns-manager/guides/incoming-dns-zone-transfers/): Transfer DNS records from an external DNS service to the Linode DNS Manager, including how to operate a *secondary* DNS service on Linode through AXFR transfers from an external *primary* DNS service. - -- [Outgoing DNS Zone Transfers Domain](/docs/products/networking/dns-manager/guides/outgoing-dns-zone-transfers/): Transfer DNS records to another DNS service, including how to maintain a *primary* DNS service on Linode while supporting AXFR transfers to an external *secondary* DNS service. - -## DNS Record Types - -- [A and AAAA Records](/docs/products/networking/dns-manager/guides/a-record/) - -- [CNAME Records](/docs/products/networking/dns-manager/guides/cname-record/) - -- [MX Records](/docs/products/networking/dns-manager/guides/mx-record/) - -- [TXT Records](/docs/products/networking/dns-manager/guides/txt-record/) - -- [NS Records](/docs/products/networking/dns-manager/guides/ns-record/) - -- [SOA Record](/docs/products/networking/dns-manager/guides/soa-record/) - -- [SRV Records](/docs/products/networking/dns-manager/guides/srv-record/) - -- [CAA Records](/docs/products/networking/dns-manager/guides/caa-record/) - -## Going Further - -- [Overview of DNS and DNS Records](/docs/guides/dns-overview/) - -- [Troubleshooting DNS Records](/docs/products/networking/dns-manager/guides/troubleshooting-dns/) - -- [Common DNS Configurations](/docs/products/networking/dns-manager/guides/common-dns-configurations/) - -- [Configure rDNS (Reverse DNS) on a Compute Instance](/docs/guides/configure-rdns/) - -## Advanced Topics - -- [Previewing Websites Without DNS](/docs/guides/previewing-websites-without-dns/) - -- [How to Set Up Cloudflare with Linode](/docs/guides/how-to-set-up-cloudflare-with-linode/) - -- [Use dig to Perform Manual DNS Queries](/docs/guides/use-dig-to-perform-manual-dns-queries/) diff --git a/docs/products/networking/dns-manager/guides/a-record/index.md b/docs/products/networking/dns-manager/guides/a-record/index.md deleted file mode 100644 index 5c8e19bafbe..00000000000 --- a/docs/products/networking/dns-manager/guides/a-record/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "A and AAAA Records" -description: "Learn how to create A and AAAA records using Linode's DNS Manager" -published: 2023-02-03 -keywords: ["dns"] -tags: ["linode platform"] ---- - -## A and AAAA Overview - -An **A** (*Address*) record matches a domain name to an IPv4 address, specifically the address of the machine hosting the desired resource for the domain. **AAAA** (also called *quad A*) records are the same as *A* records, but store the IPv6 address of the machine instead of the IPv4 address. See [Overview of DNS and DNS Records > A and AAAA](/docs/guides/dns-overview/#a-and-aaaa). - -## Properties - -- **Hostname:** The root domain or the subdomain that you wish to use. - - - For the root domain (such as *example.com*), enter the `@` character or leave the field blank. - - For a subdomain (such as *host.example.com*), enter a string that's 1-63 characters in length and contains only letters, numbers, and underscores. Hyphens can also be used, but the string cannot start with one. - -- **IP Address:** The IPv4 or IPv6 address of the target server, such as a Linode Compute Instance. The Linode DNS Manager automatically creates either an A record or AAAA record depending on the type of IP address. See the [Find Your Linode's IP Address](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) guide for help locating an IP address on your Linode Compute Instance. - -- **TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. - -## Examples - -- **Hosting a website using the domain *example.com*.** Set the **Hostname** to `@` and the **IP Address** to the IPv4 address of the server hosting the website. If you wish to support IPv6 users (such as devices connected over many cellular networks), also create an AAAA record with the same hostname but using the IPv6 address of the server. - - {{< note >}} - While you can also create an A record for a subdomain, like *www.example.com*, it's more common to use CNAME records if the subdomain points to the same server. This limits the amount of places you might need to enter your IP address and reduces the overall number of DNS records you need to maintain. - {{< /note >}} - -- **Configuring the FQDN (fully qualified domain name) for a server.** Machines are often addressed by their FQDN, not their IP addresses. To set up an FQDN, create an A (and/or AAAA) record using the hostname of the machine (such as `web01` for *web01.example.com*.) and map it to its primary IPv4 or IPv6 address. diff --git a/docs/products/networking/dns-manager/guides/authoritative-name-servers/index.md b/docs/products/networking/dns-manager/guides/authoritative-name-servers/index.md deleted file mode 100644 index 694f59edd5d..00000000000 --- a/docs/products/networking/dns-manager/guides/authoritative-name-servers/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Configure Your Domain's Authoritative Name Servers" -description: "Instructions on configuring a domain's registrar so that you can use the Linode DNS Manager" -published: 2022-01-03 ---- - -To use Linode's DNS Manager, you must add our name servers as the authoritative name servers for your domain. To do this, log in to your domain registrar's control panel and set the name servers for your domain name to the entries below. See the instructions on your domain name registrar's website for more information. - -- `ns1.linode.com` -- `ns2.linode.com` -- `ns3.linode.com` -- `ns4.linode.com` -- `ns5.linode.com` - -The name for this setting various among registrars, but it is commonly called *external* or *custom* name servers. Follow the instructions for your registrar: - -- [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/) -- [GoDaddy](https://www.godaddy.com/help/change-nameservers-for-my-domains-664) -- [Hover](https://help.hover.com/hc/en-us/articles/217282477--Changing-your-domain-nameservers) - -{{< note >}} -DNS changes can take up to 24 hours to propagate throughout the internet, although the changes are usually visible within several hours. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/caa-record/index.md b/docs/products/networking/dns-manager/guides/caa-record/index.md deleted file mode 100644 index 53c0823c533..00000000000 --- a/docs/products/networking/dns-manager/guides/caa-record/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "CAA Records" -description: "Learn how to create CAA records using Linode's DNS Manager" -published: 2019-07-31 -modified: 2022-10-28 -keywords: ["caa", "dns", "records", "subdomain", "domain"] -tags: ["linode platform","cloud manager","dns"] -external_resources: - - '[CAA Records, DNSimple](https://support.dnsimple.com/articles/caa-record/)' - - '[RFC 6844: DNS Certification Authority Authorization (CAA) Resource Record](https://tools.ietf.org/html/rfc6844)' -aliases: ['/quick-answers/linode-platform/add-caa-dns-records/','/quick-answers/linode-platform/add-caa-dns-records-classic-manager/','/guides/add-caa-dns-records/','/products/networking/dns-manager/guides/add-caa-dns-records/'] ---- - -## CAA Overview - -A **CAA** (*Certification Authority Authorization*) record allows the owner of a domain to specify which certificate authority (or authorities) are allowed to issue TLS/SSL certificates for their domain. - -## Properties - -- **Name**: The subdomain you want the CAA record to cover. To apply it to your entire website (for example: `example.com`), leave this field blank. To limit the record's application to a subdomain on your site, (for example: `subdomain.example.com`), enter the subdomain's name into the form field (for example: `subdomain`). - -- **Tag**: - - - **issue** - Authorize the certificate authority entered in the *Value* field further below to issue TLS certificates for your site. - - - **issuewild** - Same as above, with the exception that you were issued a wildcard certificate. - - - **iodef** - URL where your CA can report security policy violations to you concerning certificate issue requests. - -- **Value**: If the **issue** or **issuewild** tag was selected above, then the **Value** field takes the domain of your certificate issuer (for example: `letsencrypt.org`). If the **iodef** tag was selected, the **Value** field takes a contact or submission URL (`http` or `mailto`). - -- **TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. - -## Add Multiple CAA Records - -Multiple CAA records must be added individually. If your site `example.com` was issued a TLS certificate by Let's Encrypt, but your subdomain `store.example.com` uses a Symantec certificate, you would need two different CAA records. A reporting URL for the *iodef* tag would also need its own record. Those three would look something like this: - -![Multiple CAA records](multiple-caa-records.png) diff --git a/docs/products/networking/dns-manager/guides/caa-record/multiple-caa-records.png b/docs/products/networking/dns-manager/guides/caa-record/multiple-caa-records.png deleted file mode 100644 index a32179cae37..00000000000 Binary files a/docs/products/networking/dns-manager/guides/caa-record/multiple-caa-records.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/cname-record/index.md b/docs/products/networking/dns-manager/guides/cname-record/index.md deleted file mode 100644 index cb2dfb137bc..00000000000 --- a/docs/products/networking/dns-manager/guides/cname-record/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "CNAME Records" -description: "Learn how to create CNAME records using Linode's DNS Manager" -published: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform"] ---- - -## CNAME Overview - -A **CNAME** (*Canonical Name*) record maps one subdomain to another subdomain, a root domain, or even a different domain entirely. Essentially, it creates an *alias* to the specified *target* domain. CNAME records are very common and prevent administrators from repeating IP addresses or other information across multiple DNS records. - -To provide an example, consider that *docs.example.com* is hosted on the same server as *example.com*. Also consider that an [A record](/docs/products/networking/dns-manager/guides/a-record/) already exists for *example.com*, which specifies the IP address of the server. Instead of creating another A record, you can create a CNAME record for *docs.example.com* and set it as an alias to *example.com*. When a DNS lookup occurs on *docs.example.com*, the DNS resolver sees that it is a CNAME record and performs another DNS lookup on the target domain. As the second query is for an A record, the IP address of the server is returned, which allows the user to access the website on that server. - -In most cases, the target domain should resolve to another type of DNS record, like an A record. However, you can configure CNAME looping, which occurs when a CNAME points to another CNAME. In this case, the last record in the chain must be another type of record. - -## Properties - -- **Hostname:** The subdomain that you wish to use. - - - Enter a string that's 1-63 characters in length and contains only letters, numbers, and underscores. Hyphens can also be used, but the string cannot start with one. - - {{< note >}} - Using the root domain as the hostname for a CNAME record is called *CNAME flattening* and is not supported on Linode's DNS Manager. - {{< /note >}} - -- **Alias to:** The full domain name of the canonical domain, where traffic should be redirected. You can also use the `@` character to use the root domain. - -- **TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-add-an-a-record-menu.png b/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-add-an-a-record-menu.png deleted file mode 100644 index 855968291c4..00000000000 Binary files a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-add-an-a-record-menu.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-add-an-a-record.png b/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-add-an-a-record.png deleted file mode 100644 index 4b743bbefdf..00000000000 Binary files a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-add-an-a-record.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-configurations-title-graphic.jpg b/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-configurations-title-graphic.jpg deleted file mode 100644 index 3cbfbfcd6a0..00000000000 Binary files a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-configurations-title-graphic.jpg and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-configurations.png b/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-configurations.png deleted file mode 100644 index 544b6775eb9..00000000000 Binary files a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-configurations.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-multiple-domains-one-server.png b/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-multiple-domains-one-server.png deleted file mode 100644 index 9a0d7579514..00000000000 Binary files a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-multiple-domains-one-server.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-set-up-a-domain.png b/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-set-up-a-domain.png deleted file mode 100644 index b9b9962c846..00000000000 Binary files a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-set-up-a-domain.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-use-wildcard.png b/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-use-wildcard.png deleted file mode 100644 index e925640bca0..00000000000 Binary files a/docs/products/networking/dns-manager/guides/common-dns-configurations/common-dns-use-wildcard.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/common-dns-configurations/index.md b/docs/products/networking/dns-manager/guides/common-dns-configurations/index.md deleted file mode 100644 index 4b872ff052c..00000000000 --- a/docs/products/networking/dns-manager/guides/common-dns-configurations/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Common DNS Configurations -description: 'Configurations for common DNS records.' -og_description: 'This guide provides you with step-by-step instructions for using the Linode Cloud Manager to configure DNS records such as A, AAA, MX, and other DNS records.' -published: 2015-01-20 -modified: 2019-03-14 -keywords: ["dns", "dnssec"] -tags: ["dns","networking","cloud manager","linode platform"] -aliases: ['/networking/dns/common-dns-configurations/','/dns-guides/configuring-dns-with-the-linode-manager/','/networking/dns/common-dns-configurations-classic-manager/','/guides/common-dns-configurations/'] ---- - -## Set Up a Domain - -The most common DNS configuration is a single domain name on a single Linode. For this, you'll need to add *SOA* and *NS records* for all of your name servers, and *A/AAAA* records for your domain names. Use the screenshot below as a guide. - -![The SOA record is set to "example-site-demo.com". The NS records are set to "ns1.linode.com" through "ns5.linode.com", inclusive. The MX record is set to "mail.example-site-demo.com". There are A records for [blank], which is the primary domain, and the "mail" and "www" subdomains. They are all set to the same IP.](common-dns-set-up-a-domain.png) - - {{< note >}} -The Domains section of Cloud Manager can automatically add all of these records when you create a domain. For instructions, see the *Add a Domain* section of the [DNS Manager](/docs/products/networking/dns-manager/) guide. -{{< /note >}} - -## Configure Subdomains - -1. To configure a subdomain (e.g. `staging.example-site-demo.com`), create an A record with the subdomain's hostname. Click **Add an A/AAAA Record**: - - ![Create a new A record by first click on "Add an A/AAAA Record"](common-dns-add-an-a-record.png) - -1. Add the subdomain under the **Hostname** field. Assign the IP address of the server you want to host the subdomain: - - ![Create a new A record, following the instructions in the "Adding" section. Add the subdomain text to the "Hostname" field. For example, you could type "staging" - NOT "staging.example-site-demo.com".](common-dns-add-an-a-record-menu.png) - -1. Click on the **Save** button to create the record. - - {{< note title="Multi-level Subdomains" >}} - The Linode Cloud Manager does not support adding a subdomain of a subdomain in the same domain zone. For example, if you have `example.com` as a domain with an A record for `staging.example.com`, you cannot create `test.staging.example.com` within that same domain zone. Instead, create a separate domain zone for the subdomain `staging.example.com`. Then, add an A record for `test.staging.example.com` to that new zone. - - See the [subdomains](/docs/products/networking/dns-manager/guides/manage-dns-records/#second-level-subdomains) section of the [DNS manager](/docs/products/networking/dns-manager/) guide for more information. - {{< /note >}} - -## Host Multiple Domains on a Single Server - -To host multiple domain names on a single server, create a separate domain entry for each domain name as shown below. When creating the new domain entry, we recommend that you allow the Domains section of Cloud Manager to automatically [insert basic records](/docs/products/networking/dns-manager/guides/create-domain/#pre-populate-dns-records). At a minimum, you'll need an A record for each domain name pointing to the server's IP address. - -![This page shows the Domains page with three different domain zones listed.](common-dns-multiple-domains-one-server.png) - -## Use One Domain on Multiple Servers - -If you have more than one server, but only one domain name, you can point A records with server-specific hostnames to all servers that need domain names. One machine will be the "front end" for the domain, by virtue of the first-level domain's A record pointing to it, but the domain can serve as a proxy for services provided by other machines, if needed. For example, if you wanted to create a development environment on another server, you could create an A record for `staging.example.com` and point it at another Linode's IP address. - -## Route Email to Third-Party Mail Services - -To route email to a third-party email service, create MX records that associate your mail server (for example, `mail.example-site-demo.com`) with a *hostname* provided by the third-party service. For more detailed instructions, see the website of your third-party email service. - -## Use Wildcard DNS Records - -A *wildcard* DNS record matches requests for non-existent domain names. For example, if you create an A record for `*.example.com`, and a user visits `nonexistantname.example.com`, that user will be redirected to `example.com`. An example wildcard DNS record is shown below. - -![Create a new A record, following the instructions in the "Adding" section. Add a single asterisk (\*) in the "Hostname" field. Set your IP address in the "IP Address" field. Then click the "Save Changes" button.](common-dns-use-wildcard.png) diff --git a/docs/products/networking/dns-manager/guides/create-domain/add-new-domain.png b/docs/products/networking/dns-manager/guides/create-domain/add-new-domain.png deleted file mode 100644 index e64ec9eb299..00000000000 Binary files a/docs/products/networking/dns-manager/guides/create-domain/add-new-domain.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/create-domain/create-default-records.png b/docs/products/networking/dns-manager/guides/create-domain/create-default-records.png deleted file mode 100644 index aa32096a7f5..00000000000 Binary files a/docs/products/networking/dns-manager/guides/create-domain/create-default-records.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/create-domain/index.md b/docs/products/networking/dns-manager/guides/create-domain/index.md deleted file mode 100644 index 51e62966e35..00000000000 --- a/docs/products/networking/dns-manager/guides/create-domain/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Create a Domain" -description: "Learn how to create domain zones to manage your DNS records using the Linode DNS Manager." -published: 2020-07-21 -modified: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform","cloud manager"] -aliases: ['/products/networking/dns-manager/guides/add-domains/'] ---- - -This guide walks you through how to create a domain through Cloud Manager. Adding a domain only takes a few steps. Here's an outline on how to create a domain using Cloud Manager. - -1. [Open the Create Domain Form in Cloud Manager](#open-the-create-domain-form-in-cloud-manager) -1. [Select the Zone Type](#select-the-zone-type) -1. [Enter the Domain and SOA Contact](#enter-the-domain-and-soa-contact) -1. [Pre-populate DNS Records](#pre-populate-dns-records) -1. [Create the Domain](#create-the-domain) -1. [Finish the Setup](#finish-the-setup) - -After you’ve figured out how to create domains, you’ll never need to call IT support for help again. Let’s look at each step in more detail. - -## Open the Create Domain Form in Cloud Manager - -Figuring out how to create a domain starts with getting into the system. Log in to [Cloud Manager](https://cloud.linode.com/) and choose **Domains** from the left navigation menu. Click the **Create Domain** button. This opens the [Domain Create](https://cloud.linode.com/domains/create) form. - -## Select the Zone Type - -Select *Primary* to use Linode as the main DNS provider, allowing you to add and edit DNS records directly on Linode. Alternatively, select *Secondary* if you want Linode to serve as a secondary DNS provider and obtain DNS records from a third-party service. - -- **Primary:** *This is the most common option.* Linode serves as the primary DNS provider. This enables you to manage all of your DNS records for the domain directly on the Linode platform. This option supports *outgoing* AXFR zone transfers so that other services can serve as secondary DNS providers. See [Outgoing DNS Zone Transfers](/docs/products/networking/dns-manager/guides/outgoing-dns-zone-transfers/). -- **Secondary**: Linode serves as the secondary DNS provider. All DNS records are managed through a third party DNS provider and are imported to Linode through AXFR zone transfers. See [Incoming DNS Zone Transfers > Operate as a Secondary Read-Only DNS Service](/docs/products/networking/dns-manager/guides/incoming-dns-zone-transfers/#operate-as-a-secondary-read-only-dns-service). - -## Enter the Domain and SOA Contact - -Enter the domain name you wish to use into the **Domain** field. This is typically the bare domain (such as *example.com*) but could also include a subdomain (such as *web.example.com*). Make sure the domain name has been registered (purchased) from your preferred registrar. - -Within the **SOA Email Address** field, enter the email address for the domain administrator. Ideally the SOA email should not be on the domain it's administering, as it should be accessible if there are any issues with the domain or the infrastructure hosting the domain. - -## Pre-populate DNS Records - -The **Insert Default Records** dropdown field lets you pre-populate DNS records with the IP addresses corresponding to one of your Compute Instances or NodeBalancers. If you already know the Compute Instance or NodeBalancer you'd like to use with your domain, this adds the basic DNS records (A, AAAA, and MX) for that service automatically. - -- **Do not insert default records for me.** No DNS records are automatically created. -- **Insert default records from one of my Lindoes.** Select one of your Compute Instances and DNS records are automatically created using the IPv4 and IPv6 addresses for that instance. -- **Insert default records from one of my NodeBalancers.** Select one of your NodeBalancers and DNS records are automatically created using the IPv4 and IPv6 addresses for that service. - -## Create the Domain - -Once you've made your selections, click the **Create Domain** button to add your domain to DNS Manager. The domain zone is created within seconds and is automatically set to an *Active* status. And that's how to create a domain in Cloud Manager. But, you are not done yet. - -## Finish the Setup - -After adding a new domain, there are a few additional steps required to complete the process: -- **Add DNS Records.** After the domain has been created, you can immediately start adding and editing DNS records for it. If you are migrating to Linode from an existing DNS provider, make sure you have added all of the necessary DNS records to your domain *before* adding Linode's name servers to your domain (on your registrar). See [Manage DNS Records](/docs/products/networking/dns-manager/guides/manage-dns-records/). - -- **Add Linode's Name Servers.** To use Linode as the authoritative name servers for your domain, you need to change the name servers on your registrar. Note that the process for this varies for each registrar. - - - [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-change-dns-for-a-domain/): Look for the *Custom DNS* option. - - [GoDaddy](https://www.godaddy.com/help/change-nameservers-for-my-domains-664): Select *Enter my own name servers (advanced)*. - - [Hover](https://help.hover.com/hc/en-us/articles/217282477--Changing-your-domain-nameservers): Find the *Edit* option for your name servers. - - And that’s it. Now you know how to add a domain in Cloud Manager! diff --git a/docs/products/networking/dns-manager/guides/incoming-dns-zone-transfers/index.md b/docs/products/networking/dns-manager/guides/incoming-dns-zone-transfers/index.md deleted file mode 100644 index 57766bcacea..00000000000 --- a/docs/products/networking/dns-manager/guides/incoming-dns-zone-transfers/index.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: "Incoming DNS Zone Transfers" -description: "Learn how to import DNS records from external DNS providers by using AXFR transfers" -published: 2022-10-28 -modified: 2022-11-08 -keywords: ["dns"] -tags: ["linode platform","cloud manager"] ---- - -Linode supports importing DNS records from external DNS providers in one of two ways: - -- [**Import a DNS zone**](#import-a-dns-zone): Initiate a one-time transfer from an external DNS service. *This lets you migrate to Linode and manage your DNS records from the DNS Manager.* -- [**Operate as a *secondary* read-only DNS service**](#operate-as-a-secondary-read-only-dns-service): Get notified of (or periodically check for) DNS changes from an external DNS service and automatically update the zone file with those changes. *This lets you manage your DNS records in an external DNS service but take advantage of Linode's reliable and geographically distributed DNS platform.* - -## Before You Begin - -As part of DNS zone transfers, Linode sends an AXFR query to whichever external name server you specify. That external name server must then send back an AXFR response, which includes a copy of the DNS zone file data. - -**Before continuing, verify that your current external DNS provider offers the ability to perform outgoing DNS zone transfers through AXFR.** If they do, add the IP addresses for Linode's AXFR servers to the ACL or allow-list of that DNS provider. These IP addresses vary depending on if you're importing a zone or operating as a secondary and are listed in their corresponding section below. - -{{< note >}} -AXFR functionality is typically available on enterprise-level plans. If your DNS provider does not support AXFR, DNS zone transfers will not work. If you still wish to use Linode's name servers, you can instead manually create the DNS zone and update it as needed. See [Create a Domain](/docs/products/networking/dns-manager/guides/create-domain/). -{{< /note >}} - -## Import a DNS Zone - -This section walks you through the first option, importing a DNS zone. This method gathers all of the DNS records from an external DNS service, creates a new domain zone within the DNS Manager, and imports each record into new zone. - -1. Within your external name server, allow AXFR transfers to the following Linode IP addresses: - - ``` - 96.126.114.97 - 96.126.114.98 - 2600:3c00::5e - 2600:3c00::5f - ``` - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Domains** from the left navigation menu. Click the **Import a Zone** button. - -1. In the **Domain** field, enter the domain name you wish to import. - -1. Enter your DNS provider's name server into the **Remote Nameserver** field. This name server needs to allow AXFR queries from the IP addresses listed in a previous step. - -1. Click the **Import** button. The DNS Manager connects to the remote name server and imports your existing DNS records. If there is an issue connecting to the name server, you may see an error stating that the request was refused. If this is the case, you may want to contact your external DNS provider and verify their domain transfer process. - -1. Once the DNS records have been imported, update the authoritative name servers on your domain's registrar. Remove your current provider's name servers and add Linode's own name servers (ns1.linode.com through ns5.linode.com). - -## Operate as a Secondary Read-Only DNS Service - -Using Linode's DNS Manager as a *secondary* DNS service lets you manage your DNS records elsewhere but still take advantage of Linode's reliable and distributed platform. Chose this option if your existing DNS provider: - -- does not offer secondary name server, -- is not equipped to handle large amounts of DNS traffic, -- or does not implement any high availability features. - -As part of this, a common reason for using Linode's DNS Manager as a secondary DNS provider is if your primary name server is self-hosted. This is true for users of cPanel, Plesk, and other web-hosting panels. It is also true for power-users that prefer to run their own dedicated DNS software, such as BIND, and manually update their DNS zone files. In these cases, you may value the control or automation from your current solution, but you desire more reliability and availability. - -1. Within your primary name server, allow AXFR transfer from the following Linode IP addresses. You should also make sure your name server sends NOTIFY requests to these IP addresses, which serves to notify Linode of any DNS changes so an AXFR zone transfer is triggered. - - ``` - 104.237.137.10 - 45.79.109.10 (was 65.19.178.10) - 74.207.225.10 - 207.192.70.10 - 109.74.194.10 - 2600:3c00::a - 2600:3c01::a - 2600:3c02::a - 2600:3c03::a - 2a01:7e00::a - ``` - - {{< note type="alert" >}} - On February 7th, 2023, the IP address `65.19.178.10` will be retired and replaced with `45.79.109.10`. Both IPs will respond to inbound requests until the cutover date. Outbound requests will only originate from the old IP address (`65.19.178.10`) until the cutover date. Please update your firewall rules and DNS server configurations to add the new IP address (`45.79.109.10`) before the cutover. - {{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Domains** from the left navigation menu. Click the **Create Domain** button. - -1. Select **Secondary** as the zone type. This changes some of the form options below it. - -1. Enter the domain name you wish to use into the **Domain** field. - -1. Add the IP Address of your external DNS provider's name server. If they have more than one name server, click **Add an IP** to add each additional one if desired. - -1. Click the **Create Domain** button to create the domain zone and start the transfer. - -1. Once the DNS zone transfer is finished, update the authoritative name servers on your domain's registrar to use some or all of Linode's name servers (ns1.linode.com through ns5.linode.com). If desired, add them alongside your current DNS provider's name servers (so Linode operates as one of many name servers) or you can delete their name servers (so Linode is the only authoritative name server). - -Linode checks for DNS changes when the refresh time elapses for the domain *or* when it receives a NOTIFY request from one of the designated external name servers. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/manage-dns-records/add-or-edit-dns-record.png b/docs/products/networking/dns-manager/guides/manage-dns-records/add-or-edit-dns-record.png deleted file mode 100644 index b6797145bd8..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-dns-records/add-or-edit-dns-record.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-dns-records/delete-dns-record.png b/docs/products/networking/dns-manager/guides/manage-dns-records/delete-dns-record.png deleted file mode 100644 index 58d3999a370..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-dns-records/delete-dns-record.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-dns-records/index.md b/docs/products/networking/dns-manager/guides/manage-dns-records/index.md deleted file mode 100644 index e1eaf3805dd..00000000000 --- a/docs/products/networking/dns-manager/guides/manage-dns-records/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Manage DNS Records" -description: "How to add DNS records using the Linode DNS Manager." -published: 2020-07-21 -modified: 2023-02-09 -keywords: ["dns"] -tags: ["linode platform","cloud manager"] -aliases: ['/products/networking/dns-manager/guides/add-dns-records/','/products/networking/dns-manager/guides/edit-dns-records/'] ---- - -## View DNS Records - -Log in to [Cloud Manager](https://cloud.linode.com), select *Domains* from the left menu, and click on the domain you wish to view. - -![Screenshot of the Domains listing page in Cloud Manager](view-dns.png) - -This opens up a page that lists all DNS records for the domain. Records for each record type are sorted into their own separate sections. From here, you can add, edit, or delete DNS records. - -## Add or Edit a DNS Record - -After a domain has been created, you're able to add DNS records. Each type of DNS record is used for a different purpose. The applications that use your domain determine which DNS records you need to add. - -1. View the DNS Records for your domain in Cloud Manager. See [View DNS Records](#view-dns-records). - -1. Locate the section for the record type you want to add or edit. To add a new record, click corresponding **Add a Record** button. To edit a record, locate the record in the list and click the corresponding **Edit** button. Both of these actions open up a similar form. - - ![Screenshot of the A/AAAA section on the DNS Records page for a domain](add-or-edit-dns-record.png) - -1. The form displays all parameters that are available for your chosen record type. For instance, an *A record* has fields for the **Hostname**, **IP Address**, and **TTL**. An *MX record* has fields for the **Mail Server**, **Preference**, **Subdomain**, and **TTL**. To learn more about the parameters for each record type, see the corresponding guides: - - - [A and AAAA Records](/docs/products/networking/dns-manager/guides/a-record/) - - - [CNAME Records](/docs/products/networking/dns-manager/guides/cname-record/) - - - [MX Records](/docs/products/networking/dns-manager/guides/mx-record/) - - - [TXT Records](/docs/products/networking/dns-manager/guides/txt-record/) - - - [NS Records](/docs/products/networking/dns-manager/guides/ns-record/) - - - [SOA Record](/docs/products/networking/dns-manager/guides/soa-record/) - - - [SRV Records](/docs/products/networking/dns-manager/guides/srv-record/) - - - [CAA Records](/docs/products/networking/dns-manager/guides/caa-record/) - -1. Once you have completed the form, click the **Save** button to create the DNS record or save the changes to an existing record. - -{{< note >}} -New DNS records may take up to 24 hours to propagate throughout the internet, although they are usually visible within several hours. -{{< /note >}} - -## Delete a DNS Record - -1. View the DNS Records for your domain in Cloud Manager. See [View DNS Records](#view-dns-records). - -1. Locate the section for the record type you want to remove, find the record in the list, and click the corresponding **Delete** button. - - ![Screenshot of a DNS Record entry with the Delete button highlighted](delete-dns-record.png) - -## Special Cases - -### Wildcards - -A [wildcard DNS record](https://en.wikipedia.org/wiki/Wildcard_DNS_record) matches all requests for subdomains that do not yet exist. Wildcards are often used to point all non-existing subdomains to an existing top level domain. For example, if a queried first-level subdomain does not exist, the IP address specified in the wildcard DNS record will respond. Wildcard records are formatted using an asterisk (`*`) in the field that designates the domain name of the record. For A records and CNAME records, this field is called **Hostname**. - -{{< note >}} -A wildcard must always be the furthest subdomain from the TLD (top level domain), i.e. `*.example.com`. If you would like to add a wildcard as a subdomain for a subdomain (what is also called a *second-level* subdomain or *fourth-level* domain), you will need to add a new domain zone for that subdomain and then add the wildcard record to it. For example, to create `*.subdomain.example.com`, you must add a separate domain zone for `subdomain.example.com` first, then add an A/AAAA DNS record to that zone as indicated above. -{{< /note >}} - -### Second-level Subdomains - -Linode's DNS Manager only supports subdomains one-level deep. It does not support second-level subdomains, such as *second.first.example.com*. To do this, you need to create a *separate* domain zone in the DNS Manager for the *first-level* subdomain (such as *first.example.com*), add NS records on the original root domain pointing to that subdomain zone, and then add your desired second-level subdomain records. diff --git a/docs/products/networking/dns-manager/guides/manage-dns-records/view-dns.png b/docs/products/networking/dns-manager/guides/manage-dns-records/view-dns.png deleted file mode 100644 index e55c3c183a7..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-dns-records/view-dns.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-domains/clone-domain.png b/docs/products/networking/dns-manager/guides/manage-domains/clone-domain.png deleted file mode 100644 index bd14a0d2fe8..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-domains/clone-domain.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-domains/delete-domain.png b/docs/products/networking/dns-manager/guides/manage-domains/delete-domain.png deleted file mode 100644 index faa181b5aee..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-domains/delete-domain.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-domains/disable-domain.png b/docs/products/networking/dns-manager/guides/manage-domains/disable-domain.png deleted file mode 100644 index 5d58318da7b..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-domains/disable-domain.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-domains/domain-clone-a-zone.png b/docs/products/networking/dns-manager/guides/manage-domains/domain-clone-a-zone.png deleted file mode 100644 index 770b321bcda..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-domains/domain-clone-a-zone.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-domains/edit-domain-details.png b/docs/products/networking/dns-manager/guides/manage-domains/edit-domain-details.png deleted file mode 100644 index 07904698acc..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-domains/edit-domain-details.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/manage-domains/index.md b/docs/products/networking/dns-manager/guides/manage-domains/index.md deleted file mode 100644 index 4dd633a76b2..00000000000 --- a/docs/products/networking/dns-manager/guides/manage-domains/index.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: "Manage Domains" -description: "How to manage domains using the Linode DNS Manager." -published: 2020-07-21 -modified: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform","cloud manager"] -aliases: ['/docs/products/networking/dns-manager/guides/remove-domains/'] ---- - -## View Domains - -Log in to [Cloud Manager](https://cloud.linode.com) and select *Domains* from the left menu. If any domains have already been added, they are listed on this page. - -![Screenshot of the Domains listing page in Cloud Manager](view-domains.png) - -Each domain in your account is displayed along with its status, the type of domain zone (*primary* or *secondary*), and when it was last modified. - -## Add a Domain - -To add a domain to your account, follow the instructions within the [Create a Domain](/docs/products/networking/dns-manager/guides/create-domain/) guide. - -## Review and Edit a Domain - -{{< note >}} -This section covers viewing and editing the details of the domain itself. If you wish to view and edit DNS records, see [Manage DNS Records](/docs/products/networking/dns-manager/guides/manage-dns-records/). -{{< /note >}} - -1. Navigate to the **Domains** page in Cloud Manager. See [View Domains](#view-domains). - -1. Locate the domain you wish to view or edit. Click on the corresponding **Edit** link. - - ![Screenshot of a domain entry with the Edit button highlighted](edit-domain-details.png) - -1. The **Edit Domain** panel appears. This displays the following fields along with their current values: - - - **Domain zone type:** This designates if the domain zone should operate as a *primary* or *secondary* name server. The value can't be changed after the domain has been created. - - **Domain:** The domain name for the domain. This is typically the bare domain (such as *example.com*) but could also include a subdomain (such as *web.example.com*). - - **SOA Email Address:** The email address to use as the domain administrator. Ideally the SOA email should not be on the domain it's administering, as it should be accessible if there are any issues with the domain or the infrastructure hosting the domain. - - **Tags:** Tags can help identify and group related Linode services. - -1. To save the changes, click the **Save Changes** button. - -## Clone a Domain - -The *Clone* feature lets you copy DNS records from an existing domain in your Linode account to a new domain. If you've already set up DNS records for one of the services you host on your Linode account, this is a good way to quickly assign another domain to that same service. - -Here's how to clone DNS records for an existing domain: - -1. Navigate to the **Domains** page in Cloud Manager. See [View Domains](#view-domains). - -1. Click on the **more options ellipsis** corresponding to the domain whose DNS records you would like to clone and select **Clone** from the menu. - -1. Enter the name of the new domain in the **New Domain** field. - -1. Click **Create**. The DNS records will then be copied from the existing domain to the new domain. - -## Disable (and Enable) a Domain - -When a domain is added to your account, it is *enabled* by default. This means that the domain is active and accessible through Linode's name servers. Disabling a domain causes it to no longer be accessible on our name servers. To change this setting, follow the instructions below. - -1. Navigate to the **Domains** page in Cloud Manager. See [View Domains](#view-domains). - -1. Locate the domain you wish to disable or enable. Click on the corresponding **Disable** (or **Enable**) link. - - ![Screenshot of a domain entry with the Disable button highlighted](disable-domain.png) - - Once you have changed the setting, its status will change to either *Active* (which means it is enabled) or *Disabled*. - -## Delete a Domain - -If one of your domain names has expired or if you want to start using a different DNS provider, you can remove the domain from the Linode platform. This deletes all of the associated DNS records and makes it so that they are no longer hosted on Linode's name servers. - -{{< note >}} -Before deleting your domain from Linode, consider if you wish to continue using the domain (or not) and take the appropriate action. - -- **If you intend to use another DNS provider:** Recreate all of your DNS records on your other DNS provider and update the name servers on your domain's registrar to point to this new provider. Once theses changes are made and have taken affect, you can delete the domain from Linode without any resolution errors. - -- **If you no longer wish to use this domain:** Remove Linode's name servers from your domain's registrar. *If the entries are not deleted, someone could use your domain on Linode's DNS Manager without your permission.* -{{< /note >}} - -1. Navigate to the **Domains** page in Cloud Manager. See [View Domains](#view-domains). - -1. Locate the domain you wish to remove and click on the corresponding **Delete** button. To see this option, you may need to select the *ellipsis* menu. - - ![Screenshot of a domain entry with the Delete button highlighted](delete-domain.png) - - This permanently delete the domain and all of its DNS records from Linode's name servers. It only takes a few minutes for the changes to take effect. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/manage-domains/view-domains.png b/docs/products/networking/dns-manager/guides/manage-domains/view-domains.png deleted file mode 100644 index 01258b6d81d..00000000000 Binary files a/docs/products/networking/dns-manager/guides/manage-domains/view-domains.png and /dev/null differ diff --git a/docs/products/networking/dns-manager/guides/mx-record/index.md b/docs/products/networking/dns-manager/guides/mx-record/index.md deleted file mode 100644 index 0ca5e741869..00000000000 --- a/docs/products/networking/dns-manager/guides/mx-record/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "MX Records" -description: "Learn how to create MX records using Linode's DNS Manager" -published: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform"] ---- - -## MX Overview - -An **MX** (*mail exchanger*) record sets the mail delivery destination for a domain or subdomain. This tells others what server is operating as the mail server so emails are routed to that destination. If MX records are configured incorrectly, emails might not be delivered to the intended users. - -## Properties - -- **Mail Server:** The root domain or subdomain where email should be routed. There should be a corresponding A record for this domain that stores the IP address of the mail server. This value should ideally point to a domain that is also the designated [hostname](/docs/products/compute/compute-instances/guides/set-up-and-secure/#configure-a-custom-hostname) for the mail server. - - {{< note >}} - The mail server does not need to be hosted on a Compute Instance. You can also use a domain for a third-party email provider, like Gmail (through Google Workspace), Outlook (through Office 365), or ProtonMail (on plans that support custom domains). - {{< /note >}} - -- **Preference** (also called *priority*): A number representing the priority of the mail server, with lower numbers having higher priority. This value matters when you have more than one MX record for the same subdomain. - -- **Subdomain:** The domain that you wish to use for your email addresses. - - - For email addresses on the root domain (*user@example.com*), leave the field blank. - - For email addresses on a subdomain (*user@subdomain.example.com*), enter a string that's 1-63 characters in length and contains only letters, numbers, and underscores. Hyphens can also be used, but the string cannot start with one. - -- **TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. - -## Null MX Record - -If you do not intend to accept any email through your domain, you can add a **Null MX** record, which is simply a specially formatted MX record. This is preferable to not adding any MX records, which causes the sender to still perform email delivery attempts on any A or AAAA records for that domain. A Null MX record tells the sending mail server to stop all delivery attempts, freeing up resources and allowing the sender to resolve any issues with the email address faster. - -The instructions for creating a Null MX record vary by DNS provider. For Linode's DNS Manager, the *Subdomain* (name) field should be blank, the *Preference* (priority) field should be 0, and the *Mail Server* field should be blank. This prevents you from creating any other MX records for the domain. diff --git a/docs/products/networking/dns-manager/guides/ns-record/index.md b/docs/products/networking/dns-manager/guides/ns-record/index.md deleted file mode 100644 index 5fd8f5fa4c0..00000000000 --- a/docs/products/networking/dns-manager/guides/ns-record/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "NS Records" -description: "Learn how to create NS records using Linode's DNS Manager" -published: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform"] ---- - -## NS Overview - -**NS** (*Name Server*) records specify the name servers used for a domain or subdomain. Name servers for the root domain (like *example.com*) are set directly on the domain's registrar, as well as through NS records. By default, five NS records are automatically created for you on Linode's DNS Manager, one for each of Linode's name servers (ns1.linode.com through ns5.linode.com). These can not be modified. Additional NS records can be created if you wish use a subdomain with a different DNS provider or manage it as a separate *Domain* (zone file) in Linode's DNS Manager. - -The order of NS records does not matter. A random NS record for a domain will be provided when the domain is queried. If one name server fails to respond, another one will be queried. - -## Properties - -- **Name Server:** The name server you wish to use. This could be name server corresponding with a third-party DNS service. If you wish to still use Linode's DNS Manager but manage the subdomain as a separate *Domain* (zone file), enter Linode's name servers. - -- **Subdomain:** The subdomain that you wish to manage as a separate *Domain* (zone file) or through another DNS provider. - - - Enter a string that's 1-63 characters in length and contains only letters, numbers, and underscores. Hyphens can also be used, but the string cannot start with one. - -- **TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/outgoing-dns-zone-transfers/index.md b/docs/products/networking/dns-manager/guides/outgoing-dns-zone-transfers/index.md deleted file mode 100644 index 572a2472b55..00000000000 --- a/docs/products/networking/dns-manager/guides/outgoing-dns-zone-transfers/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Outgoing DNS Zone Transfers" -description: "How to transfer domain zones using the Linode DNS Manager." -published: 2020-07-21 -modified: 2022-11-08 -keywords: ["dns"] -tags: ["linode platform","cloud manager"] -aliases: ['/products/networking/dns-manager/guides/transfer-domain-zones/'] ---- - -When a domain zone is created within Linode's DNS Manager, you can select if it will operate as a *primary* or a read-only *secondary* zone (see [Select the Zone Type](/docs/products/networking/dns-manager/guides/create-domain/#select-the-zone-type)). Selecting *primary* lets you edit the DNS records directly within the DNS Manager and is the most common choice. - -If you have configured your domain zone as *primary*, you can designate external DNS name servers as *secondaries*. The DNS Manager will then send a NOTIFY request to those name servers when you make any DNS changes. The external name server should then respond back with an AXFR query, which triggers Linode to send an AXFR response with the updated DNS zone. This guide covers the configuration needed to perform outgoing DNS zone transfers, including updating your SOA record. - -{{< note type="alert" >}} -To perform AXFR transfers, you must specify the IP address for each external DNS name server you wish to use. Granting another server access to zone information is potentially dangerous. Do not add any IP addresses that you do not know or trust. -{{< /note >}} - -## Configure the External DNS Provider - -Before continuing, make sure that you've added your domain to the external DNS provider you wish to use. When creating the domain zone on that provider, you may be given the option to create it as a *secondary* (or *read-only*) zone. Make sure to select that option. If you do not know how to create a secondary domain zone on that DNS provider, you may need to consult their documentation or contact them for assistance. - -To facilitate quick updates, Linode immediately sends the external name servers a NOTIFY request when you update DNS records through the DNS Manager. If you wish to have this trigger an AXFR zone transfer, you will likely need to add the following IP addresses to the ACL or allow-list of those name servers. If you do not do this, the external name servers will only update DNS records when the refresh time has elapsed. - -``` -104.237.137.10 -45.79.109.10 (was 65.19.178.10) -74.207.225.10 -207.192.70.10 -109.74.194.10 -2600:3c00::a -2600:3c01::a -2600:3c02::a -2600:3c03::a -2a01:7e00::a -``` - -{{< note type="alert" >}} -On February 7th, 2023, the IP address `65.19.178.10` will be retired and replaced with `45.79.109.10`. Both IPs will respond to inbound requests until the cutover date. Outbound requests will only originate from the old IP address (`65.19.178.10`) until the cutover date. Please update your firewall rules and DNS server configurations to add the new IP address (`45.79.109.10`) before the cutover. -{{< /note >}} - -## Add Secondary Name Servers - -1. Log in to [Cloud Manager](https://cloud.linode.com), select *Domains* from the left menu, and click on the domain you wish to update. - -1. Locate the **SOA Record** section and click **Edit**. This action may appear within the corresponding **ellipsis** menu. - -1. In the **Edit SOA Record** pane, find the **Domain Transfer IPs**. Add the IP addresses for each external name server you wish to notify of DNS changes and send the DNS zone. To add each additional IP address, click **Add an IP**. - -1. Click on **Save** to keep the changes. - -{{< note >}} -If you ever decide to stop using the secondary name server, be sure to remove its IP address from this list. -{{< /note >}} - -## Test AXFR Transfers - -When performing the AXFR DNS query, point your secondary name server to `axfr1.linode.com` (or up to `axfr5.linode.com`) instead of `ns1.linode.com`. To test the AXFR query locally, follow the above instructions to allow your computer's IP address as one of the ****Domain Transfer IPs**** in the SOA Record for your domain. This may take a few minutes before going into effect. Then run the following `dig` command, replacing **example.com** with your domain: - - dig axfr example.com @axfr1.linode.com - -The query should output all DNS records on the domain. If a `Transfer failed` message is received instead, it may be because your computer's IP address wasn't added properly within the DNS Manager. Review the settings, wait a few minutes, and then try again. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/soa-record/index.md b/docs/products/networking/dns-manager/guides/soa-record/index.md deleted file mode 100644 index 1dbafd8d2b2..00000000000 --- a/docs/products/networking/dns-manager/guides/soa-record/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "SOA Record" -description: "Learn how to create SOA records using Linode's DNS Manager" -published: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform"] ---- - -## SOA Overview - -The **SOA** (*Start of Authority*) record stores administrative information for the domain. This includes the responsible party's email address and various time periods for actions taken by secondary name servers. While some DNS providers do not offer the ability to modify the SOA record, some fields can be modified in Linode's DNS Manager. - -## Properties - -- **Domain** (also called *NAME*): The domain name for the *Domain* entry and the corresponding zone file. Only change this value if you wish to change the domain name that is managed by Linode's DNS Manager. - -- **SOA Email** (also called *RNAME*): The administrative email address for the domain. This email should belong to a *different* domain. - -- **Domain Transfer IPs:** A list of IP addresses that are able to perform AXFR transfers. If you wish to allow other DNS providers the ability to transfer the domain zone, their corresponding IP addresses can be added here. See [Transfer Domain Zones](/docs/products/networking/dns-manager/guides/outgoing-dns-zone-transfers/) - -- **Default TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. - -- **Refresh Rate:** The amount of time (in seconds) a secondary DNS server will keep the zone file before it checks for changes. - -- **Retry Rate:** The amount of time a secondary DNS server will wait before retrying a failed zone file transfer. - -- **Expire Rate:** The amount of time a secondary DNS server will wait before expiring its current zone file copy if it cannot update itself. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/srv-record/index.md b/docs/products/networking/dns-manager/guides/srv-record/index.md deleted file mode 100644 index 9f73d43bd4b..00000000000 --- a/docs/products/networking/dns-manager/guides/srv-record/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "SRV Records" -description: "Learn how to create SRV records using Linode's DNS Manager" -published: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform"] ---- - -## SRV Record Overview - -An **SRV** (*service*) record provides the target hostname and port for a given service. This lets you direct traffic for specific services to a server other than what is specified in corresponding DNS records. SRV records are required for some protocols, such as XMPP and SIP. - -## Properties - -- **Service:** The name of the service, such as *sip* or *xmpp*. The DNS Manager automatically includes a leading underscore character (`_`) and trailing period (`.`). - -- **Protocol:** The name of the protocol you wish to use. Select from one of the supported protocols: *tcp*, *udp*, *xmpp*, *tls*, and *smtp*. The DNS Manager automatically formats this to conform to the SRV record standards. - -- **Domain:** The name of the domain that will receive the original traffic for this service. This is generated automatically by Linode DNS Manager and is based on the root domain (the domain name specified when you created the *Domain* entry). If you wish to enable an SRV on a subdomain, you must create a separate zone (*Domain* entry) for that subdomain - -- **Priority**: A number representing the priority of the target host, with lower numbers having higher priority. This value matters when you have more than one SRV record for the same service, allowing you to have one or more fallback hosts. - -- **Weight**: A number representing the weight given to the target host. When multiple hosts have the *same* priority, clients should load balance them according to their weight. Hosts with larger weights are sent a larger portion of the traffic. - -- **Port**: The port used by the service on the target host. - -- **Target**: The target domain name where traffic should be redirected. This could be the root domain, a subdomain, or a separate domain entirely. Enter the `@` character to use the root domain. The target domain name must have a valid A or AAAA record to specify the IP address of the target host. - -- **TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/troubleshooting-dns/index.md b/docs/products/networking/dns-manager/guides/troubleshooting-dns/index.md deleted file mode 100644 index 2bb6468d6d9..00000000000 --- a/docs/products/networking/dns-manager/guides/troubleshooting-dns/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Diagnose & Resolve DNS Records in DNS Manager -title_meta: Troubleshooting DNS Records -description: 'Having problems with your DNS records? This guide to help get your DNS settings back on track. Follow these tips to troubleshoot DNS issues.' -published: 2020-07-09 -keywords: ["dns manager", "linode dns", "Linode Cloud Manager dns", "dns configuration", "ttl", "domain zones", "domain name"] -tags: ["linode platform","resolving","cloud manager","dns"] -aliases: ['/platform/manager/troubleshooting-dns/','/guides/troubleshooting-dns/'] ---- - -Having problems with your DNS records? This guide to help get your DNS settings back on track. Follow these tips to troubleshoot DNS issues. - -## Before You Begin - -The *Domains* section of the [Linode Cloud Manager](https://cloud.linode.com/domains) is a comprehensive DNS management interface that lets you add DNS records for all of your domain names. For an introduction to DNS Manager including setting up DNS records, see the [DNS Manager](/docs/products/networking/dns-manager/) guide. - -{{< note >}} -Linode's DNS service employs [Cloudflare](https://cloudflare.com) to provide denial of service (DDoS) mitigation, load balancing, and increased geographic distribution for our [name servers](/docs/guides/dns-overview/#name-servers). These factors make our service reliable, fast, and a great choice for your DNS needs. -{{}} - -{{< note >}} -To use the Linode DNS Manager to serve your domains, you must have an active Linode on your account. If you remove all active Linodes, your domains will no longer be served. -{{< /note >}} - -## Wait for Propagation - -DNS updates will take effect, or *propagate*, within the time period set by your zone file's [TTL](#set-the-time-to-live-or-ttl). If you've just made a DNS change and aren't seeing it reflected yet, the new information may not be available for up to 48 hours. - -While you can't control DNS caching at every point on the Internet, you do have control over your web browser. Try holding down the *Shift* key or the *Control* key (depending on your browser) while you refresh the page to bypass your browser's cache of the old DNS data. You can also try bringing up your site in an alternate browser or editing your hosts file to [preview your website without DNS](/docs/guides/previewing-websites-without-dns/). - -## Set the Time To Live or TTL - -In the context of DNS, Time to Live (TTL) tells internet servers how long to cache particular DNS entries. **The default TTL for Linode domain zone files is 24 hours**. This is fine for most situations because most people don't update their IP addresses often. - -However, there are times when you'll want the TTL to be as low as possible. For instance, when you make a DNS change, you'll want that change to propagate quickly. Otherwise, some people will see the new site right away, and others (who had the old data cached) will still be visiting the website at your old server. Long caching times can be even more problematic when it comes to email, because some messages will be sent to the new server and some to the old one. - -The solution is to lower your TTL before making a DNS change. You'll want to lower the TTL first, before making any other DNS changes. Here's a general overview of what should happen during a smooth DNS update: - -{{< note >}} -TTL is always written out in seconds, so 24 hours = 86400 seconds. -{{< /note >}} - -1. Check the TTL value for the DNS record you will be updating. Typically, this will be 24 or 48 hours. -1. Update the relevant DNS records 48 to 96 hours in advance (for a 24-48 hour record), taking into account any intermediate DNS servers. Lower the TTL to five minutes (300 seconds, or the lowest allowed value). Do not make any other changes at this time. -1. Wait out the original 48 to 96 hours. -1. Visit your domain's DNS records in the Linode Cloud Manager again to update your IP address and anything else needed. -1. The DNS changes should propagate within 30 minutes. - -## Find Current DNS Information - -Sometimes you may need to find the current DNS information for a domain. There are two great tools for doing this: - -- **dig**: Look up individual DNS entries. For example, you can find the IP address where your domain resolves. - -- **whois**: Find your registrar and nameserver information for your domain. - -If you're using a computer that runs macOS or Linux, you can use these tools from the command line. To find your domain's IP (the primary A record), run: - -```command -dig example.com -``` - -Look in the *answer* section of the output to locate your IP address. You can also query for other types of records. For example, to see the mail records for a domain, run: - -```command -dig mx example.com -``` - -This returns all of your domain's MX records. - -To find your domain's registrar and nameserver information, run: - -```command -whois example.com -``` - -This generates a large amount of information about the domain. The basic information you need will be near the top of the output, so you might have to scroll back to see it. - -For a web-based tool, you can also use [kloth.net](http://www.kloth.net/services/dig.php) for dig requests and [whois.net](http://whois.net/) for WHOIS requests. Note that since you're running these lookups from a third-party website, the information they find is not necessarily what your local computer has cached. There should be a difference only if you've made recent changes to your DNS information. - -For more information and examples on how to use dig, see our [Use dig to Perform Manual DNS Queries](/docs/guides/use-dig-to-perform-manual-dns-queries/) guide. - -## Name Resolution Failures - -If you have DNSSEC enabled at your domain's registrar it will cause name resolution failures such as `NXDOMAIN` when an attempt is made to access the DNS. This is because the Linode DNS Manager does not support DNSSEC at this time. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/guides/txt-record/index.md b/docs/products/networking/dns-manager/guides/txt-record/index.md deleted file mode 100644 index 8db89affd6f..00000000000 --- a/docs/products/networking/dns-manager/guides/txt-record/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "TXT Records" -description: "Learn how to create TXT records using Linode's DNS Manager" -published: 2022-10-28 -keywords: ["dns"] -tags: ["linode platform"] ---- - -## TXT Record Overview - -**TXT** (*text*) records stores text and can be used to provide information about the domain. It is the most flexible DNS record type and can serve many different purposes, including email security (SPF, DKIM, DMARC) or prove ownership of a domain to an outside service. - -## Properties - -- **Hostname:** The root domain or the subdomain that you wish to use. - - - For the root domain (such as *example.com*), leave the field blank. - - For a subdomain (such as *text.example.com*), enter a string that's 1-63 characters in length and contains only letters, numbers, and underscores. Hyphens can also be used, but the string cannot start with one. - -- **Value:** The text you wish to include. - - - TXT records are composed of 1 or more strings. Each string can have a maximum of 255 characters and are encapsulated by quotation marks. The Linode DNS Manager automatically splits the contents of the *Value* field into strings (including adding quotation marks). You do not need to manage this yourself. - -- **TTL** (*Time To Live*): The length of time that DNS resolvers should store the DNS record *before* revalidating it with Linode's name servers. Setting the TTL to **5 minutes** is recommended for many use cases. If **Default** is selected, the TTL is set to **24 hours**. \ No newline at end of file diff --git a/docs/products/networking/dns-manager/resources/index.md b/docs/products/networking/dns-manager/resources/index.md deleted file mode 100644 index 218f0fc7aea..00000000000 --- a/docs/products/networking/dns-manager/resources/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Resources -title_meta: "Resources for the Linode DNS Manager" -description: "Resources and other information related to the Linode DNS Manager including blog posts and community posts." -tab_group_main: - weight: 40 ---- - -## Blog Posts - -- [Reverse DNS Manager](https://www.linode.com/blog/networking/reverse-dns-manager/) - -- [DNS AXFR ACLs and IPv6 masters](https://www.linode.com/blog/networking/dns-axfr-acls-and-ipv6-masters/) - -- [Announcing Linode Manager for iPhone](https://www.linode.com/blog/linode/linode-manager-for-iphone/) - -- [Linode Manager Security Features](https://www.linode.com/blog/linode/linodemanager-security-features/) - -- [New Linode Manager released](https://www.linode.com/blog/linode/new-linode-manager-released/) - -- [Linode at 17: A bunch of updates](https://www.linode.com/blog/linode/linode-turns-17/) - -- [2019: A Big Year of Innovation for Linode a Big Thank You to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [Introducing the Linode API](https://www.linode.com/blog/linode/introducing-the-linode-api/) - -## Community Posts - -- [How do you prevent other users from using my domain name in DNS Manager?](https://www.linode.com/community/questions/19605/how-do-you-prevent-other-users-from-using-my-domain-name-in-dns-manager) - -- [How to set up GoDaddy MX records in Linode DNS Manager](https://www.linode.com/community/questions/17603/how-to-set-up-godaddy-mx-records-in-linode-dns-manager) - -- [How do I configure my domain name to send and receive mail through third-party mail services?](https://www.linode.com/community/questions/19205/how-do-i-configure-my-domain-name-to-send-and-receive-mail-through-third-party-m) - -- [How do I configure DNS for my Linode?](https://www.linode.com/community/questions/18354/how-do-i-configure-dns-for-my-linode) - -- [Should I point my domain to my IP or by using reverse DNS?](https://www.linode.com/community/questions/18635/should-i-point-my-domain-to-my-ip-or-by-using-reverse-dns) - -- [How do I configure a subdomain on my ubuntu?](https://www.linode.com/community/questions/19055/how-do-i-configure-a-subdomain-on-my-ubuntu) - -- [How can I setup DKIM for a Subdomain while using the DNS Manager?](https://www.linode.com/community/questions/18514/how-can-i-setup-dkim-for-a-subdomain-while-using-the-dns-manager) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=dns+manager). diff --git a/docs/products/networking/feature.png b/docs/products/networking/feature.png deleted file mode 100644 index 3cbc626d5c4..00000000000 Binary files a/docs/products/networking/feature.png and /dev/null differ diff --git a/docs/products/networking/feature.svg b/docs/products/networking/feature.svg deleted file mode 100644 index 98729b87c1a..00000000000 --- a/docs/products/networking/feature.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/products/networking/nodebalancers/_index.md b/docs/products/networking/nodebalancers/_index.md deleted file mode 100644 index 2733d12d8a9..00000000000 --- a/docs/products/networking/nodebalancers/_index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: NodeBalancers -title_meta: "NodeBalancer Product Documentation" -description: "Linode's managed cloud-based load balancing service, designed to provide high availability and horizontal scaling to any application." -modified: 2023-11-14 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-06-02 - product_description: "Managed cloud-based load balancing service that provides high availability and horizontal scaling to any application." -aliases: ['/platform/nodebalancer/','/nodebalancers/','/guides/platform/nodebalancer/'] ---- - -**NodeBalancers** are managed *load balancers as a service (LBaaS)*, making load balancing accessible and easy to configure on the Linode Platform. They intelligently distribute incoming requests to multiple back-end Compute Instances, so that there's no single point of failure. This enables high availability, horizontal scaling, and A/B testing on any application hosted with Linode. - -## High Availability - -In a typical single machine configuration, issues with the machine may cause the application to stop working as expected or become inaccessible. High availability solutions remove this single point of failure through combining multiple machines (redundancy), monitoring systems, and automatic failover - all of which are implemented by NodeBalancers. - -## Horizontal Scaling - -There are two main ways to scale an application to increase the performance and capacity within your applications. *Vertical scaling* increases or decreases the resources on the existing machines. This is achieved by [resizing](/docs/products/compute/compute-instances/guides/resize/) your Compute Instances. *Horizontal scaling* adds or removes machines that are identically configured to serve your application or perform a certain task. This is commonly accomplished through a load balancing solution, like NodeBalancers. Horizontal scaling can be much more flexible and lets you scale as needed without taking down your site while upgrading or downgrading. - -## Additional Features - -- **Firewall Security:** [Cloud Firewall](/docs/products/networking/cloud-firewall/) provides enhanced security by allowing you to control who can access your NodeBalancer. The optional Cloud Firewall sits between your NodeBalancer and the internet to filter out unwanted network traffic before it reaches your NodeBalancer. When used in conjunction with NodeBalancers, a Cloud Firewall’s inbound rules only apply to the NodeBalancer’s public IP, not the IPs of the back-end nodes. This means you may also want to add individual back-end nodes to a Cloud Firewall to protect any additional exposed IP addresses. - -- **Managed:** NodeBalancers take the infrastructure management out of load balancing. They are designed to be maintenance free after initial configuration. - -- **Sticky Sessions:** NodeBalancers can route subsequent requests to the same back end, so all application sessions work correctly. - -- **Health Checks:** Traffic is only routed to healthy back ends. Passive health checks happen on every request. You can configure active health checks based on your application or service. - -- **SSL Termination:** NodeBalancers can terminate SSL traffic on your behalf and expose the requester’s IP through the back end. This is done using configurable rulesets that give you the power to fine-tune admissible traffic. - -- **Throttling:** Prevent potential abuse (and preserve resources on your back ends) by setting a client connection throttle on the NodeBalancer. - -- **Multi-Port:** NodeBalancers support balancing traffic to multiple network ports. Several services can be load balanced with a single NodeBalancer. - -## Recommended Workloads - -- Enterprise applications -- High traffic and e-commerce websites -- Applications that require extreme reliability and uptime -- Applications that need to dynamically scale without any downtime -- A/B testing - -## Availability - -NodeBalancers are available across [all regions](https://www.linode.com/global-infrastructure/). - -## Pricing - -Each NodeBalancer on an account starts at $10/mo ($0.015/hr). [Price](https://www.linode.com/pricing/) may vary by region. - -Cloud Firewall is available at no additional charge to customers. - -## Technical Specifications - -- Managed cloud-based load balancing service -- Dynamically routes traffic over any ports to configurable back-end Compute Instances -- Highly available with built-in redundancy -- Up to 10,000 concurrent connections -- Supports TCP-based (layer 4) load balancing (UDP traffic is not supported) -- Supports HTTP and HTTPS (layer 7) load balancing through the HTTP/1.1 protocol (HTTP/2 is not yet available) -- Supports both SSL termination (using the HTTPS protocol mode) and SSL pass-through (using the TCP protocol mode) -- Equipped with both public IPv4 and IPv6 addresses -- Supports inbound Cloud Firewall rules such as IPv4 and IPv6 access control lists (ACLs) to *Accept* or *Drop* ingress traffic. -- Fully customizable health checks to ensure traffic lands on a functioning back end -- 40 Gbps inbound network bandwidth -- Free inbound network transfer -- Outbound network transfer usage is counted towards the account-wide [monthly network transfer pool](/docs/products/platform/get-started/guides/network-transfer/) -- Provisioning and management through [Cloud Manager](https://cloud.linode.com/), [Linode CLI](https://www.linode.com/products/cli/), or programmatically through the [Linode API](https://www.linode.com/products/linode-api/) - -## Limits and Considerations - -- **Maximum number of concurrent connections:** NodeBalancers each support up to 10,000 concurrent connections. If your application needs to support more than that, [contact support](https://www.linode.com/support/) to determine additional options or consider using multiple NodeBalancers behind a DNS load balancing solution such as [Round-Robin DNS](/docs/guides/setting-up-round-robin-dns/). -- **Connections per second:** There are no defined rate limits for the number of connections over a given time period, though certain modes are more performant. A port configured in **TCP** mode allows for the most number of connections. A port configured in **HTTPS** mode is the most resource intensive and accommodates fewer connections. -- **IP addresses:** A public IPv4 address and IPv6 address are configured on each NodeBalancer. Additional addresses are not available. -- **Private network:** Communication with back-end Linodes occurs over a data center's private network. As such, back-end Linodes must be located within the same data center as the NodeBalancer. -- **HTTP support:** HTTP/1.1 (HTTP/2 support is not yet available). -- **Network transfer:** *Outbound transfer* usage is counted towards the account-wide [monthly network transfer pool](/docs/products/platform/get-started/guides/network-transfer/). This pool is the combined total of the network transfer allowance of each Linode on the account. Both *Incoming transfer* and transfer over the private network are provided at no cost. -- **TLS termination:** When using a NodeBalancer with an application that requires HTTPS, you can either terminate the TLS connection on the NodeBalancer (**HTTPS** mode) or on the back-end Linodes (**TCP** mode). When terminating TLS connections directly on the NodeBalancer, there are a few key considerations: - - **TLS protocols:** TLS v1.2 and v1.3 are supported in **HTTPS** mode. - - While operating in **HTTPS** mode, internal traffic sent to the back-end Linodes will be unencrypted. - - For applications that require a very high connection rate or otherwise need to overcome the above considerations present in **HTTPS** mode, consider operating in **TCP** mode and terminating TLS on the back-end Linodes. - -- **Cloud Firewall support:** When a Cloud Firewall is assigned to a NodeBalancer, the firewall only looks at incoming requests, this means that only inbound Cloud Firewall rules apply and outbound rules are not applicable. - - {{< note >}} - A service (Linode) can be accessed from other interfaces (not just the NodeBalancer). To filter traffic from other interfaces, back-end Linodes require their own firewalls. - {{< /note >}} \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/developers/index.md b/docs/products/networking/nodebalancers/developers/index.md deleted file mode 100644 index 768d3fa2410..00000000000 --- a/docs/products/networking/nodebalancers/developers/index.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for NodeBalancers" -description: "Linode NodeBalancers can be created and managed with developer tools like the Linode API, CLI, Linode Cloud Controller Manager, and third party tools and integrations." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. Learn how to manage NodeBalancers with the Linode API: - -- [Configure NodeBalancers with the Linode API](/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/) - -- [NodeBalancers API Endpoint Collection](/docs/api/nodebalancers) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [create and manage NodeBalancers](/docs/products/tools/cli/guides/nodebalancers/). - -## Linode Cloud Controller Manager - -**Cloud Controller Manager**: Linode's [Cloud Controller Manager (CCM)](https://github.com/linode/linode-cloud-controller-manager/) is written in Go and is included in every Linode Kubernetes Engine cluster's control plane. It creates a fully supported Kubernetes experience on Linode by providing a way for your cluster to access additional Linode services such as NodeBalancers. - -- [Deploy NodeBalancers with the Linode Cloud Controller Manager](/docs/products/compute/kubernetes/guides/load-balancing/) - -## Third Party Tools & Integrations - -**Terraform**: Terraform is an Infrastructure-as-code tool that includes management features for various types of Linode resources. Use Linode’s [official Terraform Provider](https://registry.terraform.io/providers/linode/linode/latest/docs) to [Create a NodeBalancer with Terraform](/docs/guides/create-a-nodebalancer-with-terraform/). To learn more about Terraform see our documentation library’s [Terraform section](/docs/applications/configuration-management/terraform/). - -**Pulumi**: Pulumi is a development tool that lets you write computer programs which deploy cloud resources. With [Pulumi’s Linode integration](https://github.com/pulumi/pulumi-linode), you can manage your Linode resources in several programming languages, like JavaScript, Go, Python, and TypeScript. Pulumi manages your resources in the same way as Linode's API or CLI. See [Pulumi’s documentation](https://www.pulumi.com/docs/intro/cloud-providers/linode/) to get started. - -- [Create and Configure a NodeBalancer with Pulumi](/docs/guides/deploy-in-code-with-pulumi/#create-and-configure-a-nodebalancer) diff --git a/docs/products/networking/nodebalancers/feature.png b/docs/products/networking/nodebalancers/feature.png deleted file mode 100644 index 37d8e5b0180..00000000000 Binary files a/docs/products/networking/nodebalancers/feature.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/feature.svg b/docs/products/networking/nodebalancers/feature.svg deleted file mode 100644 index 205f06f24ac..00000000000 --- a/docs/products/networking/nodebalancers/feature.svg +++ /dev/null @@ -1,7 +0,0 @@ - - NodeBalancers - - - - - \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/get-started/Getting-Started-with-NodeBalancers-smg.jpg b/docs/products/networking/nodebalancers/get-started/Getting-Started-with-NodeBalancers-smg.jpg deleted file mode 100644 index 1ae39e1a790..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/Getting-Started-with-NodeBalancers-smg.jpg and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/getting-started-with-nodebalancers.png b/docs/products/networking/nodebalancers/get-started/getting-started-with-nodebalancers.png deleted file mode 100644 index 717a4954292..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/getting-started-with-nodebalancers.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/index.md b/docs/products/networking/nodebalancers/get-started/index.md deleted file mode 100644 index 2b513a032ea..00000000000 --- a/docs/products/networking/nodebalancers/get-started/index.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with NodeBalancers" -description: "Learn how to quickly start using a NodeBalancer, including advice on architecting your application and configuring the NodeBalancer" -published: 2022-10-07 -tab_group_main: - weight: 30 -keywords: ["nodebalancers", "nodebalancer", "load balancers", "load balancer", "load balancing", "high availability", "ha"] -tags: ["cloud manager","linode platform","networking","web applications"] -aliases: ['/nodebalancers/getting-started/','/platform/nodebalancer/getting-started-with-nodebalancers-new-manager/','/platform/nodebalancer/getting-started-with-nodebalancers/','/linode-platform/nodebalancer-howto/','/platform/nodebalancer/getting-started-with-nodebalancers-classic-manager/', '/guides/nodebalancer/getting-started-with-nodebalancers/','/guides/getting-started-with-nodebalancers/'] ---- - -Nearly every production application can benefit from a load balancing solution like Linode's NodeBalancers. This guide covers how to get started with NodeBalancers, including how to architect your application, configure the NodeBalancer, and update the DNS. - -## Prepare the Application - -To start using a NodeBalancer and benefiting from load balancing, your application should be stored on at least two Compute Instances. Each instance of your application should be able to fully serve the needs of your users, including being able to respond to web requests, access all necessary files, and query any databases. When determine your application's infrastructure, consider the following components: - -- **Application deployment:** *How will you deploy your application's code and software infrastructure to each Compute Instance?* Consider using automated git deployments or more advanced CI/CD tooling. - -- **File storage and synchronization:** *Should the application's files be stored alongside the application's code or should you consider implementing a distributed storage solution on separate instances?* For simple applications, consider file synchronization/backup tools like [rsync](https://linux.die.net/man/1/rsync) or [csync2](https://linux.die.net/man/1/csync2). For a more robust solution, consider a distributed file system like [GlusterFS](https://www.gluster.org/). - -- **Database replication:** *How will you maintain consistency between multiple databases?* Consider the suggested architecture and available tooling for the database software you intend to use. Linode [Managed Databases](/docs/products/databases/managed-databases/), when deployed with high availability enabled, are a great fully-managed solution. Alternatively, [Galera](https://galeracluster.com/) is a self-hosted option that can be used with MySQL. - - {{% content "dbass-eos" %}} - -In some simple applications, the servers that store your application's code can also store its files and databases. For more complex applications, you may want to consider designating separate application servers, file servers, and database servers. The application servers (where the web server software and application code resides) operate as the back ends to the NodeBalancer. The file servers and database servers can be built on cloud-based solutions (like Managed Databases) or self-hosted software on Compute Instances. - -For advice on load balancing and high availability, review the following resources: - -- [Introduction to Load Balancing](/docs/products/networking/nodebalancers/guides/load-balancing/) -- [Introduction to High Availability](/docs/guides/introduction-to-high-availability/) -- [Host a Website with High Availability](/docs/guides/host-a-website-with-high-availability/) - -## Create the NodeBalancer - -If you are using a Cloud Firewall with this NodeBalancer, have the name of the firewall available. To see a listing of available firewalls, log in to [Cloud Manager](https://cloud.linode.com) and select **Firewalls** from the navigation menu. If the firewall doesn't exist yet, [Create a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/) and [Add Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/). - -Once your application has been deployed on multiple Compute Instances, you are ready to create the NodeBalancer. Simple instructions have been provided below. For complete instructions, see the [Create a NodeBalancer](/docs/products/networking/nodebalancers/guides/create/) guide. - -1. Log in to [Cloud Manager](https://cloud.linode.com), select **NodeBalancers** from the left menu, and click the **Create NodeBalancer** button. This displays the *NodeBalancers Create* form. - -1. Enter a **Label** for the NodeBalancer, as well as any **Tags** that may help you organize this new NodeBalancer with other services on your account. - -1. Select a **Region** for this NodeBalancer. The NodeBalancer needs to be located in the same data center as your application's Compute Instances. - -1. If you are using a firewall, select a firewall from the **Assign Firewall** list. Only one Firewall can be selected, however you can attach the same Cloud Firewall to multiple NodeBalancers or other services (devices). - - You can also create a new Firewall by clicking the **Create Firewall** button. This displays the *Create Firewall* drawer. Configure the required field. - - | **Configuration** | **Description** | - | --------------- | --------------- | - | **Label** (Required)| The label is used as an identifier for this Cloud Firewall. | - | **Additional Linodes** (Optional)| The Linode(s) on which to apply this Firewall. A list of all Linodes on your account are visible. You can leave this blank if you do not yet wish to apply the Firewall to a Linode. | - | **Additional NodeBalancers** (Optional) | The NodeBalancers on which to apply this Firewall. A list of all created NodeBalancers on your account are visible. You can leave this blank if you do not want to apply this Cloud Firewall to other NodeBalancers.| - - Click on the **Create Firewall** button to finish creating the Cloud Firewall and to returned to the *NodeBalancers Create* form. - - {{< note >}} - By default, a new Cloud Firewall accepts all inbound and outbound connections. Only inbound firewall rules apply to NodeBalancers, see [Cloud Firewall Inbound Rules for NodeBalancer](/docs/products/networking/nodebalancers/guides/create/#cloud-firewall-inbound-rules-for-nodebalancer). Custom rules can be added as needed in the Firewall application. See [Add New Cloud Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/). - {{< /note >}} - -5. Within the *NodeBalancer Settings* area, there is a single configuration block with sections for configuring the port, defining health checks, and attaching back-end nodes. Additional ports can be added using the **Add another Configuration** button. - - {{< note >}} - The following recommended parameters can be used for deploying a website. For other applications or to learn more about these settings, see the [Configuration Options](/docs/products/networking/nodebalancers/guides/configure/) guide. - {{< /note >}} - - - **Port:** For load balancing a website, configure two ports: port 80 and port 443. Each of these ports can be configured separately. See [Configuration Options > Port](/docs/products/networking/nodebalancers/guides/configure/#port). - - - **Protocol:** Most applications can benefit from using the *TCP* protocol. This option is more flexible, supports HTTP/2, and maintains encrypted connections to the back-end Compute Instances. If you intend to manage and terminate the TLS certificate on the NodeBalancer, use *HTTP* for port 80 and *HTTPS* for port 443. See [Configuration Options > Protocol](/docs/products/networking/nodebalancers/guides/configure/#protocol). - - - **Algorithm:** This controls how new connections are allocated across back-end nodes. Selecting *Round Robin* can be helpful when testing (in conjunction with no session stickiness). Otherwise, *Least Connections* can help evenly distribute the load for production applications. See [Configuration Options > Algorithm](/docs/products/networking/nodebalancers/guides/configure/#algorithm). - - - **Session Stickiness:** This controls how subsequent requests from the same client are routed when selecting a back-end node. For testing, consider selecting *None*. Otherwise, *Table* can be used for any protocol and *HTTP Cookie* can be used for *HTTP* and *HTTPS*. See [Configuration Options > Session Stickiness](/docs/products/networking/nodebalancers/guides/configure/#session-stickiness). - - - **Health Checks:** NodeBalancers have both *active* and *passive* health checks available. These health checks help take unresponsive or problematic back-end Compute Instances out of the rotation so that no connections are routed to them. These settings can be left at the default for most applications. Review [Configuration Options > Health Checks](/docs/products/networking/nodebalancers/guides/configure/#health-checks) for additional information. - - - **Back-end nodes:** Each Compute Instance for your application should be added as a *back-end node* to the NodeBalancer. These Compute Instances need to be located in the same data center as your NodeBalancer and have private IP addresses assigned to them. Set a **Label** for each instance, select the corresponding **IP address** from the dropdown menu, and enter the **Port** that the application is using on that instance. See [Back-end Nodes (Compute Instances)](/docs/products/networking/nodebalancers/guides/backends/). - - For most web applications that have the *inbound* ports 80 and 443 configured using the *TCP* protocol, you can set the back-end nodes to use the same ports. If you are using the *HTTPS* protocol, TLS termination happens on the NodeBalancer and your Compute Instances should only need to listen on port 80 (unencrypted). If that's the case, back-end nodes for both *inbound* ports can be configured to use port 80. - -1. Review the summary and click the **Create NodeBalancer** button to provision your new NodeBalancer. - -## Update the DNS - -After deploying your NodeBalancer and putting your application behind the NodeBalancer, the application can now be accessed using the NodeBalancer's public IPv4 and IPv6 addresses. Since most public-facing applications use domain names, you need to update any associated DNS records. The *A* record should use the NodeBalancer's IPv4 address and the *AAAA* record (if you're using one) should use the NodeBalancer's IPv6 address. See [Manage NodeBalancers](/docs/products/networking/nodebalancers/guides/manage/#review-and-edit-a-nodebalancer) to view your NodeBalancer's IP addresses. For help changing the DNS records, consult your DNS provider's documentation. If you are using Linode's DNS Manager, see [Edit DNS Records](/docs/products/networking/dns-manager/guides/manage-dns-records/). Keep in mind that DNS changes can take up to 24 hours to fully propagate, though that typically happens much faster. \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-1up-small.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-1up-small.png deleted file mode 100644 index e7b21fec713..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-1up-small.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-1up.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-1up.png deleted file mode 100644 index 59adbd8981c..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-1up.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-add-a-name.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-add-a-name.png deleted file mode 100644 index 1c702ce1e12..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-add-a-name.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes-1.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes-1.png deleted file mode 100644 index 3df91ea5b09..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes-1.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes-small.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes-small.png deleted file mode 100644 index 482ab693249..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes-small.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes.png deleted file mode 100644 index 3df91ea5b09..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes2.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes2.png deleted file mode 100644 index b085d9162b4..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-backend-nodes2.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-create-choose-region-small.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-create-choose-region-small.png deleted file mode 100644 index 76d30860ab0..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-create-choose-region-small.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-create-choose-region.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-create-choose-region.png deleted file mode 100644 index ce5ca5af61d..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-create-choose-region.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-hello-world.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-hello-world.png deleted file mode 100644 index 2792c91d553..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-hello-world.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/get-started/nodebalancers-settings.png b/docs/products/networking/nodebalancers/get-started/nodebalancers-settings.png deleted file mode 100644 index 339807b0149..00000000000 Binary files a/docs/products/networking/nodebalancers/get-started/nodebalancers-settings.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/_index.md b/docs/products/networking/nodebalancers/guides/_index.md deleted file mode 100644 index cc8bba6904b..00000000000 --- a/docs/products/networking/nodebalancers/guides/_index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for NodeBalancers" -description: "A collection of guides on using NodeBalancers to load balance applications hosted on the Linode platform." -modified: 2022-10-07 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Introduction to Load Balancing](/docs/products/networking/nodebalancers/guides/load-balancing/): Learn the basics of load balancing and how NodeBalancers work. - -- [Create a NodeBalancer](/docs/products/networking/nodebalancers/guides/create/): Instructions for creating a new NodeBalancer. - -- [Manage NodeBalancers](/docs/products/networking/nodebalancers/guides/manage/): View, edit, and manage NodeBalancers on your account. - -## Configuration - -- [Configuration Options](/docs/products/networking/nodebalancers/guides/configure/): Edit the port configurations on a NodeBalancer. - -- [Back-end Nodes (Compute Instances)](/docs/products/networking/nodebalancers/guides/backends/): Manage the settings for back-end nodes. - -- [Available Protocols](/docs/products/networking/nodebalancers/guides/protocols/): A list of protocols supported by NodeBalancers - -- [TLS/SSL Termination](/docs/products/networking/nodebalancers/guides/ssl-termination/): Instructions on configuring TLS/SSL certificates on a NodeBalancer. - -- [Client IP Address Pass-through](/docs/products/networking/nodebalancers/guides/client-ip/): Learn the methods of retaining client connection details and passing them to back-end nodes on a NodeBalancer. - -- [Proxy Protocol](/docs/products/networking/nodebalancers/guides/proxy-protocol/): Obtain information about a client when using the TCP protocol. - -## High Availability Concepts and Tutorials - -- [Introduction to High Availability](/docs/guides/introduction-to-high-availability/): Basic overview of high availability, covering redundancy, monitoring, and failover. - -- [Host a Website with High Availability](/docs/guides/host-a-website-with-high-availability/): A walk-through on deploying a high availability web application using Gluster (file replication), Galera (MySQL database replication), and a NodeBalancer. - -## Automated Deployment Tutorials - -- [Configure NodeBalancers with the Linode API](/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/) - -- [Deploy NodeBalancers with the Linode Cloud Controller Manager](/docs/products/compute/kubernetes/guides/load-balancing/) - -- [Create a NodeBalancer with Terraform](/docs/guides/create-a-nodebalancer-with-terraform/) - -- [Create and Configure a NodeBalancer with Pulumi](/docs/guides/deploy-in-code-with-pulumi/#create-and-configure-a-nodebalancer) diff --git a/docs/products/networking/nodebalancers/guides/backends/index.md b/docs/products/networking/nodebalancers/guides/backends/index.md deleted file mode 100644 index 5908d8e0f8b..00000000000 --- a/docs/products/networking/nodebalancers/guides/backends/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Back-end Nodes (Compute Instances)" -description: "Instructions for adding and configuring back-end nodes on a NodeBalancer" -published: 2022-10-07 ---- - -Load balancers work by distributing traffic to a pool of servers. For NodeBalancers, these servers are Linode Compute Instances and they are configured as *back-end nodes*. Each Compute Instance operating as a back-end node needs to be located within the same data center as the NodeBalancer and be assigned a private IPv4 address. See [Managing IP addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#adding-an-ip-address) for instructions on adding a private IP address to an existing Compute Instance. - -{{< note >}} -While only a single back-end node is required, *at least* two back ends need to be configured to make use of load balancing functionality. -{{< /note >}} - -## Add, Edit, and Remove Back-end Nodes - -Back-end nodes can be defined through a NodeBalancer's [Configurations](/docs/products/networking/nodebalancers/guides/configure/), which contain all the settings and parameters for a particular *inbound* port. - -1. Log in to [Cloud Manager](http://cloud.linode.com), click **NodeBalancers** in the left menu, and select the NodeBalancer you wish to edit. See [Manage NodeBalancers](/docs/products/networking/nodebalancers/guides/manage/). - -1. Navigate to the **Configurations** tab. This displays a list of all ports that have been configured. - -1. Open the port configuration you wish to edit or create a new one by clicking the **Add Another Configuration** button. - -1. Scroll down to the *Back-end Nodes* section to see a list of back ends that have already been added. - - - Adjust any of the existing fields to edit the back end. - - Click the **Add a Node** button to add a new back end. - - Click the **Remove** link to remove the back end. - -1. Click the **Save** button to save the configuration. - -{{< note >}} -Removing a back end from the NodeBalancer configuration does not delete the associated Compute Instance. It only removes that instance from operating as a back end for this particular NodeBalancer. -{{< /note >}} - -## Back end Configuration Options - -Each back-end node contains the following configuration parameters. - -- **Label**: Sets a label to identify the back end. While any label can be used, it's common to use the label of the associated Compute Instance. -- **IP Address**: Select the private IPv4 address of the Compute Instance you wish to use as the back end. This field has a dropdown list of all Compute Instances within the same region as the NodeBalancer that have a private IPv4 address assigned. -- **Port**: Identifies the port that the NodeBalancer should use when sending traffic to the back end. This should be the port that the application is listening on within this back-end Compute Instance. -- **Weight**: Sets the priority of the back end. Back ends with a higher weight are allocated more connections than back ends with a lower weight. -- **Mode**: Determines if the back end accepts or rejects traffic and in what circumstances. See [Mode](#mode). - -## Mode - -By default, all back ends are allocated traffic according to the configuration settings of the NodeBalancer, provided the back ends have a status of *up*. To change this behavior, use the **Mode** setting to modify how a back end accepts or rejects traffic. - -- **Accept**: Accept incoming connections -- **Reject**: Reject new incoming connections and discontinue health checks on this back end. Existing connections remain active, but session stickiness is not respected. Useful for taking the back end out of rotation to perform maintenance or decommission it. -- **Drain**: Only accept connections from clients whose session stickiness points to this back end. Use *in advance* of taking a back end out of rotation for maintenance or decommissioning to gradually drain connections. -- **Backup**: Only accept connections if all other back ends are down. Useful if you use front-end caching servers, such as Varnish, and want to direct traffic to the origin servers if the caching servers are down. - -{{< note >}} -Changes made to the Mode field are applied within 60 seconds. -{{< /note >}} - -## Understand the Status of a Back-end Node - -Each back-end node has a status of *up* or *down*. - -- **Up**: The back end is healthy and should be kept in rotation, provided that the [Mode](#mode) is allowing traffic. -- **Down**: The back end is *unhealthy* and taken out of rotation. This means that a health check has failed or the **Mode** has been set to *Reject*. - -## Configure Compute Instances - -When adding a Compute Instance as a *Back-end Node* to a NodeBalancer, you must also ensure that it has been properly configured for your application. As part of this, review the following: - -- Install all required software on the Compute Instance. - -- Verify that any required data has been properly replicated on each Compute Instance. There are many different methods of ensuring data is properly replicated between multiple servers, including [rsync](https://linux.die.net/man/1/rsync), [Gluster](https://www.gluster.org/), [Galera](https://galeracluster.com/), or CI/CD tooling. - -- Verify that each instance accepts traffic over the port specified in the back end's configuration and is not blocking addresses from the NodeBalancer's private IP address range: `192.168.255.0/24`. \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/client-ip/index.md b/docs/products/networking/nodebalancers/guides/client-ip/index.md deleted file mode 100644 index f9b2a85a4d4..00000000000 --- a/docs/products/networking/nodebalancers/guides/client-ip/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Client's IP Address Pass-through" -description: "Learn the methods of retaining client connection details and passing them to back-end nodes on a NodeBalancer" -published: 2022-10-07 ---- - -In some applications, it's helpful (or required) to know the IP address where the request originally came from, referred to as the client IP. When a NodeBalancer routes traffic to a back-end node, the originating IP address becomes the NodeBalancer's private IP address. This means that the client IP's address is not visible in the location that the application might typically check. To overcome this, there are a few ways to pass the client's IP address to the back-end nodes. The method you select depends on the protocol the NodeBalancer's port is using. - -- **Proxy Protocol**: This method works for the TCP protocol, provided the back-end application also supports it. See [Proxy Protocol](/docs/products/networking/nodebalancers/guides/proxy-protocol/). -- **HTTP Headers:** This method works for the HTTP and HTTPS protocols and is discussed below. - -## HTTP Headers (Using HTTP or HTTPS Protocols) - -NodeBalancers add an X-Forwarded-For (XFF) HTTP header field, which allows your nodes to identify a client's originating IP address. This is useful for logging purposes. Here's an example XFF HTTP header: - - X-Forwarded-For: 196.180.44.172 - -You'll need to configure your web server software to use the XFF header. - -### Apache - -If you're using the Apache web server, you can use the `mod_rpaf` to replace `REMOTE_ADDR` with the client's IP address in the XFF header. After you install the module, you'll need to specify 192.168.255.0/24 as a proxy in `httpd.conf`. - -### Nginx - -If you're using the Nginx web server, you can add the following lines to your Nginx configuration file: - - real_ip_header X-Forwarded-For; - set_real_ip_from 192.168.255.0/24; - -This will allow Nginx to capture the client's IP address in the logs. \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/configure/index.md b/docs/products/networking/nodebalancers/guides/configure/index.md deleted file mode 100644 index eaf505c9aee..00000000000 --- a/docs/products/networking/nodebalancers/guides/configure/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: "Configuration Options for NodeBalancers" -description: "Learn how to create a NodeBalancer, Linode's custom load balancing solution." -published: 2022-10-07 -keywords: ["load balancing", "nodebalancer"] -tags: ["linode platform","networking"] -aliases: ['/nodebalancers/reference/','/platform/nodebalancer/nodebalancer-reference-guide-new-manager/','/platform/nodebalancer/nodebalancer-reference-guide/','/linode-platform/nodebalancer-reference/','/platform/nodebalancer/nodebalancer-reference-guide-classic-manager/','/guides/nodebalancer-reference-guide/'] ---- - -NodeBalancers, and load balancers in general, operate by taking inbound traffic over certain ports and distributing that traffic to pre-defined back-end instances. For NodeBalancers, the settings that accommodate this behavior are all stored within *Configurations*. Each configuration specifies the inbound port, the protocol, the load balancing algorithm, health checks, and the back-end nodes. This guide covers how to add or edit these configurations as well as the options that are available. - -## Add or Edit Configurations - -Each configuration is assigned a single inbound port. Follow the instructions below to add or edit a configuration. If your application requires multiple inbound ports, create one configuration for *each* port you wish to use. This provides a great amount of flexibility, allowing each port to have its own distinct configuration settings and back-end nodes. - -1. Log in to [Cloud Manager](http://cloud.linode.com), click **NodeBalancers** in the left menu, and select the NodeBalancer you wish to edit. See [Manage NodeBalancers](/docs/products/networking/nodebalancers/guides/manage/). - -1. Navigate to the **Configurations** tab. This displays a list of all ports that have been configured. - - ![Screenshot of a NodeBalancer's Configuration in Cloud Manager](nodebalancer-configurations.png) - -1. Open the port configuration you wish to edit or create a new one by clicking the **Add Another Configuration** button. - -## Configuration Options - -### Port - -This is the *inbound* port that the NodeBalancer is listening on. This can be any port from 1 through 65534, though it should be set to whichever port the client software will connect to. For instance, web browsers use port 80 for HTTP traffic and port 443 for HTTPS traffic, though a client can change the port by specifying it as part of the URL. - -### Protocol - -The protocol can be set to either TCP, HTTP, or HTTPS. While a brief description of each is provided below, review [Available Protocols](/docs/products/networking/nodebalancers/guides/protocols/) for more complete information. - -- **TCP**: Supports most application-layer protocols, including HTTP and HTTPS. This should be selected when you want to enable layer 4 load balancing, use TLS/SSL pass-through, use HTTP/2.0 or higher, balance non-HTTP services, or make use of [Proxy Protocol](#proxy-protocol). Since the NodeBalancer serves as a pass-through for these TCP packets, any encrypted traffic is preserved and must be decrypted on the back-end nodes. - -- **HTTP:** Unencrypted web traffic using HTTP/1.1. This terminates the HTTP request on the NodeBalancer, allowing the NodeBalancer to create a new HTTP request to the back-end machines. This can be used when serving most standard web applications, especially if you intend on configuring the NodeBalancer to use HTTPS mode with TLS/SSL termination. - -- **HTTPS:** Encrypted web traffic using HTTP/1.1. Since this terminates the request on the NodeBalancer, it also terminates the TLS/SSL connection to decrypt the traffic. Use this if you wish to configure TLS/SSL certificates on the NodeBalancer and not on individual back-end nodes. - - {{< note type="warning" noTitle=true >}} - When using the **HTTPS** protocol setting, all traffic is decrypted on the NodeBalancer. Traffic between the NodeBalancer and the back-end nodes is sent over the private data center network, is not encrypted, and uses the HTTP protocol. - {{< /note >}} - -### Proxy Protocol - -When selecting *TCP* as the protocol, **Proxy Protocol** can be enabled to send client information to back-end nodes. Back-end nodes must also have Proxy Protocol enabled on supported applications to receive this information. There are two available versions of Proxy Protocol, **v1** and **v2**: - -- **v1**: Proxy Protocol v1 adds a human readable string to all requests. -- **v2**: Proxy Protocol v2 adds a more efficient binary data header to all requests. - -For more information, see the [Using Proxy Protocol with NodeBalancers](/docs/products/networking/nodebalancers/guides/proxy-protocol/) guide. - -### Algorithm - -The *algorithm* controls how *new connections* are allocated across the back-end nodes. - -- **Round Robin**: Allocates connections in a weighted circular order across the back ends. - -- **Least Connections**: Tracks each back end's connection count and allocates new connections to the one with the least connections. - -- **Source IP**: Modulates the client's IP to allocate them to the same back end on subsequent requests. This works so long as the set of back-end nodes doesn't change, however the **Session Stickiness** setting (below) does affect this behavior. - -### Session Stickiness - -This controls how subsequent requests from the same client are routed when selecting a back-end node. It allows a NodeBalancer to maintain a client session to the same back end. - -- **None**: No session information is saved and requests are routed in only accordance with the *algorithm* (see [Algorithm](#algorithm) above). - -- **Table**: This preserves the initial back end selected for an IP address by the chosen algorithm. Subsequent requests by the same client are routed to that back end, when possible. This map is stored within the NodeBalancer and expires after 30 minutes from when it was added. If a back-end node goes offline, entries in the table for that back end are removed. When a client sends a new request, it is then rerouted to another back-end node (in accordance with the chosen algorithm) and a new entry is created in the table. - -- **HTTP Cookie**: *Requires the configuration protocol be set to HTTP or HTTPS.* The NodeBalancer stores a cookie (named `NB_SRVID`) on the client that identifies the back end where the client is initially routed to. Subsequent requests by the same client are routed to that back end, when possible. If a back-end node goes offline, the request is rerouted to another back-end node (in accordance with the chosen algorithm) and the cookie is rewritten with the new back-end identifier. - - {{< note >}} - The client must have cookies enabled. If the client has disabled cookies or deletes cookies, session persistence is not preserved and each new request is routed in accordance with the chosen algorithm. - {{< /note >}} - -If session persistence is required or desired for the application, it is recommended to use both the *Source IP* algorithm in combination with either *Table* or *HTTP Cookie* session stickiness. - -### TLS/SSL Certificate and Private Key - -When the *HTTPS* protocol is selected, the **Certificate** and **Private Key** fields appear and must be properly configured. - -- **Certificate**: The TLS/SSL certificate (and certificate chain) that has been obtained for the application. - -- **Private Key**: The passphraseless private key that is associated with the certificate file. - -A certificate can be obtained for your domain by using [certbot](https://certbot.eff.org/) or by purchasing one through a trusted certificate authority. See [TLS/SSL Termination](/docs/products/networking/nodebalancers/guides/ssl-termination/) for more details on obtaining a certificate and configuring both the NodeBalancer and back-end nodes. - -{{< note >}} -If you wish to use TLS/SSL pass-through and terminate the HTTPS connection on the back-end nodes, select the **TCP** protocol instead of **HTTPS**. -{{< /note >}} - -## Health Checks - -NodeBalancers perform both passive and active health checks against the back-end nodes. Back ends that are not responsive are marked as *down* and taken out of rotation. - -### Active Health Checks - -*Active* health checks proactively query the back-end nodes by performing TCP connections or making HTTP requests. To enable an active health check, choose from one of the following types: - -- **TCP Connection**: Requires a successful TCP handshake with a back-end node. -- **HTTP Valid Status**: Performs an HTTP request on the provided path and requires a 2xx or 3xx response from the back-end node. -- **HTTP Body Regex**: Performs an HTTP request on the provided path and requires the provided PCRE regular expression matches against the request's result body. - -Additionally, configure the following settings to adjust the frequency and number of attempts: - -- **Check Interval**: Seconds between active health check probes. -- **Check Timeout**: Seconds to wait before considering the probe a failure. 1-30. -- **Check Attempts**: Number of failed probes before taking a node out of rotation. 1-30. - -### Passive Health Checks - -The **passive checks** setting controls if passive health checks are enabled. When enabled, the NodeBalancer monitors all requests sent to back-end nodes. If the request times out, returns a 5xx response code (excluding 501 and 505), or otherwise fails to connect, the back end is marked as *down* and taken out of rotation. - -## Back-end Nodes (Compute Instances) - -Load balancers work by distributing traffic to a pool of servers. For NodeBalancers, these servers are Linode Compute Instances and they are configured as *back-end nodes*. For information on configuring back-end nodes, see the [Configure Back-end Nodes (Compute Instances)](/docs/products/networking/nodebalancers/guides/backends/) guide. \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-configurations.png b/docs/products/networking/nodebalancers/guides/configure/nodebalancer-configurations.png deleted file mode 100644 index a96556fa245..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-configurations.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-config2-small.png b/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-config2-small.png deleted file mode 100644 index a7cf0a4e2a5..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-config2-small.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-config2.png b/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-config2.png deleted file mode 100644 index 5af2824d5e6..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-config2.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-settings.png b/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-settings.png deleted file mode 100644 index 0ac0cae928a..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/configure/nodebalancer-rg-nodebalancer-settings.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/create/index.md b/docs/products/networking/nodebalancers/guides/create/index.md deleted file mode 100644 index 413e451a678..00000000000 --- a/docs/products/networking/nodebalancers/guides/create/index.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: "Create a NodeBalancer" -description: "Instructions on creating a NodeBalancer, Linode's load balancing solution." -published: 2022-10-07 -modified: 2023-02-06 ---- - -This guide walks you through creating a NodeBalancer through Cloud Manager. - -1. [Open the Create NodeBalancer Form in Cloud Manager](#open-the-create-nodebalancer-form-in-cloud-manager) -1. [Set the Label](#set-the-label) -1. [Select a Region](#select-a-region) -1. [Assign a Cloud Firewall](#assign-a-cloud-firewall-optional) -1. [Add and Configure Ports](#add-and-configure-ports) -1. [Set Up Health Checks for Each Port](#set-up-health-checks-for-each-port) -1. [Add Back-end Nodes to Each Port](#add-backend-nodes-to-each-port) -1. [Deploy the NodeBalancer](#deploy-the-nodebalancer) - -## Open the Create NodeBalancer Form in Cloud Manager - -Log in to [Cloud Manager](https://cloud.linode.com/) and select **NodeBalancers** from the left navigation menu. Click the **Create NodeBalancer** button. This opens the *[NodeBalancer Create](https://cloud.linode.com/nodebalancers/create)* form. - -## Set the Label - -Within the **Label** field, enter the label you wish to use to identify it from other NodeBalancers on your account. A good label should provide some indication as to what the NodeBalancer will be used for. The label must be alphanumeric, between 3 and 32 characters, and unique from other NodeBalancer labels on your account. - -## Select a Region - -Select the **region** where the NodeBalancer will reside. Regions correspond with individual data centers, each located in a different geographical area. Select the region where you've deployed the Compute Instances you intend on using with this NodeBalancer. If you haven't yet deployed Compute Instances or chosen a region, select the region closest to you and/or your customers. This helps reduce latency and can make a significant impact in connection speeds and quality. - -- [Global Infrastructure](https://www.linode.com/global-infrastructure/) -- [Speed Tests for Data Centers](https://www.linode.com/speed-test/) -- [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) - -## Assign a Cloud Firewall (Optional) - -A NodeBalancer can only be attached to one active (enabled) Cloud Firewall at a time. You can attach the same Cloud Firewall to multiple NodeBalancers or other devices. - -Select the Cloud Firewall from the **Assign Firewall** pull down to use with the NodeBalancer. - -If the firewall doesn't exist yet, you can create the firewall using either the Firewall application, or the NodeBalancer application. Rules for the firewall, can only be added in the Firewall application. - -To create a firewall and add rules using the Firewall application, see [Create a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/) and [Add Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/). - -To create a firewall using the NodeBalancer application, in the *NodeBalancer Create* form click the **Create Firewall**. This displays the *Create Firewall* drawer. Configure the required field. - -| **Configuration** | **Description** | -| --------------- | --------------- | -| **Label** (Required)| The label is used as an identifier for this Cloud Firewall. | -| **Additional Linodes** (Optional)| The Linode(s) on which to apply this Firewall. A list of all Linodes on your account are visible. You can leave this blank if you do not yet wish to apply the Firewall to a Linode. | -| **Additional NodeBalancers** (Optional) | The NodeBalancers on which to apply this Firewall. A list of all created NodeBalancers on your account are visible. You can leave this blank if you do not want to apply this Cloud Firewall to other NodeBalancers.| - -Click on the **Create Firewall** button to finish creating the Cloud Firewall and to returned to the *NodeBalancers Create* form. - -{{< note >}} -By default, a new Cloud Firewall accepts all inbound and outbound connections. Only inbound firewall rules apply to NodeBalancers. Custom rules can be added in the Firewall application as needed. See [Add New Cloud Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/). -{{< /note >}} - -### Cloud Firewall Inbound Rules for NodeBalancer -- Inbound rules limit incoming network connections to the NodeBalancer based on the port(s) and sources you configure. -- The NodeBalancer accepts traffic and routes traffic on an internal network to back end targets. For this reason, only inbound firewall rules apply to NodeBalancer. -- Inbound firewall rules such as IPv4 and IPv6 access control lists (ACLs) can be configured to *Accept* or *Drop* ingress traffic to the NodeBalancer. -- NodeBalancers can accept TCP connections on all ports. When you add an inbound rule for a NodeBalancer in Cloud Firewall, select TCP as the transport layer protocol. UDP, ICMP, and IPENCAP are not currently supported on NodeBalancers. -- The firewall is in front of the NodeBalancer and the assigned back-end nodes. When both the NodeBalancer and its back-end nodes have firewalls, the NodeBalancers inbound firewall rules are applied to incoming requests first, before the requests reach the back-end nodes. -- A back-end node server (Linode) can have multiple IP addresses. The NodeBalancer firewall only controls inbound traffic to the back-end nodes IPs that are assigned to the NodeBalancer. A service (Linode) can be accessed from any interface (not just the NodeBalancer). To filter traffic from other interfaces, back-end Linodes require their own firewalls. - -![Figure of traffic going through firewall and NodeBalancer and traffic bypassing firewall and NodeBalancer](nb-firewall.jpg) - -## Add and Configure Ports - -To start load balancing traffic, you need to define which ports the NodeBalancer should listen to and how the incoming traffic should be routed to the back-end nodes. These ports can be configured within the **NodeBalancer Settings** area. By default, a single port configuration is visible in this area. Additional ports can be added by clicking the **Add Another Configuration** button. See [Configuration Options](/docs/products/networking/nodebalancers/guides/configure/) for more details regarding each of these settings. - -- **Port:** Enter the *inbound* port the NodeBalancer should listen to. This can be any port from 1 through 65534 and should align with the port the client connects to. See [Configuration Options > Port](/docs/products/networking/nodebalancers/guides/configure/#port). -- **Protocol:** Select *TCP*, *HTTP*, or *HTTPS*. For many applications, using *TCP* offers the most flexibility and allows for TLS pass through. Using *HTTP* and *HTTPS* offers some additional NodeBalancer options and allows for TLS termination. See [Configuration Options > Protocol](/docs/products/networking/nodebalancers/guides/configure/#protocol). -- **Proxy Protocol:** *Only visible when the *TCP* protocol is selected.* Used for sending the client IP address to the back-end nodes. See [Configuration Options > Proxy Protocol](/docs/products/networking/nodebalancers/guides/configure/#proxy-protocol). -- **Algorithm:** Controls how new connections are allocated across back-end nodes. See [Configuration Options > Algorithm](/docs/products/networking/nodebalancers/guides/configure/#algorithm). -- **Session Stickiness:** Controls how subsequent requests from the same client are routed when selecting a back-end node. See [Configuration Options > Session Stickiness](/docs/products/networking/nodebalancers/guides/configure/#session-stickiness). - -{{< note >}} -For most web applications, it's common to configure two ports: port *80* and port *443*. -{{< /note >}} - -## Set Up Health Checks for Each Port - -Each port can optionally be configured with health checks. These health checks either proactively query the back-end nodes (*active*) or monitor the existing traffic to back-end nodes (*passive*). If a health check determines that the back ends aren't responsive or are encountering another issue, they can be marked as *down* and taken out of rotation. - -- **Active Health Checks:** Active health checks proactively query the back-end nodes by performing TCP connections or making HTTP requests. See [Configuration Options > Active Health Checks](/docs/products/networking/nodebalancers/guides/configure/#active-health-checks). - -- **Passive Checks:** Passive health checks monitor requests sent to the back-end nodes and look for any issues. See [Configuration Options > Passive Health Checks](/docs/products/networking/nodebalancers/guides/configure/#passive-health-checks). - -## Add Back-end Nodes to Each Port - -Load balancers work by distributing traffic to a pool of servers. For NodeBalancers, these servers are Linode Compute Instances and they are configured as *back-end nodes*. Within the **Back-end Nodes** area of the creation form, add each Compute Instance you intend on using with this NodeBalancer, making sure to select the correct private IP address for the NodeBalancer and the port that the application is using. For information on configuring back-end nodes, see the [Configure Back-end Nodes (Compute Instances)](/docs/products/networking/nodebalancers/guides/backends/) guide. - -## Deploy the NodeBalancer - -Once you've adjusted the settings to fit your needs, review the *NodeBalancer Summary* section and click the **Create NodeBalancer** button. The NodeBalancer should be provisioned within a few minutes. \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/create/nb-firewall.jpg b/docs/products/networking/nodebalancers/guides/create/nb-firewall.jpg deleted file mode 100644 index 9e71a7213e1..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/create/nb-firewall.jpg and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/load-balancing/Getting-Started-with-NodeBalancers-smg.jpg b/docs/products/networking/nodebalancers/guides/load-balancing/Getting-Started-with-NodeBalancers-smg.jpg deleted file mode 100644 index 1ae39e1a790..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/load-balancing/Getting-Started-with-NodeBalancers-smg.jpg and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/load-balancing/basicWebServerFlow.png b/docs/products/networking/nodebalancers/guides/load-balancing/basicWebServerFlow.png deleted file mode 100644 index 74d42448798..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/load-balancing/basicWebServerFlow.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/load-balancing/getting-started-with-nodebalancers.png b/docs/products/networking/nodebalancers/guides/load-balancing/getting-started-with-nodebalancers.png deleted file mode 100644 index 717a4954292..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/load-balancing/getting-started-with-nodebalancers.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/load-balancing/index.md b/docs/products/networking/nodebalancers/guides/load-balancing/index.md deleted file mode 100644 index 656461678d3..00000000000 --- a/docs/products/networking/nodebalancers/guides/load-balancing/index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Introduction to Load Balancing" -description: "This guide shows you how to use Linode NodeBalancers, which are services built for high availability and designed to be maintenance free once deployed." -published: 2022-10-07 -keywords: ["nodebalancers", "nodebalancer", "load balancers", "load balancer", "load balancing", "high availability", "ha"] -tags: ["linode platform","networking"] -aliases: ['/platform/nodebalancer/what-are-nodebalancers/','/guides/what-are-nodebalancers/'] ---- - -Load balancing lets you distribute incoming network traffic across multiple servers so that no one server takes on all the demand. This allows high traffic sites and applications to field a large number of users without performance degradation. It also lets you scale a site or application by adding more servers as your need grows, or remove them if your need diminishes. - -Linode offers load balancers as a service (LBaaS) called NodeBalancers. NodeBalancers are built for high availability and designed to be maintenance free after initial configuration. - -This guide provides a high-level overview of NodeBalancers. To set-up a NodeBalancer, see the [Getting Started with NodeBalancers](/docs/products/networking/nodebalancers/get-started/) guide. - -## Overview - -A NodeBalancer is assigned its own public IP address where it will listen for incoming connections. Then, using configurable rules, it routes the connection to one back-end node (out of one or more). A NodeBalancer allows the incoming traffic load to your application to be spread over any number of Linodes. - -### A Non-Load Balanced Configuration - -![Basic Web Server Flow Without Load Balancing](basicWebServerFlow.png) - -In a standard non-load balanced configuration, traffic comes into a server directly. The application or site might be connected to a database or other services, but the server takes care of all traffic. If the traffic becomes unmanageable, load times may become long and the site may even go down. Additionally, any modifications that require updating DNS will inflict downtime for the user. - -### A Simple Load Balanced Configuration - -![Single Web Server Flow With NodeBalancer](singleWebServerNodeBalancer.png) - -When using a load balancer, like a NodeBalancer, traffic comes to the site through the load balancer first. It's then managed before reaching the Linode. In addition to balancing traffic load, NodeBalancers also offer features like [SSL termination](https://en.wikipedia.org/wiki/TLS_termination_proxy). NodeBalancers alleviate this burden from the server allowing them to be faster at other tasks, like serving pages. Therefore, even with only one server on the back end, having a NodeBalancer in front of your server can be an advantage. - -### A Highly Available Load Balanced Configuration - -![Highly Available Sever Flow with NodeBalancer](scaledWebServersNodeBalancer.png) - -The optimal solution for a highly available site or application is to have multiple Linodes behind a NodeBalancer. Now when traffic comes into the NodeBalancer it can be routed to any one of the Linodes available. - -- [Health checks](/docs/products/networking/nodebalancers/guides/configure/#health-checks) are performed to make sure that requests are only routed to healthy Linodes. -- Back-end Linodes can be added or removed seamlessly without end users noticing any downtime. -- Client requests can be routed to the same back-end Linode through [sticky sessions](/docs/products/networking/nodebalancers/guides/configure/#session-stickiness). -- [Cloud Firewall](/docs/products/networking/cloud-firewall/) provides enhanced security by allowing you to control who can access your NodeBalancer. The optional Cloud Firewall sits between your NodeBalancer and the internet to filter out unwanted network traffic before it reaches your NodeBalancer. When used in conjunction with NodeBalancers, a Cloud Firewall’s inbound rules only apply to the NodeBalancer’s public IP, not the IPs of the back-end nodes. This means you may also want to add individual back-end nodes to a Cloud Firewall to protect any additional exposed IP addresses. \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/load-balancing/scaledWebServersNodeBalancer.png b/docs/products/networking/nodebalancers/guides/load-balancing/scaledWebServersNodeBalancer.png deleted file mode 100644 index 098ad229874..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/load-balancing/scaledWebServersNodeBalancer.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/load-balancing/singleWebServerNodeBalancer.png b/docs/products/networking/nodebalancers/guides/load-balancing/singleWebServerNodeBalancer.png deleted file mode 100644 index 7d993699278..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/load-balancing/singleWebServerNodeBalancer.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/configure-nodebalancers-with-the-linode-api.png b/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/configure-nodebalancers-with-the-linode-api.png deleted file mode 100644 index 55eb7be7bb5..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/configure-nodebalancers-with-the-linode-api.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/index.md b/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/index.md deleted file mode 100644 index ba8c9359084..00000000000 --- a/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/index.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: "Configure NodeBalancers with the Linode API" -description: "This guide demonstrates the API calls needed to add and configure a NodeBalancer through the Linode API" -published: 2018-04-05 -modified: 2022-11-30 -image: configure-nodebalancers-with-the-linode-api.png -external_resources: - - '[Getting Started with NodeBalancers](/docs/products/networking/nodebalancers/get-started/)' -keywords: ["nodebalancer", "load balancing", "high availability", "linode api"] -tags: ["linode platform"] -aliases: ['/platform/api/nodebalancers/','/guides/nodebalancers/','/products/tools/api/guides/nodebalancers/'] ---- - -[NodeBalancers](https://www.linode.com/nodebalancers) can be used to provide high availability load balancing for almost any type of website or service hosted on a Compute Instance. This guide will demonstrate how to use the Linode API to create a NodeBalancer with two back end nodes. - -{{< note >}} -You need a Personal Access Token for the Linode API to complete the steps in this guide. See [Manage Personal Access Tokens](/docs/products/platform/accounts/guides/manage-api-tokens/#create-an-api-token) for more information. -{{< /note >}} - -## Create a NodeBalancer - -1. Store your Personal Access Token as a shell variable: - - ```command - export TOKEN= - ``` - -1. Using a text editor, create a file to store configuration options: - - ```file {title="nodebalancer.json" lang="json"} - { - "region": "us-central", - "label": "nodebalancer-1", - "client_conn_throttle": 10 - } - ``` - -1. Create a NodeBalancer by making a POST request to the `/nodebalancers` endpoint: - - ```command - curl https://api.linode.com/v4/nodebalancers \ - -H "Authorization: Bearer $TOKEN" \ - -H "Content-Type: application/json" \ - -X POST -d @nodebalancer.json - ``` - -1. If the NodeBalancer is successfully created, the response will include its ID. Copy the ID to use in subsequent requests. - -## Add Configuration - -NodeBalancers are created without any configuration profiles attached. Each profile configures a single port on the NodeBalancer. Once the port is configured, the NodeBalancer will begin listening for traffic on that port. - -1. Create a new configuration file: - - ```file {title="nodebalancer-config.json" lang="json"} - { - "label": "nodebalancer-1", - "port": 80, - "check": "connection" - } - ``` - -1. Substitute the NodeBalancer's ID into the URL below: - - ```command - curl https://api.linode.com/v4/nodebalancers/$NODEBALANCER_ID/configs \ - -H "Authorization: Bearer $TOKEN" \ - -H "Content-Type: application/json" \ - -X POST -d @nodebalancer-config.json - ``` - -{{< note >}} -For more information about configuration options, see our [NodeBalancer Reference Guide](/docs/products/networking/nodebalancers/guides/configure/). -{{< /note >}} - -## Add Back-end Compute Instances - -Even with a working configuration profile, the NodeBalancer isn't doing anything yet, since it has no back ends connected to it. Repeat the steps in this section for each back end you would like to add; usually you will want at least two. - -### Create Compute Instances - -1. Add the following options to a new config file. Adjust the type, image, and region to suit your needs; make sure the new Compute Instance is in the same region as your NodeBalancer and choose a secure root password. - - ```file {title="create-instance.json" lang="json"} - { - "region": "us-central", - "type": "g5-standard-2", - "image": "linode/debian9", - "root_pass": "password", - "booted": false - } - ``` - -1. Use the API to create the instance: - - ```command - curl https://api.linode.com/v4/linode/instances/ \ - -H "Authorization: Bearer $TOKEN" \ - -H "Content-Type: application/json" \ - -X POST -d @create-instance.json - ``` - - Make a note of the new Linode's ID. - -1. Add configuration options for adding a private IPv4 address: - - ```file {title="ip-address.json" lang="json"} - { - "type": "ipv4", - "public": false, - "linode_id": 7449584 - } - ``` - -1. Add a private IP address to the new instance: - - ```command - curl https://api.linode.com/v4/networking/ips \ - -H "Authorization: Bearer $TOKEN" \ - -H "Content-Type: application/json" \ - -X POST -d @ip-address.json - ``` - -1. Boot the Compute Instance: - - ```command - curl -X POST https://api.linode.com/v4/linode/instances/$LINODE_ID/boot \ - -H "Authorization: Bearer $TOKEN" - ``` - -### Add Back ends to the NodeBalancer - -Add the new Compute Instances as back ends to the NodeBalancer. - -1. Add configuration options for each back end. Substitute the private IP address of the Compute Instance into the `address` field and give each back end a unique label. - - ```file {title="add-node.json" lang="json"} - { - "label": "node-1", - "address": "$node-private-ip:80" - } - ``` - -1. Use the `/nodes` endpoint to add these back ends: - - ```command - curl https://api.linode.com/v4/nodebalancers/$NODEBALANCER_ID/configs/$CONFIG_ID \ - -H "Authorization: Bearer $TOKEN" \ - -H "Content-Type: application/json" \ - -X POST -d @add-node.json - ``` - -1. Repeat this process for each additional back end. - -## Check Back-end Status - -Check the status of the two back-end nodes: - -```command -curl https://api.linode.com/v4/nodebalancers/$NODEBALANCER_ID/configs/$CONFIG_ID \ --H "Authorization: Bearer $TOKEN" -``` - -```output -. . . - "nodes_status": { - "up": 0, - "down": 2 - }, -. . . -``` - -Both back ends are down because there is no process for the NodeBalancer to connect to on the designated port. As a demonstration, a basic install of NGINX will listen on port 80 automatically. SSH into each Compute Instance and install NGINX: - -```command -apt update && apt upgrade && apt install nginx -``` - -If you check the NodeBalancer config again, it should report that both back ends are now up. You can also navigate to the NodeBalancer's public IP address in a browser; the default NGINX landing page should be displayed. - -## Configure HTTPS - -NodeBalancers can also be configured to use HTTPS. You will need to have a TLS certificate before enabling this option. - -1. If you do not have an existing TLS certificate, generate a self-signed certificate using OpenSSL: - - ```command - openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key - ``` - - {{< note >}} - Provide values for country name, common name, etc. when prompted. The Linode API will reject the certificate if these are left blank. - {{< /note >}} - -1. Edit your `nodebalancer-config.json` configuration file: - - ```file {title="nodebalancer-config.json" lang="json"} - { - "protocol":"https", - "port": 443, - "ssl_cert": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_INFORMATION\n-----END CERTIFICATE-----", - "ssl_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY_INFORMATION\n-----END PRIVATE KEY-----" - } - ``` - - {{< note >}} - Line breaks in SSL certificate and private key strings must be represented by `\n`. - {{< /note >}} - -1. Use a PUT request to update your NodeBalancer's configuration: - - ```command - curl -X PUT https://api.linode.com/v4/nodebalancers/$NODEBALANCER_ID/configs/$CONFIG_ID \ - -H "Authorization: Bearer $TOKEN" \ - -H "Content-Type: application/json" \ - -d @nodebalancer-config.json - ``` \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/manage/index.md b/docs/products/networking/nodebalancers/guides/manage/index.md deleted file mode 100644 index 6dfe1a6eb15..00000000000 --- a/docs/products/networking/nodebalancers/guides/manage/index.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Manage NodeBalancers" -description: "Learn how to view, edit, and delete NodeBalancers on the Linode platform." -published: 2022-10-07 ---- - -## View NodeBalancers - -Log in to [Cloud Manager](https://cloud.linode.com) and select NodeBalancers from the left menu. If any NodeBalancers exist on your account, they are listed on this page. - -![Screenshot of the NodeBalancer listing page in Cloud Manager](nodebalancer-view-list.png) - -Each NodeBalancer in the matrix is displayed alongside the following details: - -- **Back-end Status:** The number of back-end machines that are available and accepting connections (*up*) or have been removed from the rotation and are not accepting connections (*down*). -- **Transferred:** The amount of network transfer consumed by the inbound traffic to the NodeBalancer. -- **Ports:** A list of the ports that have been configured on the NodeBalancer. -- **IP Address:** The NodeBalancer's IPv4 address. -- **Region:** The data center where the NodeBalancer is located. - -## Create a NodeBalancer - -To create a NodeBalancer, follow the instructions within the [Create a NodeBalancer](/docs/products/networking/nodebalancers/guides/create/) guide. - -## Review and Edit a NodeBalancer - -Navigate to the **NodeBalancer** page in Cloud Manager and select the NodeBalancer you wish to edit. See [View NodeBalancers](#view-nodebalancers). - -![Screenshot of a NodeBalancer entry in Cloud Manager](nodebalancer-edit.png) - -This displays the details and settings for the selected NodeBalancer. - -![Screenshot of a NodeBalancer entry in Cloud Manager](nodebalancer-summary.png) - -From here, the following pages are available: - -- **Summary:** View important details and graphs. This includes viewing the IP addresses, the Cloud Firewall if a firewall is assigned, the ports, the status of the back ends, and graphs for both the number of connections and network traffic. -- **Configurations:** This lists each port configured for the NodeBalancer, with the ability to edit the settings for the existing port or add a new port. See [Configuration Options](/docs/products/networking/nodebalancers/guides/configure/) for more information on each of these settings. -- **Settings:** Displays additional settings for the NodeBalancer, including the label, firewall and connection throttle setting. - -## Delete a NodeBalancer - -1. Navigate to the **NodeBalancer** page in Cloud Manager and select the NodeBalancer you wish to edit. - -1. Navigate to the **Settings** tab, scroll to the *Delete NodeBalancer* section, and click **Delete**. - - ![Screenshot of the Delete form](nodebalancer-delete.png) - -1. A confirmation dialog appears. To confirm deletion, type the name of the NodeBalancer in the field and click **Delete** to proceed with removing the service from your account. - -{{}} -When you delete a NodeBalancer that has a firewall, the NodeBalancer is also deleted in Cloud Firewall. Firewalls are not deleted when you delete a NodeBalancer. -{{}} - -## Unassign, Change or Add Firewalls - -After the NodeBalancer is created, you can add a firewall, select a different firewall or unassign the current firewall using the following information; - -### Unassign the Firewall - -1. Navigate to the **NodeBalancer** page in Cloud Manager and select the NodeBalancer that has the firewall you wish to unassign. - -1. Navigate to the **Settings** tab. In the *Firewall* section, click **Unassign**. - - ![Screenshot of the firewalls form](nodebalancer-firewall-unassign.png) - -1. A confirmation dialog appears. Click **Unassign Firewall** to proceed with unassigning the firewall from the NodeBalancer. - -{{< note>}} -You can also remove/unassign firewalls from a NodeBalancer using Cloud Firewalls. -{{< /note>}} - -### Add a Firewall to an Existing NodeBalancer - -To add or create a Cloud firewall for an existing NodeBalancer, follow the instructions in [Create a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/) and [Add Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/). - -### Change the NodeBalancers Firewall - -1. Complete the steps in [Unassign the Firewall](#unassign-the-firewall). - -2. Follow the instructions in [Create a Cloud Firewall](/docs/products/networking/cloud-firewall/guides/create-a-cloud-firewall/) and [Add Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/). \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-delete.png b/docs/products/networking/nodebalancers/guides/manage/nodebalancer-delete.png deleted file mode 100644 index af6fb436b42..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-delete.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-edit.png b/docs/products/networking/nodebalancers/guides/manage/nodebalancer-edit.png deleted file mode 100644 index de8d0357076..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-edit.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-firewall-unassign.png b/docs/products/networking/nodebalancers/guides/manage/nodebalancer-firewall-unassign.png deleted file mode 100644 index aff90a47ad1..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-firewall-unassign.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-summary.png b/docs/products/networking/nodebalancers/guides/manage/nodebalancer-summary.png deleted file mode 100644 index b48e5aaf0df..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-summary.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-view-list.png b/docs/products/networking/nodebalancers/guides/manage/nodebalancer-view-list.png deleted file mode 100644 index 03f3e140dea..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/manage/nodebalancer-view-list.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/manage/nodebalancers-add-firewall.png b/docs/products/networking/nodebalancers/guides/manage/nodebalancers-add-firewall.png deleted file mode 100644 index 33285778e9d..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/manage/nodebalancers-add-firewall.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/protocols/index.md b/docs/products/networking/nodebalancers/guides/protocols/index.md deleted file mode 100644 index a8a970a9f20..00000000000 --- a/docs/products/networking/nodebalancers/guides/protocols/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Available Protocols" -description: "Learn about each of the protocols that are available on NodeBalancers as well as the features and performance they offer." -published: 2022-10-07 ---- - -Each port configured on a NodeBalancer must use one of the following available protocols. The protocol that's selected can determine the performance of your NodeBalancer, the settings available to you, and how to configure the back-end machines. - -- [TCP](#tcp) -- [HTTP](#http) -- [HTTPS](#https) - -## TCP - -This mode acts as a TCP pass-through by forwarding all TCP requests to the back-end machines. As such, it provides the most flexibility when compared to other protocol choices. Since it has the least amount of overhead, it is also more performant and -can service a high number of connections per second. The TCP protocol operates on the transport layer and supports any higher-layer protocol built on top of TCP/IP. - -- Supports HTTP, HTTPS, SSH, SMTP, FTP, DNS, and other application layer protocols -- Can preserve client IP address details by using [Proxy Protocol](/docs/products/networking/nodebalancers/guides/proxy-protocol/) -- Operates on the transport layer (layer 4 of the OSI model) - -## HTTP - -When the HTTP protocol is selected, the HTTP request is terminated on the NodeBalancer and a new request is sent to the back-end machines. While this does add some overhead, it enables features like HTTP cookie session stickiness. - -- Supports HTTP/1.1 (not HTTP/2 or higher) -- Supports the HTTP Cookie session stickiness method (in addition to other methods) -- Adds the [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) HTTP header to preserve the client IP address and the [X-Forwarded-Proto](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto) HTTP header to preserve the original protocol (`http` or `https`). -- [Keep-Alive](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Keep-Alive) HTTP Headers are disabled -- Operates on the application layer (layer 7 of the OSI model) - -## HTTPS - -HTTPS protocol contains the same functionality and support as the HTTP protocol, but requests between the client's machine and the NodeBalancer are encrypted using the TLS (or SSL) protocol. Since encrypted HTTPS requests are terminated on the NodeBalancer, you must add your TLS/SSL certificate to the NodeBalancer itself (instead of your back-end machines). Once the HTTPS request is decrypted, the NodeBalancer sends unencrypted HTTP requests to the back-end machines. - -- Same core functionality as [HTTP](#http) -- Supports TLS v1.2 and v1.3 -- Requires a compatible TLS/SSL certificate and the associated private key -- HTTPS requests are terminated and decrypted on the NodeBalancer and traffic to the back-end machines is *not* encrypted. -- Has the most overhead of all the protocol options, which means that it is less performant and accommodates fewer connections per second. \ No newline at end of file diff --git a/docs/products/networking/nodebalancers/guides/proxy-protocol/ProxyProtocol_NodeBalancers.png b/docs/products/networking/nodebalancers/guides/proxy-protocol/ProxyProtocol_NodeBalancers.png deleted file mode 100644 index 04094f0e93a..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/proxy-protocol/ProxyProtocol_NodeBalancers.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/proxy-protocol/index.md b/docs/products/networking/nodebalancers/guides/proxy-protocol/index.md deleted file mode 100644 index 425340f1918..00000000000 --- a/docs/products/networking/nodebalancers/guides/proxy-protocol/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Using Proxy Protocol with NodeBalancers -description: "Learn how to enable and use Proxy Protocol on your NodeBalancer to send client connection details to the back-end nodes." -published: 2022-10-07 -keywords: ["nodebalancers", "nodebalancer", "load balancers", "load balancer", "load balancing", "high availability", "ha", "proxy protocol", "proxy"] -tags: ["cloud manager","linode platform","networking","web applications"] -image: ProxyProtocol_NodeBalancers.png -aliases: ['/platform/nodebalancer/nodebalancer-proxypass-configuration/','/guides/nodebalancer-proxypass-configuration/'] ---- - -When a Linode NodeBalancer passes a request from a client to a back-end node, information regarding the original client is not included by default. While this is fine for many environments, your applications may require original client information such as IP address or port. For these cases, Linode NodeBalancers support **Proxy Protocol** for TCP connections so that you can pass client information to back-end nodes. - -## What is Proxy Protocol - -Proxy Protocol is an internet protocol for various high availability and load balancing solutions to carry information about a client directly to back-end servers. - -When selecting **TCP** as your NodeBalancer protocol, you can enable **Proxy Protocol** to add a header containing client information to back-end nodes. - -{{< note >}} -[Back-end Nodes](#configure-backend-node-proxy-protocol) must also have Proxy Protocol enabled on supported applications to receive the client information header. - -Additional configuration options may need to be enabled on the application or service to accommodate traffic between the node and the NodeBalancer, including allowing IPv6 and/or IPv4 traffic, and enabling traffic on all necessary ports. -{{< /note >}} - -Currently, there are two available versions of Proxy Protocol, **v1** and **v2**: - -- **v1**: Proxy Protocol v1 adds a human readable string to all requests, similar to the following: - - ```output - PROXY TCP4 192.0.2.0 203.0.113.0 56147 80 - ``` - - The syntax for this output is as follows: - - PROXY, PROTOCOL, CLIENT_IP, NODEBALANCER_IP, CLIENT ORIGIN PORT, NODEBALANCER PORT - -- **v2**: Proxy Protocol v2 adds a more efficient binary data header to all requests, similar to the following: - - ```output - \r\n\r\n\x00\r\nQUIT\n!\x11\x00\x0c\xach\x11\x05\xcf\xc0D8\xfe\x1e\x04\xd2 - ``` - -More information on **v1** and **v2** is available in the [Proxy Protocol Specification](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt). - -## Configure Proxy Protocol - -In order to make use of Proxy Protocol, it needs to be configured on the NodeBalancer as well as each back-end node Compute Instance. - -### Configure the NodeBalancer - -To enable Proxy Protocol for your NodeBalancer, follow the instructions below. - -1. Log in to [Cloud Manager](http://cloud.linode.com), click **NodeBalancers** in the left menu, and select the NodeBalancer you wish to edit. See [Manage NodeBalancers](/docs/products/networking/nodebalancers/guides/manage/). - -1. Navigate to the **Configurations** tab and open the port configuration you wish to edit. - -1. Ensure that the **Protocol** option is set to *TCP*, which makes the **Proxy Protocol** dropdown menu appear. Select the desired Proxy Protocol version. - -1. Click the **Save** button on the bottom of the page to Save your changes. - -### Configure the Back-end Nodes - -Once Proxy Protocol is configured for your NodeBalancer, ensure that it is also enabled for the receiving software on your back-end Nodes. You can find a list of compatible software in the [Proxy Protocol documentation](https://www.haproxy.com/blog/haproxy/proxy-protocol/). Here are links to guidance for enabling Proxy Protocol for common software: - -- [NGINX](https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/) -- [Apache](https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html) -- [MySQL/MariaDB](https://mariadb.com/kb/en/proxy-protocol-support/) diff --git a/docs/products/networking/nodebalancers/guides/proxy-protocol/proxyconfig.png b/docs/products/networking/nodebalancers/guides/proxy-protocol/proxyconfig.png deleted file mode 100644 index 71beba0cf3f..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/proxy-protocol/proxyconfig.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/ssl-termination/NodeBalancer_SSL_Configuration_smg.png b/docs/products/networking/nodebalancers/guides/ssl-termination/NodeBalancer_SSL_Configuration_smg.png deleted file mode 100644 index b01065b25fc..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/ssl-termination/NodeBalancer_SSL_Configuration_smg.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/guides/ssl-termination/index.md b/docs/products/networking/nodebalancers/guides/ssl-termination/index.md deleted file mode 100644 index 8b7c2902a91..00000000000 --- a/docs/products/networking/nodebalancers/guides/ssl-termination/index.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -title: "TLS/SSL Termination on NodeBalancers" -description: 'This guide provides you with step-by step instructions on how to force all connections to your NodeBalancer to use the secure and encrypted SSL protocol.' -published: 2015-09-01 -modified: 2023-04-18 -keywords: ["Linode", "NodeBalancer", "SSL", "redirect", "load balancing", "install", "certificate", "configuration"] -tags: ["linode platform","security","networking","ssl"] -aliases: ['/platform/nodebalancer/nodebalancer-ssl-configuration/','/guides/nodebalancer-ssl-configuration/'] -image: nodebalancer-ssl-configuration.png ---- - -This guide will help you install an SSL certificate on your NodeBalancer. It includes step-by-step instructions for configuring a NodeBalancer to redirect all web connections over port 443/HTTPS using SSL. The provided directions are designed to work with Apache and Nginx web servers, running on Debian and Red Hat-based distributions. - -{{< note >}} -Throughout this guide we will offer several suggested values for specific configuration settings; some of these values will be set by default. These settings are shown in the guide as a reference and you may need to modify them to suit your application accordingly. -{{< /note >}} - -## Before you Begin - -- When first configuring back-end Linodes, you should set them up according to the instructions in our [Getting Started](/docs/products/platform/get-started/) guide. In addition, we recommend that you implement security precautions. For assistance with this, please see our guide on [Securing Your Server](/docs/products/compute/compute-instances/guides/set-up-and-secure/) - -- Generate an [SSL certificate](/docs/guides/security/ssl/) for your domain name that supports TLS version 1.2 or later. This can be done through any Certificate Authority, including Let's Encrypt using the [Certbot](https://certbot.eff.org/) tool. Since Certbot cannot run directly on the NodeBalancer, run the following command on any Linode to generate the certificate (after following [Certbot's installation instructions](https://certbot.eff.org/instructions)). This lets you manually verify ownership by updating a DNS record on your domain: - - ```command - sudo certbot certonly --key-type rsa --manual --preferred-challenges dns - ``` - - Most Certificate Authorities will generate an SSL certificate using the RSA digital signature algorithm, which is fully supported by NodeBalancers. Certificates using the ECDSA algorithm are not supported. - -- This guide assumes that you have already deployed two or more back-end Linodes and configured them with either a LAMP stack or a LEMP stack. If you have not, please review the following documentation for assistance with configuring your respective stack: - - - [LAMP Stack](/docs/guides/web-servers/lamp/) - - [LEMP Stack](/docs/guides/web-servers/lemp/) - -- In addition, this guide assumes that you have already deployed a NodeBalancer and have configured it with two or more back-end Linodes that make connections on port 80/HTTP. We recommend that you first verify that your NodeBalancer is configured correctly, before introducing the complexities of an encrypted connection over SSL. If you would like assistance with setting up a basic NodeBalancer configuration, please review the following documentation: - - - [Getting Started with NodeBalancers](/docs/products/networking/nodebalancers/get-started/) - - [NodeBalancer Reference Guide](/docs/products/networking/nodebalancers/guides/configure/) - -{{< note >}} -This guide has been written with the assumption that you are logged in as the root user. If you are using a limited user account, you will need to prefix some commands with `sudo`. -{{< /note >}} - -## Install the SSL Certificate and Private Key on your NodeBalancer - -1. On your NodeBalancer **Configurations** page, select **Add another Configuration**. - -1. Under **Port Configuration**, fill out the values in the fields as shown below: - - | Field | Value | - | -- | -- | - | **Port** | 443 | - | **Protocol** | HTTPS | - | **Session Stickiness** | None | - | **SSL Certificate** | Paste the PEM-formatted contents of your SSL certificate. If you have linked multiple segments of a chained certificate, be sure to copy all of its contents into the text field, appearing one after another. The certificate must be signed using the RSA algorithm, which is the default in most cases. ECDSA certificates are not supported.| - | **Private Key** | Paste the PEM-formatted contents of your private key. Your private key must not have a passphrase. | - | **Algorithm** | Round Robin | - | **Health Check Type** | HTTP Status | - | **Interval** | 5 | - | **Timeout** | 3 | - | **Attempts** | 2 | - | **Check HTTP Path** | / | - -1. Select **Save Changes** when you're finished. - -1. Add as many nodes as you require for the port configuration by selecting **Add a Node**. Once selected, fill out the values in the fields as shown below, replacing `xxx.xxx.xxx.xxx` with your Linode's private IP address: - - - **Label** Backend Linode 1 - - **IP Address** xxx.xxx.xxx.xxx - - **Port** 80 - - **Weight** 100 - - **Mode** Accept - - Select **Save Changes** when you're finished. - -### TLS Cipher Suites - -If your NodeBalancer must support users accessing your application with older browsers such as Internet Explorer 6-8, you should select the **Legacy** option, which sets the following cipher suite profile: - -```command -!RC4:HIGH:!aNULL:!MD5 -``` - -However, bear in mind that by gaining backward compatibility, your NodeBalancer will use weaker SSL/TLS cipher suites. For all other implementations, the default **Recommended** cipher suite option should be used, which includes: - -```command -ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA -``` - -### Diffie-Hellman Parameters - -[Diffie-Hellman key exchange](https://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange) is a method for enabling [forward secrecy](https://en.wikipedia.org/wiki/Forward_secrecy) for SSL/TLS connections. [Configuring Diffie-Hellman](https://weakdh.org/sysadmin.html) is normally achieved by generating a `dhparams.pem` file and then updating your web server's cipher suites list. - -A NodeBalancer's SSL/TLS settings can't be accessed in the same way you can view your web server configuration, but you can still use Diffie-Hellman with your SSL certificate. This is accomplished by concatenating your certificate file with the contents of your `dhparams.pem` file and then supplying that to the **Certificate** field of your NodeBalancer's HTTPS configuration. The result of this concatenation will look similar to the example: - -```output ------BEGIN CERTIFICATE----- -YOUR_CERTIFICATE_INFORMATION ------END CERTIFICATE----- ------BEGIN DH PARAMETERS----- -YOUR_DHPARAMS_INFORMATION ------END DH PARAMETERS----- -``` - -{{< note type="alert" >}} -To avoid [security vulnerabilities](https://weakdh.org), it is recommended that you use at least 2048 bits when generating your Diffie-Hellman parameters: - -```command -openssl dhparam -out dhparams.pem 2048 -``` -{{< /note >}} - -## Configure the Apache Web Server - -1. Enable `mod_rewrite` so that you can redirect all traffic back to the NodeBalancer over port 443/HTTPS: - - ```command - a2enmod rewrite - ``` - - Or, you can load the module manually by appending the following to your Apache configuration file: - - ```command - LoadModule rewrite_module modules/mod_rewrite.so - ``` - - {{< note >}} - Depending on your distribution, this file's location may vary. For example, it can be found at the following paths on Debian and Red Hat based distributions, respectively: - - - `/etc/apache2/apache2.conf` - - `/etc/httpd/httpd.conf` - {{< /note >}} - -1. Edit the Apache virtual host configuration file to establish the rewrite rules necessary to redirect all incoming traffic from port 80/HTTP back to the NodeBalancer on port 443/HTTPS: - - ```file {title="/etc/apache2/sites-available/example.com.conf" lang="apache"} - - RewriteEngine On - RewriteCond %{HTTP:X-Forwarded-Proto} !https - RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301,NE] - LogLevel alert rewrite:trace4 # Adjust log verbosity as required. ex. 1-8 - - ``` - - The rewrite configuration shown above is specific to Apache 2.4 or later. This means that logging gets recorded to Apache's `error.log` file. To view only the records specific to `mod_rewrite`, you can pipe the log file through grep: - - ```command - tail -f error_log|fgrep '[rewrite:' - ``` - - If you are using Apache 2.2, then you will need to replace the `LogLevel alert rewrite:trace` directive with the following: - - ```file {title="/etc/apache2/sites-available/example.com.conf" lang="aconf"} - RewriteLog /var/log/apache2/rewrite.log - RewriteLogLevel 5 # Adjust log verbosity as required. ex. 1-9 - ``` - - {{< note type="alert" >}} - On Red Hat-based distributions, change the `Rewritelog` path to `/var/log/httpd/rewrite.log` - {{< /note >}} - -1. Create the `RewriteLog` as referenced from above: - - - Debian / Ubuntu - - ```command - touch /var/log/apache2/rewrite.log - ``` - - - CentOS - - ```command - touch /var/log/httpd/rewrite.log - ``` - -## Configure the Nginx Web Server - -1. Edit the Nginx server block configuration file to establish the rewrite rules to redirect all incoming traffic from port 80/HTTP back to the NodeBalancer on port 443/HTTPS: - - ```file {title="/etc/nginx/sites-available/example.com.conf" lang="nginx"} - server { - listen 80; - server_name example.com; - access_log /var/log/nginx/access.log; - error_log /var/log/nginx/error.log; - proxy_set_header X-Forwarded-Proto $scheme; - location / { - root /srv/www/example.com/public_html; - index index.html index.htm; - if ($http_x_forwarded_proto = "http") { - rewrite ^/(.*)$ https://example.com/$1 permanent; - } - } - } - ``` - - In the above configuration, be sure to replace the values of `server_name` and `root` with your actual domain and document root, respectively. - -1. Your configuration should now be complete. After reloading your web server, all requests made to your website that are not sent to port 443 should be redirected back to your NodeBalancer on a secure connection with SSL/TLS. - -## Tips for Troubleshooting - -- If you have difficulty getting the redirect to work properly or would like to see detailed information about how your SSL certificate is configured, you may wish to use the [Qualys online SSL Server Test](https://www.ssllabs.com/ssltest/) - -- Every time you make changes to your web server's document root file or other configuration files, be sure to reload the server: - - - For Apache, choose from the following commands, depending on your distribution: - - ```command - service apache2 reload - service httpd reload - systemctl restart apache2 - systemctl restart httpd - ``` - - - For Nginx, choose from the following commands, depending on your distribution: - - ```command - service nginx reload - systemctl restart nginx - ``` - -- When testing behind a load balancer, using curl with the `-I` or `-L` flags can be very helpful when debugging: - - ```command - curl -I example.com - curl -L example.com - ``` - - The `-I` or `--head` options will fetch the HTTP-header only. The `-L` or `--location` option will detect and display if the server indicates that the requested page has moved to a different location. This option will make curl repeat the request at the new location. If used together with `-I`, headers from all requested pages will be displayed. This is particularly useful if your rewrite rules have created an infinite loop and your web page does not load. Refer to the [man pages](https://curl.haxx.se/docs/manual.html) for `curl` for more info. diff --git a/docs/products/networking/nodebalancers/guides/ssl-termination/nodebalancer-ssl-configuration.png b/docs/products/networking/nodebalancers/guides/ssl-termination/nodebalancer-ssl-configuration.png deleted file mode 100644 index b01065b25fc..00000000000 Binary files a/docs/products/networking/nodebalancers/guides/ssl-termination/nodebalancer-ssl-configuration.png and /dev/null differ diff --git a/docs/products/networking/nodebalancers/resources/index.md b/docs/products/networking/nodebalancers/resources/index.md deleted file mode 100644 index 9d1df9d813b..00000000000 --- a/docs/products/networking/nodebalancers/resources/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Resources -title_meta: "Resources for NodeBalancers" -description: "Resources and other information related to the Linode NodeBalancers including blog posts, community posts, and customer stories." -tab_group_main: - weight: 40 ---- - -## Blog Posts - -- [Linode turns 16: Triples Dedicated plan storage, halves NodeBalancer cost](https://www.linode.com/blog/linode/linode-turns-16-triples-dedicated-plan-storage-halves-nodebalancer-cost/) - -- [NodeBalancer SSL](https://www.linode.com/blog/linode/nodebalancer-ssl/) - -- [NodeBalancer Concurrent Connections](https://www.linode.com/blog/linode/nodebalancer-concurrent-connections/) - -- [Introducing NodeBalancer](https://www.linode.com/blog/linode/introducing-nodebalancer/) - -- [Linode at 17: A bunch of updates](https://www.linode.com/blog/linode/linode-turns-17/) - -- [2019: A Big Year of Innovation for Linode and a Big Thank You to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [High Availability - What You Need to Know](https://www.linode.com/blog/cloud-consulting-services/high-availability-what-you-need-to-know/) - -- [Now Available: Linode Terraform Provider](https://www.linode.com/press-release/linode-expands-cloud-solutions-for-developers-launches-dedicated-cpu-instances/) - -- [Native IPv6 Now Available in All Locations](https://www.linode.com/blog/networking/native-ipv6-now-available-in-all-locations/) - -## Community Posts - -- [What is a NodeBalancer?](https://www.linode.com/community/questions/265/what-is-a-nodebalancer) - -- [A few questions about NodeBalancers and gRPC traffic](https://www.linode.com/community/questions/19894/a-few-questions-about-nodebalancers-and-grpc-traffic) - -- [How do I configure a NodeBalancer for a Tomcat cluster?](https://www.linode.com/community/questions/37/how-do-i-configure-a-nodebalancer-for-a-tomcat-cluster) - -- [How can strong Diffie-Hellman key exchange parameters be supplied to the NodeBalancer?](https://www.linode.com/community/questions/115/how-can-strong-diffie-hellman-key-exchange-parameters-be-supplied-to-the-nodebal) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=nodebalancers). - -## Customer Stories - -- [Craft of Code: Bernd Hilmar](https://www.linode.com/spotlight/bernd-hilmar/) - -- [Craft of Code: Chris Alfano](https://www.linode.com/spotlight/chris-alfano/) - -- [Craft of Code: Changelog](https://www.linode.com/spotlight/changelog/) - -- [Craft of Code: Metorik](https://www.linode.com/spotlight/metorik/) - -- [Craft of Code: Retargetly](https://www.linode.com/spotlight/retargetly/) - -- [Craft of Code: NSoft](https://www.linode.com/spotlight/nsoft/) - -- [Craft of Code: Jason Nickel](https://www.linode.com/spotlight/jason-nickel/) diff --git a/docs/products/networking/vlans/_index.md b/docs/products/networking/vlans/_index.md deleted file mode 100644 index ce217fd7ba5..00000000000 --- a/docs/products/networking/vlans/_index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: VLANs -title_meta: "VLAN Product Documentation" -description: "Linode VLANs enable secure and private communication across Linodes within the same data center region. This free service is a great way to keep your cloud workloads secure. VLANs are easy to create using the Linode Cloud Manager, API, and CLI." -modified: 2024-04-03 -linkTitle: VLANs -bundles: ['network-security'] -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-10-22 - product_description: "Fully isolated virtual local area networks that enable private communication between cloud-based resources" -aliases: ['/guides/platform/vlan/'] ---- - -**VLANs** are private *virtual local area networks* that are available at no additional cost to Linode users in select data centers. They operate on [layer 2](https://en.wikipedia.org/wiki/OSI_model#Layer_2:_Data_Link_Layer) of the OSI networking model and are entirely isolated from other networks. VLANs are a key part of enabling private and secure communication between Compute Instances on Linode's cloud platform. They function like a virtual network switch, which effectively means all Compute Instances connected to the same VLAN can communicate with each other like they were directly connected to the same physical Ethernet network. Devices outside the network cannot see any traffic within the private network. - -## Features - -### Private Communication Between Compute Instances - -A VLAN creates a truly private network and communication is isolated to just the Compute Instances belonging to the same VLAN. No other Compute Instances on other VLANs or within the same data center can see this private traffic. This goes beyond Linode's [Private IP](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#types-of-ip-addresses) feature, which can be accessed by any resource in the same data center. - -### Simple Configuration - -Use Cloud Manager to create a VLAN and assign Compute Instances. Create up to 10 VLANs per data center and assign each Compute Instance to up to 3 VLANs. - -### Reduce Network Transfer Costs - -Private network transfer is free. Any communication between Compute Instances over a VLAN does not count against the account's monthly [network transfer allowance](/docs/products/platform/get-started/guides/network-transfer/). - -### Part of a Flexible Custom VPC Solution - -Since VLANs operate on layer 2 of the OSI networking stack, you can use them as part of a custom VPC solution, which typically operates on layer 3. VLAN users can implement their own firewall policies, routing, and security systems to build out their VPC. - -## Availability - -VLANs are available in all data centers. - - -## Pricing - -VLANs are free to use. Communication across your private network does not count against your [monthly network transfer usage](/docs/products/platform/get-started/guides/network-transfer/). - -## Technical Specifications - -- Fully isolated private networking for Cloud-based resources -- Operates on [Layer 2](https://en.wikipedia.org/wiki/OSI_model#Layer_2:_Data_link_layer) of the OSI model (the data link layer) and, as such, can be more flexible than Layer 3 based VPC (Virtual Private Cloud) solutions -- Supports all logical Ethernet features, such as L2 broadcast and L2 multicast -- Supports any [Layer 3](https://en.wikipedia.org/wiki/OSI_model#Layer_3:_Network_layer) protocol, including IP (Internet Protocol) -- User assignable IPv4 addresses -- Each account can maintain up to 10 VLANs per region -- Each Compute Instance can belong to up to 3 VLANs -- Network transfer over a VLAN does not count towards your account's [network transfer allowance](/docs/products/platform/get-started/guides/network-transfer/) - -## Additional Limits and Considerations - -- **VLANs are region-specific.** Once created, a VLAN can only be attached to other Linodes within the same data center. - -- **VLANs cannot be manually renamed by the user.** If a VLAN's label must be changed, a new VLAN can be created and all required Linodes can be attached to that new VLAN. - -- **VLANs cannot be manually deleted by the user.** There is no need to manually delete a VLAN. If a VLAN is no longer needed, simply detach it from all Linodes. After this, it will automatically be deleted within a short timeframe. - -- **Network Helper is required for automatic configuration.** If [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) has been disabled, the Linode will not *automatically* be able to communicate over the VLAN’s private network. In this case, advanced users can manually adjust their Linode’s internal network configuration files with the appropriate settings for their VLAN. See [Manually configuring a VLAN on a Linode](/docs/products/networking/vlans/guides/manually-configuring-a-vlan/) for instructions. - -- **The Public Internet must always use the eth0 network interface.** While VLANs themselves can function without issue on the `eth0` interface, the public internet on Linode will not be networked correctly on other interfaces. \ No newline at end of file diff --git a/docs/products/networking/vlans/developers/index.md b/docs/products/networking/vlans/developers/index.md deleted file mode 100644 index a44d18a472b..00000000000 --- a/docs/products/networking/vlans/developers/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for VLANs" -description: "Use the Linode API v4 and the Linode CLI to create Linode Virtual LANs. You can create secure and private networks in the cloud using Linode Virtual LANs." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services, including VLANs. - -- [Creating a Private Network Using Linode API and Linode VLAN](/docs/products/networking/vlans/guides/manage-vlans-using-linode-api/): This guide shows you how to create a VLAN and attach Linodes to it using the Linode APIv4. - -- **Linode VLANs Endpoint Collection:** Use [VLANs List](/docs/api/networking/#vlans-list) and the [Configuration Profiles View](/docs/api/linode-instances/#configuration-profile-view) (as part of the `interfaces array`) to view VLANs. Create and manage VLANs through the [Configuration Profile Create](/docs/api/linode-instances/#configuration-profile-create) and [Configuration Profile Update](/docs/api/linode-instances/#configuration-profile-update) endpoints. - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [create and manage your Linode resources](/docs/products/tools/cli/get-started/). diff --git a/docs/products/networking/vlans/feature.svg b/docs/products/networking/vlans/feature.svg deleted file mode 100644 index b1cba96f665..00000000000 --- a/docs/products/networking/vlans/feature.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/products/networking/vlans/get-started/index.md b/docs/products/networking/vlans/get-started/index.md deleted file mode 100644 index 1a6e2274241..00000000000 --- a/docs/products/networking/vlans/get-started/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with VLANs" -description: "Use the Linode Cloud Manager to create a VLAN and attach a Compute Instance to it. When a Compute Instance is attached to a VLAN and configured, it has access to the VLAN's secure and private network." -published: 2021-04-28 -modified: 2022-08-23 -keywords: ['networking','vlan','private network'] -tags: ["security", "networking", "linode platform"] -tab_group_main: - weight: 20 -aliases: ['/guides/getting-started-with-vlans/'] ---- - -VLANs (Virtual Local Area Network) are a completely free solution available to Linode services used for enabling private networking in the cloud. Here are a few key features of VLANs: - -- **Privacy and Security.** Compute Instances on the same account and in the same region can be added to the same VLAN, allowing for private and secure communications between those instances. The public internet can also be disabled on a Compute Instance to provide even more security. - - {{< note >}} - VLANs are separate from [Private IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#types-of-ip-addresses). Private IPs are accessible to all Compute Instances in that same data center and can only be further restricted by firewall rules or additional internal configuration. - {{< /note >}} - -- **Performance.** A VLAN is configured as a Layer 2 networking device and provides low latency for latency-sensitive applications. - -- **No additional charges.** VLANs are available at no cost and network transfer over a VLAN does not count towards monthly transfer quotas. - -## Configuring VLANs - -VLANs are relatively simple to manage and do not require much configuration beyond attaching (or detaching) a VLAN to a Compute Instance. VLANs can be configured when creating new instances or by modifying the network interfaces on the [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) of an existing instance. - -- [Attach a VLAN to a Compute Instance](/docs/products/networking/vlans/guides/attach-to-compute-instance/) - -- [Remove a Compute Instance from a VLAN](/docs/products/networking/vlans/guides/remove-a-compute-instance/) - -### Configuring the Network Interface - -VLANs are managed within the Configuration Profile of a Compute Instance. Each instance has 3 configurable network interfaces, which are referred to as *eth0*, *eth1*, and *eth2*. The purpose of a network interface is to provide access to either the public internet or a VLAN: - -- **Public Internet:** Configuring a network interface for the **Public Internet** enables the public (and private) IP address(es) for that Compute Instance. If no network interface is configured as **Public Internet**, the instance will not be able to access the internet or other instances within the data center's main private network. - -- **VLAN:** Configuring a network interface for a VLAN enables the Compute Instance to communicate over a specified VLAN. - -- **None:** Selecting **None** will deactivate that network interface. - -{{< note type="alert" >}} -The Public Internet must always be set to use the network interface `eth0`. -{{< /note >}} - -### Selecting a VLAN - -When configuring a network interface, a VLAN can be selected by entering its **Label**. VLANs that already exist on an account can be quickly selected through a drop down list. If the label doesn't correspond with an existing VLAN, a new VLAN is created. - -### Assigning an IPAM Address - -IPAM (IP Address Management) is the system that allows users to assign and manage IP addresses for each VLAN configured on a Compute Instance. When attaching a VLAN, an **IPAM Address** can be specified in address/netmask format. This should be a unique IPv4 address that doesn't already exist within the VLAN or on the public internet. It is common to use a /24 network within the 10.0.0.0/8 range (10.0.0.0 – 10.255.255.255). For example, if a user wishes to use the subnet 10.0.0.0/24 on a VLAN, they can assign any unique address in the range 10.0.0.0 - 10.0.0.255. Here are valid IPAM addresses for two Compute Instances connected to that VLAN: - -- Instance 1: `10.0.0.1/24` -- Instance 2: `10.0.0.2/24` - -Just like public and private IP addresses, IP addresses for a VLAN are automatically configured on a Linode through [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/). If Network Helper is disabled or if no IPAM address is provided, the Compute Instance will not automatically be able to communicate over the VLAN. In some cases, advanced users may disable Network Helper or refrain from providing an IPAM address. When doing so, the instance's internal network configuration files must be manually adjusted with the desired settings. See [Manually configuring a VLAN on a Compute Instance](/docs/products/networking/vlans/guides/manually-configuring-a-vlan/) for instructions. - -{{< note >}} -The Compute Instance must be rebooted for any changes within its network interfaces to take effect. This reboot allows Network Helper to run so it can automatically adjust the necessary network configuration files. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/networking/vlans/guides/_index.md b/docs/products/networking/vlans/guides/_index.md deleted file mode 100644 index 854855ccf08..00000000000 --- a/docs/products/networking/vlans/guides/_index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for VLANs" -description: "A collection of guides to help instruct you how to use VLANs, like creating a VLAN, attaching Linodes to your VLAN, viewing your VLAN's networking details, and more." -tab_group_main: - weight: 30 ---- - -## Basics - -- [Use Cases](/docs/products/networking/vlans/guides/use-cases/): Learn how VLANs can be used by exploring some common scenarios. - -- [Getting Started with VLANs](/docs/products/networking/vlans/get-started/): An introduction to VLANs, including how to create and administer them within Cloud Manager. - -- [Attach a VLAN to a Compute Instance](/docs/products/networking/vlans/guides/attach-to-compute-instance/): Learn how to create a VLAN and attach it to a new or existing Compute Instance. - -- [Remove a Compute Instance from a VLAN](/docs/products/networking/vlans/guides/remove-a-compute-instance/) - -## Going Further - -- [Manually Configuring a VLAN on a Linode](/docs/products/networking/vlans/guides/manually-configuring-a-vlan/): Manually configure an attached VLAN by adjusting a Linode's internal network configuration files. - -- [Creating a Private Network Using Linode API and Linode VLAN](/docs/products/networking/vlans/guides/manage-vlans-using-linode-api/): This guide shows you how to create a VLAN and attach Linodes to it using the Linode APIv4. - -- [Configure Linux as a Router (IP Forwarding)](/docs/guides/linux-router-and-ip-forwarding/): In this tutorial, connect multiple Compute Instances to the same VLAN and learn how to configure one of them as a router. This allows some or all instances in the private network to share the same public IP address. \ No newline at end of file diff --git a/docs/products/networking/vlans/guides/attach-to-compute-instance/create-new-linode.png b/docs/products/networking/vlans/guides/attach-to-compute-instance/create-new-linode.png deleted file mode 100644 index cf34a87ccb8..00000000000 Binary files a/docs/products/networking/vlans/guides/attach-to-compute-instance/create-new-linode.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/attach-to-compute-instance/edit-button-for-configuration-profile.png b/docs/products/networking/vlans/guides/attach-to-compute-instance/edit-button-for-configuration-profile.png deleted file mode 100644 index 79b271ed846..00000000000 Binary files a/docs/products/networking/vlans/guides/attach-to-compute-instance/edit-button-for-configuration-profile.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/attach-to-compute-instance/index.md b/docs/products/networking/vlans/guides/attach-to-compute-instance/index.md deleted file mode 100644 index d31c9bc7343..00000000000 --- a/docs/products/networking/vlans/guides/attach-to-compute-instance/index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: "Attach a VLAN to a Compute Instance" -description: "Learn how to create a VLAN and attach it to a new or existing Compute Instance" -modified: 2022-08-23 ---- - -Within Cloud Manager, VLANs are created and managed only by attaching them to Linode Compute Instances. They are not managed independently. You can attach a VLAN when creating a new Compute Instance or when editing an existing instance. - -- [Attaching a VLAN When Creating a Compute Instance](#attaching-a-vlan-when-creating-a-compute-instance) -- [Attaching a VLAN to an Existing Compute Instance](#attaching-a-vlan-to-an-existing-compute-instance) - -This guide covers implementing both of these methods using Cloud Manager. While VLANs can also be created and administered through the API and CLI, that's beyond the scope of this guide. - -## Attaching a VLAN When Creating a Compute Instance - -1. On the top left of [Cloud Manager](https://cloud.linode.com/dashboard), click **Create** and select **Linode**. - - ![Create a new Compute Instance](create-new-linode.png) - -1. Fill out all desired configuration options in the form that appears, until reaching the **Attach a VLAN** section. See the [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) guide for more information. - - {{< note >}} - VLANs are not available in all regions. If the Attach a VLAN section isn't visible, see the Availability section on the [VLANs Overview](/docs/products/networking/vlans/) page. - {{< /note >}} - -1. Within the **Attach a VLAN** section, enter the *Label* of the VLAN or select from a list of the VLANs that currently exist on the account. If the VLAN does not yet exist, it is automatically created when creating the Compute Instance. - - ![Attach a VLAN form](vlan-new-linode.png) - -1. Optionally enter the IPv4 address you wish to assign to the VLAN's network interface on this machine. The IP address should be unique to avoid conflicts in the case other machines share the same address. If this field left blank, the Compute Instance will not be able to communicate with other instances on that VLAN until one of the following is true: - - - An IPAM address is added to the `eth1` interface within the instance's [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) - - An IP address is manually assigned to the network interface within the instance's internal configuration files. - - See the [Assigning an IPAM Address](/docs/products/networking/vlans/get-started/#assigning-an-ipam-address) section on the Get Started guide for more information about IPAM and examples of valid IPAM addresses. - -1. Complete the create form with any additional add-ons and settings you'd like to use. Then click the **Create Linode** button. - -By default, the public IP address (and, if added, the private IP address) of the Compute Instance is configured on the *eth0* network interface. The VLAN, if one was attached, is configured on the *eth1* network interface. These network interfaces can be removed or modified by editing the [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/#edit-a-configuration-profile). - -## Attaching a VLAN to an Existing Compute Instance - -1. Within [Cloud Manager](https://cloud.linode.com), click the **Linodes** link in the sidebar and select a Compute Instance. - -1. Navigate to the **Configurations** tab for that Compute Instance. - -1. Click the **Edit** button next to the configuration profile you'd like to modify. - - ![Edit configuration profile](edit-button-for-configuration-profile.png) - -1. An **Edit Configuration** screen will appear. Scroll down to the **Network Interfaces** section. - -1. Click the dropdown menu under the desired network interface and select **VLAN**. Typically `eth1` or `eth2` would be used when adding the first or second VLAN to a Compute Instance, respectively, since the instance's `eth0` network interface is typically configured to access the public internet. - - ![Selecting the network interface](network-interface-purpose.png) - - A secondary menu will appear next to the selected interface for entering the VLAN's label and the IP address to use. - -1. Enter the *Label* of the VLAN or select an existing VLAN from the drop down menu. If a custom label is entered and the VLAN does not yet exist, it is automatically created when saving the configuration profile. - -1. Optionally enter an IP (IPAM) Address. If this field is left blank, the Compute Instance will not be able to communicate with other instances on that VLAN until an IP address is manually assigned to the network interface within the instance's internal configuration files. - - See the [Assigning an IPAM Address](/docs/products/networking/vlans/get-started/#assigning-an-ipam-address) section of the Get Started guide for more information about IPAM and examples of valid IPAM addresses. - -1. Click on the **Save Changes** button towards the bottom of this form to save the changes. - -1. Once the configuration profile has been updated, select the **Boot** or **Reboot** button next to the edited configuration profile on the following page. This will reboot using the edited configuration profile and apply the new VLAN configuration to the Compute Instance. - - ![Reboot the Compute Instance](reboot-linode.png) - -## Testing connectivity - -Once a VLAN has been attached to more than one Compute Instance, verify that you can communicate between those instances over the VLAN's private network. - -1. If the Compute Instance has a public network configured, connect to it via SSH. See [Setting Up and Securing a Compute Instance > Connect to the Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance). - - ssh username@192.0.2.1 - - If the Compute Instance does not have a public network configured, connect to it via Lish by following the steps in the [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/) guide. - -1. Ping another Compute Instance within the VLAN's private network using the IPAM address assigned to it. - - ping 10.0.0.1 - - The output should display ICMP packets successfully transmitted and received from this instance to the secondary instance in the private network. - - ```output - PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. - 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.733 ms - 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.294 ms - ^C - --- 10.0.0.1 ping statistics --- - 2 packets transmitted, 2 received, 0% packet loss, time 18ms - rtt min/avg/max/mdev = 0.294/0.513/0.733/0.220 ms - ``` \ No newline at end of file diff --git a/docs/products/networking/vlans/guides/attach-to-compute-instance/network-interface-purpose.png b/docs/products/networking/vlans/guides/attach-to-compute-instance/network-interface-purpose.png deleted file mode 100644 index 5cc865cb02b..00000000000 Binary files a/docs/products/networking/vlans/guides/attach-to-compute-instance/network-interface-purpose.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/attach-to-compute-instance/reboot-linode.png b/docs/products/networking/vlans/guides/attach-to-compute-instance/reboot-linode.png deleted file mode 100644 index f494ade9d15..00000000000 Binary files a/docs/products/networking/vlans/guides/attach-to-compute-instance/reboot-linode.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/attach-to-compute-instance/vlan-new-linode.png b/docs/products/networking/vlans/guides/attach-to-compute-instance/vlan-new-linode.png deleted file mode 100644 index fa05eded352..00000000000 Binary files a/docs/products/networking/vlans/guides/attach-to-compute-instance/vlan-new-linode.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/manage-vlans-using-linode-api/index.md b/docs/products/networking/vlans/guides/manage-vlans-using-linode-api/index.md deleted file mode 100644 index 237d7fdced7..00000000000 --- a/docs/products/networking/vlans/guides/manage-vlans-using-linode-api/index.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -title: "Create a Private Network with VLANs Using Linode's API" -description: "Want to create your own private networks in the cloud? Here's how you can use the Linode API to do so by attaching new and existing Linodes to VLANs." -published: 2021-04-07 -keywords: ['linode vlan','linode vlan api'] -tags: ["security", "networking", "linode platform"] -aliases: ['/platform/vlan/how-to-create-a-private-network-with-linode-vlans-api/','/guides/how-to-create-a-private-network-with-linode-vlans-api/','/guides/vlan-api/'] ---- - -This guide shows you how to use [Linode's API](/docs/api) to create and attach a VLAN to a Linode. - -You can attach a Linode to a VLAN in three different ways using the Linode API: - -- As part of the configuration of a new Linode using the Linode Create ([POST /linodes/instances](/docs/api/linode-instances/#linode-create)) endpoint. -- By creating a new configuration profile for a Linode using the Configuration Profile Create ([POST /linode/instances/{linodeId}/configs](/docs/api/linode-instances/#configuration-profile-create)) endpoint. -- By editing an existing configuration profile of a Linode using the Configuration Profile Update ([/linode/instances/{linodeId}/configs/{configId}](/docs/api/linode-instances/#configuration-profile-update)) endpoint. - -The steps in this guide can be adopted to create and use VLANs for your specific use case. - -{{< note >}} -When you attach a Linode to a VLAN and reboot the Linode, [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) generates network configurations for the specified network interfaces if it is enabled. You can enable Network Helper by default using the Account Settings Update ([PUT /account/settings](/docs/api/account/#account-settings-update)) endpoint. The Linode must be rebooted for any changes within its network interfaces to take effect. -{{< /note >}} - -## Configuring VLANs with the Interfaces Array - -VLANs are managed by the `interfaces` array of a Linode's configuration profile. The `interfaces` array consists of up to three network interface objects which correspond to the *eth0*, *eth1*, and *eth2* interfaces according to their position in the array as follows: - -| Array Order | Array Index | Interface | Example Interface Object | -| ----------- | ----------- | --------- | --------- | -| First | 0 | eth0 | `{"purpose":"public"}` | -| Second | 1 | eth1 | `{"purpose":"vlan", "label":"vlan-1", "ipam_address":"10.0.0.1/24"}` | -| Third | 2 | eth2 | `{"purpose":"vlan", "label":"vlan-2", "ipam_address":"10.0.0.2/24"}` | - -{{< note >}} -If no `interfaces` array is submitted with a request, the Linode is automatically configured with its assigned public and private IPv4 addresses only. -{{< /note >}} - -### Configuring the Purpose of an Interface - -The `purpose` of a network interface is required and used to determine whether an interface provides access to either the public internet or a VLAN: - -- `public`: Configures a network interface for the public internet and enables the public (and private) IP address(es) for that Linode. If no network interface is configured as `public`, the Linode will not be able to access the internet or other Linodes within the data center's main private network. - -- `vlan`: Configures a network interface for the labeled VLAN and enables the Linode to communicate over the `ipam_address` if one is specified. - -{{< note type="alert" >}} -The Public Internet must always be set to use the network interface `eth0`. -{{< /note >}} - -### Configuring the Label of an Interface - -When configuring a `vlan` purpose network interface, a VLAN can be selected by specifying its `label`. Linodes that are attached to the same VLAN can privately communicate with each other over their respective `vlan` purpose interfaces. - -If the `label` doesn't correspond with an existing VLAN, a new VLAN is created. VLANs that already exist on an account can be viewed, along with their region and attached Linodes, using the VLANs List ([GET /network/vlans](/docs/api/networking/#vlans-list)) endpoint. - -{{< note >}} -No `label` is specified for `public` purpose interfaces. You can simply omit the property, or enter an empty string or `null`. -{{< /note >}} - -### Configuring the IPAM Address of an Interface - -IPAM (IP Address Management) is the system that allows users to assign and manage IP addresses for each VLAN configured on a Linode. When attaching a `vlan` purpose interface to a Linode, the `ipam_address` can be specified in address/netmask format. This should be a unique IP address that doesn't already exist within the VLAN or on the public internet. It is common to use an address within the 10.0.0.0/8 range (10.0.0.0 – 10.255.255.255). For example, here are typical IPAM addresses for two Linodes connected to the same VLAN: - -- Linode 1: `10.0.0.1/24` -- Linode 2: `10.0.0.2/24` - -Just like public and private IP addresses, IPAM addresses for a VLAN are automatically configured on a Linode through [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/). If Network Helper is disabled or if no `ipam_address` is provided, the Linode will not automatically be able to communicate over the VLAN. In some cases, advanced users may disable Network Helper or refrain from providing an `ipam_address`. When doing so, the Linode's internal network configuration files must be manually adjusted with the desired settings. - -{{< note >}} -No `ipam_address` is specified for `public` purpose interfaces. You can simply omit the property, enter an empty string, or enter `null`. -{{< /note >}} - -{{< note >}} -IPAM addresses for a Linode must be unique among its interfaces. -{{< /note >}} - -### Example Interfaces Array - -To illustrate each of the above configurations, the following `interfaces` array configures a Linode's assigned public (and private) IP address(es) configured on eth0, the IPAM address `10.0.0.1/24` for the VLAN labeled `vlan-1` configured on eth1, and the IPAM address `10.0.0.2/24` for the VLAN labeled `vlan-2` configured on eth2: - - "interfaces": [ - { - "purpose": "public" - }, - { - "purpose": "vlan", - "label": "vlan-1", - "ipam_address": "10.0.0.1/24" - }, - { - "purpose": "vlan", - "label": "vlan-2", - "ipam_address": "10.0.0.2/24" - } - ] - -## Attaching a VLAN to a New Linode - -To attach a VLAN to a new Linode, send a request to the Linode Create ([POST /linodes/instances](/docs/api/linode-instances/#linode-create)) endpoint containing an `interfaces` array that includes a `vlan` purpose interface with the VLAN's `label` and the desired `ipam_address`. - -The following request creates a 1GB Linode utilizing the example `interfaces` array from [above](#example-interfaces-array): - - curl -k -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "type": "g6-nanode-1", - "region": "us-southeast", - "image": "linode/debian10", - "root_pass": "pl34s3us34s3cur3p4ssw0rd", - "interfaces": [ - { - "purpose": "public" - }, - { - "purpose": "vlan", - "label": "vlan-1", - "ipam_address": "10.0.0.1/24" - }, - { - "purpose": "vlan", - "label": "vlan-2", - "ipam_address": "10.0.0.2/24" - } - ] - }' \ - https://api.linode.com/v4/linode/instances - -{{< note >}} -An `image` must be specified to set interfaces when creating a new Linode. -{{< /note >}} - -## Attaching a VLAN to an Existing Linode - -You can attach a VLAN to an existing Linode by either creating a new configuration profile or updating an existing configuration profile for the Linode. In either case, the Linode must be rebooted to allow Network Helper to automatically adjust the necessary network configuration files on the Linode. - -The Linode's ID is required to use these methods. Use the Linodes List ([GET /linode/instances](/docs/api/linode-instances/#linodes-list)) endpoint to retrieve the IDs of each of your Linodes. To view the Disk IDs of a Linode, use the Disks List ([GET /linode/instances/{linodeId}/disks](/docs/api/linode-instances/#disks-list)) endpoint. - -### Creating a Configuration Profile - -1. To attach a VLAN to an existing Linode using a new configuration profile, send a request to the Configuration Profile Create ([POST /instances/{linodeId}/configs](/docs/api/linode-instances/#configuration-profile-create)) endpoint containing an `interfaces` array that includes a `vlan` purpose interface with the VLAN's `label` and the desired `ipam_address`. - - The following request creates a configuration profile utilizing the example `interfaces` array from [above](#example-interfaces-array): - - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "label": "Example VLAN Config", - "devices": { - "sda": { - "disk_id": 111, - "volume_id": null - }, - "sdb": { - "disk_id": 222, - "volume_id": null - } - }, - "interfaces": [ - { - "purpose": "public" - }, - { - "purpose": "vlan", - "label": "vlan-1", - "ipam_address": "10.0.0.1/24" - }, - { - "purpose": "vlan", - "label": "vlan-2", - "ipam_address": "10.0.0.2/24" - } - ] - }' \ - https://api.linode.com/v4/linode/instances/123/configs - - Note the new Configuration Profile's ID from the response. - -1. Reboot your Linode with the new Configuration Profile's ID using the Linode Reboot ([POST /linode/instances/{linodeId}/reboot](/docs/api/linode-instances/#linode-reboot)) endpoint. - - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "config_id": 23456 - }' \ - https://api.linode.com/v4/linode/instances/123/reboot - -### Updating a Configuration Profile - -1. To attach a VLAN to an existing Linode using an existing configuration profile, first retrieve the Configuration Profile's ID using the Configuration Profiles List ([GET /linode/instances/{linodeId}/configs](/docs/api/linode-instances/#configuration-profiles-list)) endpoint. - - curl -H "Authorization: Bearer $TOKEN" \ - https://api.linode.com/v4/linode/instances/123/configs - -1. Using the Linode's current Configuration Profile ID, send a request to the Configuration Profile Update ([PUT /linode/instances/{linodeId}/configs/{configId}](/docs/api/linode-instances/#configuration-profile-update)) endpoint containing an `interfaces` array that includes a `vlan` purpose interface with the VLAN's `label` and the desired `ipam_address`. - - The following request updates a configuration profile utilizing the example `interfaces` array from [above](#example-interfaces-array): - - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X PUT -d '{ - "interfaces": [ - { - "purpose": "public" - }, - { - "purpose": "vlan", - "label": "vlan-1", - "ipam_address": "10.0.0.1/24" - }, - { - "purpose": "vlan", - "label": "vlan-2", - "ipam_address": "10.0.0.2/24" - } - ] - }' \ - https://api.linode.com/v4/linode/instances/123/configs/23456 - - {{< note >}} - When updating a Configuration Profile's `interfaces` array, the previous interface configurations are overwritten. Any interfaces you wish to keep attached to a Linode must be redefined when updating its Configuration Profile. - {{< /note >}} - -1. Reboot your Linode with the new Configuration Profile's ID using the Linode Reboot ([POST /linode/instances/{linodeId}/reboot](/docs/api/linode-instances/#linode-reboot)) endpoint. - - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $TOKEN" \ - -X POST -d '{ - "config_id": 23456 - }' \ - https://api.linode.com/v4/linode/instances/123/reboot \ No newline at end of file diff --git a/docs/products/networking/vlans/guides/manually-configuring-a-vlan/index.md b/docs/products/networking/vlans/guides/manually-configuring-a-vlan/index.md deleted file mode 100644 index 7c3ccc746bd..00000000000 --- a/docs/products/networking/vlans/guides/manually-configuring-a-vlan/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Manually Configuring a VLAN on a Linode -modified: 2022-08-23 -tab_group_main: - weight: 20 ---- - -When a VLAN is assigned to a network interface and given an IPAM address, the Compute Instance should automatically be able to communicate over that private network. This is due to [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/), which is enabled by default on most instances. For compatible distributions, Network Helper adjusts the internal network configuration files. Any network interfaces defined in the Compute Instance's selected [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) (including those with VLANs attached) are automatically configured. - -This guide is for users that have disabled Network Helper on their Compute Instance or prefer not to assign an IPAM address within the Configuration Profile. In these cases, the Compute Instance's internal network configuration files must be manually adjusted. The following sections will cover the changes needed to manually configure a VLAN on common Linux distributions. - -## Ubuntu 18.04 and Later - -Ubuntu Server 18.04 and later versions use Netplan to configure networking, with systemd-networkd operating as the back end. Network configuration files for each interface are located in `/etc/systemd/network/`: - -- **eth0**: `/etc/systemd/network/05-eth0.network` -- **eth1**: `/etc/systemd/network/05-eth1.network` -- **eth2**: `/etc/systemd/network/05-eth2.network` - -### Manually Configuring a VLAN in Ubuntu 18.04 - -1. Verify that Network Helper is disabled to avoid it overwriting any changes on the next reboot. See [Enable or Disable Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#enable-or-disable-network-helper) for information on adjusting Network Helper settings. - -1. Log in to the Compute Instance via [Lish](/docs/products/compute/compute-instances/guides/lish/). While it's possible to make changes while logged in over SSH, you may get disconnected if changes are made to the network interface assigned to the public internet. - -1. Using your preferred editor, edit the configuration file corresponding to the network interface assigned to the VLAN. Replace the contents with the following text. Adjust `Name` to match the correct network interface and `Address` to match your desired IPAM address: - - [Match] - Name=eth1 - - [Network] - DHCP=no - Address=10.0.0.1/24 - -1. Restart the instance or run `sudo netplan apply` for the updated network configuration to take effect. - -## Debian and Ubuntu 16.04 - -Debian 7 and above, as well as Ubuntu 16.04, all use ifup and ifdown to manage networking. Network configuration files are located within `/etc/network/`: - -- **Main configuration file**: `/etc/network/interfaces` -- Alternative configuration files for each network interface: - - **eth0**: `/etc/network/interfaces.d/eth0` - - **eth1**: `/etc/network/interfaces.d/eth1` - - **eth2**: `/etc/network/interfaces.d/eth2` - -### Manually Configuring a VLAN in Debian and Ubuntu 16.04 - -1. Check if Network Helper is enabled or disabled. See [Enable or Disable Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#enable-or-disable-network-helper) for information on locating this setting. Network Helper should not interfere with any of the changes below, but its status may impact the files that you're able to edit. - -1. Log in to the Compute Instance via [Lish](/docs/products/compute/compute-instances/guides/lish/). While it's possible to make changes while logged in over SSH, you may get disconnected if changes are made to the network interface assigned to the public internet. - -1. Edit (or create) the specific configuration file corresponding to the network interface assigned to the VLAN. Replace the contents with the following text. Replace `eth1` with the correct network interface and adjust `address` to match your desired IPAM address: - - auto eth1 - - iface eth1 inet static - address 10.0.0.1/24 - - If Network Helper is disabled, the above changes can be made directly to the main configuration within `/etc/network/interfaces` if preferred. - -1. Restart the instance or run the following series of commands for the updated network configuration to take affect. Replace `eth1` with the correct network interface and replace the reference to the IP address as needed: - - sudo ip address flush dev eth1 - sudo ip address add 10.0.0.1/24 dev eth1 - sudo ip link set eth1 up - -## CentOS and Fedora - -CentOS 7 and above, as well as Fedora, all use systemd-networkd and NetworkManager. Network configuration files for each interface are located in `/etc/sysconfig/network-scripts/`: - -- **eth0**: `/etc/sysconfig/network-scripts/ifcfg-eth0` -- **eth1**: `/etc/sysconfig/network-scripts/ifcfg-eth1` -- **eth2**: `/etc/sysconfig/network-scripts/ifcfg-eth2` - -### Manually Configuring a VLAN in CentOS and Fedora - -1. Verify that Network Helper is disabled to avoid it overwriting any changes on the next reboot. See [Enable or Disable Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#enable-or-disable-network-helper) for information on adjusting Network Helper settings. - -1. Log in to the Compute Instance via [Lish](/docs/products/compute/compute-instances/guides/lish/). While it's possible to make changes while logged in over SSH, you may get disconnected if changes are made to the network interface assigned to the public internet. - -1. Edit the configuration file corresponding to the network interface assigned to the VLAN. Replace the contents with the following text. If needed, adjust `NAME` and `DEVICE` to match the correct network interface and `IPADDR0` and `PREFIX0` to match your desired IPAM address and prefix: - - DEVICE="eth1" - NAME="eth1" - - ONBOOT="yes" - BOOTPROTO="none" - - IPADDR0=10.0.0.1 - PREFIX0=24 - -1. Restart the Linode or run `sudo ifup eth1` for the updated network configuration to take effect. - -## Verify and Test the Updated Configuration - -1. First, verify that the network configuration was correctly updated and applied. Run the following `ip address` command, replacing `eth1` with the name of the network interface that was modified. - - ip address show eth1 | grep inet - - This command will output the IP addresses configured for the specified network interface, as seen in the example output below. If no IP address appears or if the wrong IP address appears, review the steps outlined above for your distribution and verify that they were all completed. Restarting the Compute Instance, making sure that Network Helper is disabled, may also force the changes to take affect. - - ```output - inet 10.0.0.1/24 brd 10.0.0.255 scope global eth1 - ``` - -2. Test the VLAN's connectivity by pinging another Linode within the VLAN's private network, using the IPAM address assigned to it. For more details, see the *Testing Connectivity* section of the [Attach a VLAN to a Compute Instance](/docs/products/networking/vlans/guides/attach-to-compute-instance/#testing-connectivity) guide. - -## Additional Configuration Instructions - -For more details regarding manually configuring IP addresses, see the [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/) guide. \ No newline at end of file diff --git a/docs/products/networking/vlans/guides/remove-a-compute-instance/edit-button-for-configuration-profile.png b/docs/products/networking/vlans/guides/remove-a-compute-instance/edit-button-for-configuration-profile.png deleted file mode 100644 index 79b271ed846..00000000000 Binary files a/docs/products/networking/vlans/guides/remove-a-compute-instance/edit-button-for-configuration-profile.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/remove-a-compute-instance/index.md b/docs/products/networking/vlans/guides/remove-a-compute-instance/index.md deleted file mode 100644 index b5afa7829bf..00000000000 --- a/docs/products/networking/vlans/guides/remove-a-compute-instance/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Detach a VLAN from a Compute Instance -description: "If a Compute Instance no longer requires access a VLAN's private network, the VLAN can be detached by editing the Configuration Profile." -aliases: ['/products/networking/vlans/guides/detach-a-linode-from-your-vlan/'] ---- - -If you no longer wish to include a particular Compute Instance within a VLAN's private network, the VLAN can be detached by editing that instance's [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/#edit-a-configuration-profile). - -1. Within [Cloud Manager](https://cloud.linode.com), click the **Linodes** link in the sidebar and select a Compute Instance. - -1. Navigate to the **Configurations** tab for that Compute Instance. - -1. Click the **Edit** button next to the configuration profile you'd like to modify. - - ![Edit configuration profile](edit-button-for-configuration-profile.png) - -1. An **Edit Configuration** screen will appear. Scroll down to the **Network Interfaces** section. - -1. Click the dropdown menu under the network interface for that VLAN and select **None**. This detaches the VLAN. - -1. Click on the **Save Changes** button to confirm the changes to the configuration profile. - -1. Reboot the Compute Instance to save your changes and completely detach the VLAN. - - {{< note >}} - If a VLAN is not attached to a Linode service, it will automatically be deleted. - {{< /note >}} \ No newline at end of file diff --git a/docs/products/networking/vlans/guides/use-cases/index.md b/docs/products/networking/vlans/guides/use-cases/index.md deleted file mode 100644 index c81d7b27d4f..00000000000 --- a/docs/products/networking/vlans/guides/use-cases/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Common Use Cases for Linode's VLAN Service" -description: "Learn abut common use cases for Linode's VLAN (Virtual Local Area Network) service and how you might leverage it for your application." -published: 2020-08-12 -image: -keywords: ['vlan','virtual local area network','use case'] -tags: ["security", "networking", "linode platform"] -aliases: ['/guides/common-linode-vlan-use-cases/'] ---- - -## Use Cases - -Some of the most popular use cases for VLAN are as follows. - -### Secure Data and Traffic - -If you have sensitive data on your network, you can use a VLAN to help keep it secure. By isolating the devices in the network with privileged data, you decrease the possibility of confidential information breaches. For example, the devices in an organization can be segmented into VLANs such as management, sales, support, guests, and others. The devices in one VLAN cannot directly access devices on another VLAN. - -Likewise, the traffic in the VLAN is secure. All packets sent over the network in the VLAN are private and protected from access by anyone outside of the network. - -#### Example: Web Server and Secure Database - -![Web Server to VLAN Secure Database Configuration](vlan-web-server-db-config.png "Web Server to VLAN Secure Database Configuration") - -In the diagram above, Linode 1 is a web server and has access to the internet over the `eth0` interface. It also has access to Linode 2 and the VLAN over the `eth1` interface. Linode 2 on the VLAN is a secure database that houses sensitive data. Communication between Linode 1 and 2 is transmitted over VLAN and is secure and private. - -#### Example: Kubernetes Cluster - -![Kubernetes Cluster with VLAN Configuration](vlan-kubernetes-cluster-config.png "Kubernetes Cluster VLAN Configuration") - -In the diagram above, Linode 1 and 2 are both in a Kubernetes cluster. Both nodes have services exposed to the internet over the `eth0` interface and communication between Pods is kept private and secure on the VLAN over the `eth1` interface. - -#### Example: Add a NodeBalancer - -![NodeBalancer with VLAN Configuration](nodebalancer-vlan-config.png "NodeBalancer with VLAN Configuration") - -You can increase performance and stability of your application by adding a [NodeBalancer](https://www.linode.com/products/nodebalancers/) while securing the communication between two dedicated servers. In the high availability system above, Linodes 1 and 2 both run the same web application. They both have a connection to the VLAN with the network interface `eth1` so they can communicate securely with each other and with Linode 3 which is a database. All communications made over `eth1` are private and secure. They are also connected to a NodeBalancer to manage the load over the `eth0` interface. The NodeBalancer directs traffic, maintains load balancing, and performs active health checks to make sure the system only directs traffic to healthy servers. - -### Cost Effective Network Management - -VLANs reduce the cost of the networking by efficiently using the existing resources and bandwidth. For example, you can run a secure VLAN in the cloud that is protected from the rest of the internet without generating extra outbound network transfer costs since internal VLAN traffic is internal and private. - -![Multiple VLAN Configuration](multi-vlan-config.png "Multiple VLAN Configuration") - -In the diagram above, Linode 1 has three virtual Ethernet NICs, one is attached to the internet and two others to separate VLANs. Linodes 1, 2, and 3 can communicate securely with each other over VLAN 1. Likewise, Linodes 1, 4, and 5 can communicate with each other over VLAN 2. However, Linodes 2 and 3 cannot directly communicate with Linodes 4 and 5. - -## Next Steps - -Visit the Linode VLAN product documentation to learn how to [create a VLAN](/docs/products/networking/vlans/get-started) and [configure your Linode to communicate over your private network](/docs/products/networking/vlans/guides/). \ No newline at end of file diff --git a/docs/products/networking/vlans/guides/use-cases/multi-vlan-config.png b/docs/products/networking/vlans/guides/use-cases/multi-vlan-config.png deleted file mode 100644 index 41db996b55d..00000000000 Binary files a/docs/products/networking/vlans/guides/use-cases/multi-vlan-config.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/use-cases/nodebalancer-vlan-config.png b/docs/products/networking/vlans/guides/use-cases/nodebalancer-vlan-config.png deleted file mode 100644 index bf76def3a2b..00000000000 Binary files a/docs/products/networking/vlans/guides/use-cases/nodebalancer-vlan-config.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/use-cases/vlan-kubernetes-cluster-config.png b/docs/products/networking/vlans/guides/use-cases/vlan-kubernetes-cluster-config.png deleted file mode 100644 index 9c2f1399304..00000000000 Binary files a/docs/products/networking/vlans/guides/use-cases/vlan-kubernetes-cluster-config.png and /dev/null differ diff --git a/docs/products/networking/vlans/guides/use-cases/vlan-web-server-db-config.png b/docs/products/networking/vlans/guides/use-cases/vlan-web-server-db-config.png deleted file mode 100644 index 7799886248b..00000000000 Binary files a/docs/products/networking/vlans/guides/use-cases/vlan-web-server-db-config.png and /dev/null differ diff --git a/docs/products/networking/vpc/_index.md b/docs/products/networking/vpc/_index.md deleted file mode 100644 index c6e2691fa91..00000000000 --- a/docs/products/networking/vpc/_index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: VPC -title_meta: "VPC Product Documentation" -description: "VPCs make it easy to create your own virtual private clouds on the Akamai cloud computing platform, providing an isolated network for your applications." -published: 2024-02-06 -modified: 2024-05-16 -bundles: ['network-security'] -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "A virtual private cloud enables private communication between Compute Instances, isolating your network traffic from other customers and the internet." ---- - -{{< note title="VPC Availability" >}} -VPCs are now publicly available to all customers in select data centers. For a list of supported regions, review the [Availability](#availability) section. -{{}} - -A VPC (*Virtual Private Cloud*) is an isolated network that enables private communication between Compute Instances within the same data center. Since Cloud environments often necessitate sharing infrastructure with other users, VPCs are a critical component of many application architectures and can further isolate your workloads from other Akamai users. - -## Protect Sensitive Data - -Networking packets sent over a VPC are walled off from the public internet --- as well as from other services within the same data center that don't belong to the same VPC. When assigning a Compute Instance to a VPC, you can opt for it to be fully private or configure it with public internet access through either a 1:1 NAT on the VPC or a public internet interface. - -## Segment Traffic Into Separate Subnets - -Instead of assigning a single IPv4 range for the entire VPC, Akamai's VPC design allows users to configure multiple RFC1918 ranges through the use of subnets. This has the benefit of segmenting services into distinct networks and can be useful when migrating or combining existing networking environments so that there are no changes to routing or static IPs. These subnets can isolate various functionality of an application (such as separating public front-end services from private back-end services) or separate out a production environment from staging or development. - -Routing between subnets on a VPC is configured automatically. By default, all Compute Instances on a VPC can communicate with any other instance on that VPC, regardless of which subnet the other instance is assigned to use. - -## Compatible with Cloud Firewalls - -If a Compute Instance is assigned to a Cloud Firewall, firewall rules that limit access and filter traffic will be applied to the public interface as well as the VPC interface. This means that private traffic between Compute Instances within a VPC will be filtered by the Cloud Firewall. - -## Availability - -VPCs are available in: Amsterdam (Netherlands), Chennai (India), Chicago IL (USA), Jakarta (Indonesia), Los Angeles CA (USA), Miami FL (USA), Milan (Italy), Paris (France), Osaka (Japan), São Paulo (Brazil), Seattle WA (USA), Stockholm (Sweden), and Washington DC (USA). - -## Pricing - -VPCs are provided at no additional cost. Additionally, communication across your private VPC network does not count against your [monthly network transfer usage](/docs/products/platform/get-started/guides/network-transfer/). - -## Difference Between Private Network Options (VPCs, VLANs, and Private IPs) - -Both [VLANs](/docs/products/networking/vlans/) and [Private IP addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#types-of-ip-addresses) are private networking services offered by Akamai cloud computing. VLANs operate on layer 2 of the OSI model whereas VPCs and Private IPs operate on layer 3. While this allows VLANs to use any layer 3 protocol, it also means that there are limitations to routing and other layer 3 features. Since VPC is on layer 3 and uses the IP (Internet Protocol), IP addressing and IP routing features are built-in. - -- **Latency:** All 3 services offer extremely low latency. - -- **Cost:** There is no charge for VPCs, VLANs, and private IP addresses. The only costs are related to the associated Compute Instance service and any outbound traffic over the public IP addresses. - -- **Network Isolation:** Both VPC and VLANs offer true network isolation from other tenants within the same data center. Private IP addresses are accessible by default from any other instance in the same region, provided that instance also has a private IP address. This is because they all use the same `192.168.128.0/17` range. - -- **Multiple Subnets:** Each VPC can have multiple subnets. Each VLAN can only be configured with IP addresses from one specified range. - -## Technical Specifications - -- Users can create up to 10 VPCs per data center (by default). - -- Each VPC can have up to 10 subnets. - -- Compute Instances can join a VPC by specifying the VPC as a network interface. Other services, such as NodeBalancers, LKE clusters, and Managed Databases cannot join a VPC at this time. - -- VPCs can only be deployed to a single data center. As such, Compute Instances within different data centers cannot belong to the same VPC. - -- A VPC interface can be private or have public internet access through a 1:1 NAT. - -## Additional Limits and Considerations - -- VPCs peering is not supported (within the same data center or different data centers). - -- While VPC traffic is isolated from other cloud tenants, it is not encrypted. - -- IPv6 addresses are not available on a VPC interface. - -- VPC IP addresses cannot use [IP Sharing](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#configuring-ip-sharing) or [IP Transfer](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#transferring-ip-addresses) features. - -- To facilitate routing between different subnets on the same VPC, configure the VPC network interface as the primary interface. - -- Network traffic across a private VPC network does not count against your [monthly network transfer usage](/docs/products/platform/get-started/guides/network-transfer/). The network transfer allowance for Compute Instances configured on VPCs still counts towards the _global network transfer pool_ on your account. - -- [Metadata service](/docs/products/compute/compute-instances/guides/metadata/) over a VPC is supported, but cloud-init isn't supported at this time (planned for a future release). \ No newline at end of file diff --git a/docs/products/networking/vpc/developers/index.md b/docs/products/networking/vpc/developers/index.md deleted file mode 100644 index 50c72081b8a..00000000000 --- a/docs/products/networking/vpc/developers/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for VPC" -description: "Use the Linode API v4 and the Linode CLI to create and manage VPCs." -published: 2024-01-09 -tab_group_main: - weight: 40 ---- - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [create and manage your Linode resources](/docs/products/tools/cli/get-started/). diff --git a/docs/products/networking/vpc/feature.svg b/docs/products/networking/vpc/feature.svg deleted file mode 100644 index 09dc2d87c58..00000000000 --- a/docs/products/networking/vpc/feature.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/docs/products/networking/vpc/get-started/index.md b/docs/products/networking/vpc/get-started/index.md deleted file mode 100644 index 496fbd40dff..00000000000 --- a/docs/products/networking/vpc/get-started/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with VPC" -description: "A holistic view on determining your application's cloud networking infrastructure, creating a VPC, and assigning your instances to a VPC." -published: 2024-01-30 -keywords: ['networking','vpc','private network'] -tags: ["security", "networking", "linode platform"] -tab_group_main: - weight: 20 ---- - -## Determine Your Application's Networking Architecture - -Consider your application's requirements and determine how your application should communicate both internally and over the public internet. As part of this, review the range of options available for private and public network connectivity on the Linode platform: VPCs, VLANs, Private IPv4 addresses, and Public IPv4/IPv6 addresses. When choosing VPC for private networking (the most common product), determine if segmenting the VPC into multiple subnets is needed. Consider the number of IP addresses you need now (and might need in the future) per subnet and decide on an acceptable CIDR block as outlined with [Valid IPv4 Ranges for Subnets](/docs/products/networking/vpc/guides/subnets/#valid-ipv4-ranges). - -## Create a VPC - -Once you've determined that a VPC is needed, you can create it directly in Cloud Manager using the Create VPC form or by deploying a new Compute Instance and entering a new VPC. During this process, you'll need to define the following parameters: - -- **Region:** The data center where the VPC is deployed. Since VPCs are region-specific, only Compute Instances within that region can join the VPC. -- **Label:** A string to identify the VPC. This should be unique to your account. -- **Subnet Label:** A string to identify the subnet, which should be unique compared to other subnets on the same VPC. -- **Subnet CIDR range:** The range of IP addresses that can be used by Compute Instances assigned to this subnet. - -While at least 1 subnet must be created, you can create up to 10 subnets per VPC. - -Review the [Create a VPC](/docs/products/networking/vpc/guides/create/) guide for complete instructions. - -## Assign Compute Instances - -You can assign existing Compute Instances to a VPC or, more commonly, deploy a new Compute Instance to the VPC. For further instructions, review the [Assign a Compute Instance to a VPC](/docs/products/networking/vpc/guides/assign-services/) page. - -- **New Compute Instance:** When creating a Compute Instance, there is an option to add it to an existing VPC. The VPC must already be created in the same data center as selected for the Compute Instance. When assigning a new instance to a VPC, you must also select the subnet that the instance should belong to. By default, an IPv4 address from the subnet's CIDR range will be assigned to the instance, though you can opt to manually enter an IP address. Additionally, public IPv4 connectivity won't be configured by default, though an option is present to configure 1:1 NAT on the VPC interface. - -- **Existing Compute Instance:** If you need to add an existing Compute Instance to a VPC, you can do so from the VPC page or by directly editing that instance's Configuration Profile. \ No newline at end of file diff --git a/docs/products/networking/vpc/guides/_index.md b/docs/products/networking/vpc/guides/_index.md deleted file mode 100644 index 0aa8190c906..00000000000 --- a/docs/products/networking/vpc/guides/_index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for VPCs" -description: "A collection of guides to help instruct you how to use VPCs." -published: 2024-01-09 -modified: 2024-02-14 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Getting Started with VPCs](/docs/products/networking/vpc/get-started/): An introduction to VPCs, including how to create and administer them within Cloud Manager. - -- [Create a VPC](/docs/products/networking/vpc/guides/create/): Outlines how to create a VPC using Cloud Manager, Linode CLI, and Linode API. - -- [Manage VPCs](/docs/products/networking/vpc/guides/manage-vpcs/): Instructions on viewing, editing, and deleting VPCs. - -- [Manage Subnets](/docs/products/networking/vpc/guides/subnets/): Information about VPC subnets and instructions on creating, editing, and deleting them. - -- [Assign a Compute Instance to a VPC](/docs/products/networking/vpc/guides/assign-services/): Learn how to add Compute Instances to a VPC. - -## Going Further - -- [Configure a Forward Proxy to Enable Internet Access within a VPC](/docs/products/networking/vpc/guides/forward-proxy-for-vpc/): This guide explains how to use a forward proxy to securely enable public internet access on Compute Instances located entirely behind a VPC. \ No newline at end of file diff --git a/docs/products/networking/vpc/guides/assign-services/create-instance-vpc.jpg b/docs/products/networking/vpc/guides/assign-services/create-instance-vpc.jpg deleted file mode 100644 index de2679a55dc..00000000000 Binary files a/docs/products/networking/vpc/guides/assign-services/create-instance-vpc.jpg and /dev/null differ diff --git a/docs/products/networking/vpc/guides/assign-services/index.md b/docs/products/networking/vpc/guides/assign-services/index.md deleted file mode 100644 index 6bb057d4b0c..00000000000 --- a/docs/products/networking/vpc/guides/assign-services/index.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: "Assign a Compute Instance to a VPC" -description: "Learn how to add Compute Instances to subnets on Akamai's VPC solution." -published: 2024-01-30 -modified: 2024-02-14 ---- - -VPCs enable private communication between Compute Instances within a data center and are a critical component of many application architectures. Follow the instructions within this guide to add both new and existing Compute Instances to a VPC. - -There are three main ways to assign a Compute Instance to a VPC: - -- [Assign a new Compute Instance to a VPC through the Compute Instance creation workflow](#assign-a-new-instance) -- [Use the VPC management workflows to assign an existing Compute Instance](#assign-existing-instance-with-vpc-management-workflows) -- [Manually edit a Compute Instance's network interfaces to assign a VPC](#manually-edit-network-interfaces) - -## Considerations - -- VPCs, along with VLANs and the public internet, are configured as network interfaces within a Compute Instance's configuration profile. These network interfaces are configured automatically when creating a Compute Instance with a VPC or when interacting with the VPC directly to assign and remove existing Compute Instances. You can also edit the Configuration Profile directly to manually configure these network interfaces to suit specific use cases. Manually editing a Configuration Profile on a Compute Instance is typically the preferred way to assign a VPC to an existing instance. - -- VPC resources requiring public internet access should be configured as a 1:1 NAT or use a [forward proxy](/docs/products/networking/vpc/guides/forward-proxy-for-vpc/). It is not recommended to configure a separate network interface with public internet access (in addition to the VPC interface). - -- Compute Instances can only be assigned to a single subnet of a single VPC, though they can communicate with other instances on any subnet within the same VPC. Multiple VPC interfaces on an instance are not allowed. - -- If an existing Compute Instance is added or removed from a VPC, the instance needs to be rebooted for the changes to go into effect. - -## Configuration Options - -When assigning both new and existing Compute Instances to a VPC, the following settings can be configured: - -- **VPC:** Multiple VPCs can be configured in a data center, but each Compute Instance can only be assigned to a single VPC. - -- **Subnet:** When a Compute Instance is assigned to a VPC, it also needs to be assigned a subnet. A subnet defines a collection of related instances and has its own RFC1918 IPv4 range (in CIDR format). - -- **VPC IPv4 address:** This is the IPv4 address of the Compute Instance within the private network of the subnet. It must be within the CIDR range defined in the subnet. The address can be automatically generated or manually entered. - - When manually entering the IP address, do not use the first two or last two IP addresses within the subnet's defined IPv4 range. These are non-host IP addresses and are set aside for routing and other features. - -- **Public internet connectivity:** By default, Compute Instances with a VPC cannot communicate over the public internet. To facilitate internet access, enable the *Assign a public IPv4 address for this Linode* option, which configures a 1:1 NAT on the VPC interface. This enables routing internet traffic over your Compute Instance's public IP addresses. - -- **Additional IPv4 ranges:** You can assign additional IPv4 ranges that can be used to reach this Compute Instance and/or the services running on it. For example, you may wish to assign additional IPv4 ranges to directly expose Docker containers to the VPC. - -These settings are referenced in the workflows below. - -## Assign a New Compute Instance to a VPC {#assign-a-new-instance} - -When creating a new Compute Instance, you have the option to assign it to an existing VPC. For complete instructions, review the **Assign to a VPC** section of the [Create a Compute Instance](/docs/products/compute/compute-instances/guides/create/) guide for instructions. - -If a Compute Instance is created with a VPC, the VPC is automatically enabled on the `eth0` network interface. No other network interfaces are configured. An exception to that is if the Compute Instance is also configured with a **Private IP** address (which is not recommended). In this case, the `eth1` network interface is configured as _Public Internet_. - -![Screenshot of the VPC section of the Create Linode screen in Cloud Manager](create-instance-vpc.jpg) - -## Use the VPC Management Workflows to Assign an Existing Compute Instance {#assign-existing-instance-with-vpc-management-workflows} - -VPCs have their own Cloud Manager workflows and API endpoints that allow you to manage the Compute Instances that are assigned to each subnet on a VPC. - -1. Navigate to the **Subnets** section of a VPC. See [View Subnets](/docs/products/networking/vpc/guides/subnets/#view-subnets). - -1. Locate the subnet you wish to use, expand the corresponding ellipsis menu, and click **Assign Linodes**. This opens the **Assign Linodes to subnet** panel. - -1. Within the **Linodes** dropdown menu, select the instance you would like to add to the VPC on the selected subnet. - -1. By default, an IPv4 address will be automatically generated for the instance on the subnet's defined CIDR range. If you want to manually assign an IP address, uncheck the **Auto-assign a VPC IPv4 address for this Linode** option and enter your custom IPv4 address. This address must still be within the subnet's IP range. - -1. Click the **Assign Linode** button to add the instance to the subnet. - -1. You can review and change the list of all instances assigned to that subnet. You can also assign additional IPv4 ranges. Once you are satisfied with your changes, click the **Done** button. - -1. Restart each added Compute Instance to automatically configure the VPC interface on the system. - -When assigning a Compute Instance to a VPC in this way, the VPC network is automatically configured on the `eth0` network interface. In addition, `eth1` is configured to access the public internet. Using a VPC network interface alongside the public internet network interface is not recommended. Consider editing your instance's configuration profile to remove this interface. - -## Manually Edit a Compute Instance's Network Interfaces to Assign a VPC {#manually-edit-network-interfaces} - -Every Compute Instance can have up to three network interfaces (Public, VPC, and VLAN), which are configurable within the instance's [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/). - -If you wish for an instance to be configured on a VPC, the _VPC_ option needs to be selected on at least one interface. In most cases, a VPC should be configured on the first network interface (`eth0`). Configuring a VPC on other interfaces prevent the instance from communicating with other subnets in the same VPC. For more details regarding configuring network interfaces, review the [Configuration Profile Settings](/docs/products/compute/compute-instances/guides/configuration-profiles/#settings). - -1. Within [Cloud Manager](https://cloud.linode.com), view the Configuration Profiles for your desired Compute Instance. See [View Configuration Profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/#view-configuration-profiles). - -1. Within the **Configurations** table, locate the configuration profile you wish to modify and click the corresponding **Edit** button, which may also appear within the **ellipsis** menu. This displays the **Edit Configuration** form. In most cases, there should be only one configuration profile. - -1. Find the **Network Interfaces** section of the editing pane. - -1. Determine which interface you wish to configure for the VPC and select the _VPC_ setting from that interface's dropdown menu. In most cases, you should configure the VPC on `eth0` and delete all other interfaces. - -1. Next, configure the VPC, subnet, and IP address for this interface. - - - **VPC:** To assign this instance to a VPC, select the VPC from the **VPC** dropdown menu. If you do not yet have a VPC in the selected data center, click the **Create a VPC** button and follow the instructions on the [Create a VPC](/docs/products/networking/vpc/guides/create/) guide. - - - **Subnet:** An instance can be assigned to a single subnet, which lets you further segment traffic and services within a VPC. Select the desired subnet within the **Subnet** dropdown menu. - - - **Auto-Assign IPv4 address:** By default, an IPv4 address will be automatically generated for the instance on the subnet’s defined CIDR range. If you want to manually assign an IP address, uncheck the **Auto-assign a VPC IPv4 address for this Linode** option and enter your custom IPv4 address. This address must still be within the subnet’s IP range. - - - **Public IPv4 address:** If you wish to enable public internet access on this new instance, check the **Assign a public IPv4 address for this Linode** option. By default, this is unchecked and you will not be able to access the internet from this instance. - - - **Additional IPv4 ranges:** You can assign additional IPv4 ranges that can be used to reach this Compute Instance and/or the services running on it. For example, you may wish to assign additional IPv4 ranges to directly expose Docker containers to the VPC. - - ![Screenshot of a VPC network interface in the Configuration Profile of a Compute Instance](vpc-network-interface.jpg) - -1. Verify that _auto-configure networking_ option [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) under **Filesystem/Boot Helpers** is enabled. - -1. Once finished, click **Save Changes**. - -1. Reboot the Compute Instance so that the new network interfaces are configured within the instance's internal Linux system. \ No newline at end of file diff --git a/docs/products/networking/vpc/guides/assign-services/vpc-network-interface.jpg b/docs/products/networking/vpc/guides/assign-services/vpc-network-interface.jpg deleted file mode 100644 index ca8de7a8c09..00000000000 Binary files a/docs/products/networking/vpc/guides/assign-services/vpc-network-interface.jpg and /dev/null differ diff --git a/docs/products/networking/vpc/guides/create/index.md b/docs/products/networking/vpc/guides/create/index.md deleted file mode 100644 index 5e1a445fbfe..00000000000 --- a/docs/products/networking/vpc/guides/create/index.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: "Create a VPC" -title_meta: "Create a VPC on the Linode Platform" -description: "Learn how to create a new Compute Instance, including choosing a distribution, region, and plan size." -published: 2024-01-09 -keywords: ["getting started", "deploy", "linode", "linux"] ---- - -This guide walks you through creating a VPC through Cloud Manager, Linode CLI, and Linode API. - -1. [Get Started](#get-started) -1. [Set the Basic Parameters](#set-the-basic-parameters) -1. [Define Subnets](#define-subnets) -1. [Deploy the VPC](#deploy-the-vpc) -1. [Next Steps](#next-steps) - -## Get Started - -Open the Create Form in Cloud Manager or start entering your Linode CLI or Linode API command. - -{{< tabs >}} -{{< tab "Cloud Manager" >}} -Log in to [Cloud Manager](https://cloud.linode.com/), click the **Create** dropdown menu on the top bar, and select *VPC*. This opens the **Create VPC** form. -{{< /tab >}} -{{< tab "Linode CLI" >}} -Within your terminal, paste the command provided below. If you do not have the Linode CLI, review the [Install and Configure the Linode CLI](/docs/products/tools/cli/guides/install/) guide. **Before submitting the request, read through the rest of this document.** - -```command -linode-cli vpcs create \ - --description "An optional description" \ - --label vpc-example \ - --region us-east \ - --subnets.label subnet-example \ - --subnets.ipv4 10.0.1.0/24 -``` -{{< /tab >}} -{{< tab "Linode API" >}} -Within your terminal, enter the API curl request below. Make sure to properly paste in or reference your [API token](/docs/products/platform/accounts/guides/manage-api-tokens/). For a complete API reference, see the [VPC API endpoints](/docs/api/vpcs/) documentation. **Before submitting the request, read through the rest of this document.** - -```command -curl https://api.linode.com/v4/vpcs \ - -H "Authorization: Bearer $TOKEN" \ - -H "Content-Type: application/json" \ - -X POST -d '{ - "description": "An optional description", - "label": "vpc-example", - "region": "us-east", - "subnets": [ - { - "label": "subnet-example", - "ipv4": "10.0.1.0/24" - } - ] - }' -``` -{{< /tab >}} -{{< /tabs >}} - -## Set the Basic Parameters - -Select the region and enter a label and description for the VPC. - -- **Region:** Select the data center where the VPC should be deployed. Since VPCs do not span multiple data centers, only services within the selected data center can join the VPC. For a list of regions that support VPCs, review [VPCs > Availability](/docs/products/networking/vpc/#availability). - -- **Label:** Enter an alphanumeric string (containing only letters, numbers, and hyphens) to identify the VPC. A good label should provide some indication as to the purpose or intended use of the VPC. - -- **Description:** Adding tags gives you the ability to categorize your Linode services however you wish. If you're a web development agency, you could add a tag for each client you have. You could also add tags for which services are for development, staging, or production. - -## Define Subnets - -Subnets partition out the VPC into smaller networks, allowing groups of related systems to be separated from other functions of your applications or workloads. At least one subnet is required, though up to 10 can be created for each VPC. - -- **Subnet Label:** Enter an alphanumeric string (containing only letters, numbers, and hyphens) to identify the subnet. It should be unique among other subnets in the same VPC and should provide an indication as to its intended usage. - -- **Subnet IP Address Range:** VPC subnet ranges must be in the RFC1918 IPv4 address space designated for private networks. That said, it cannot overlap with the `192.168.128.0/17` range set aside for [Private IP addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#types-of-ip-addresses) on Compute Instances. - -Follow the instructions below to create multiple subnets. You are also able to add, edit, and remove subnets from the VPC after it has been created. - -{{< tabs >}} -{{< tab "Cloud Manager" >}} -For each additional subnet you wish to create, press the **Add Another Subnet** button within the **Subnets** section. This adds another set of subnet fields to the form. -{{< /tab >}} -{{< tab "Linode CLI" >}} -```command -... - --subnets.label backend-example-subnet \ - --subnets.ipv4 10.0.4.0/24 \ - --subnets.label frontend-example-subnet \ - --subnets.ipv4 10.0.5.0/24 -... -``` -{{< /tab >}} -{{< tab "Linode API" >}} -```command -... - "subnets": [ - { - "label": "backend-example-subnet", - "ipv4": "10.0.4.0/24" - }, - { - "label": "frontend-example-subnet", - "ipv4": "10.0.5.0/24" - } - ] -... -``` -{{< /tab >}} -{{< /tabs >}} - -## Deploy the VPC - -Once all fields have been entered, you can click the **Create VPC** button in Cloud Manager or run the Linode CLI or Linode API command. If you are using Cloud Manager, you are taken to the VPC's details page where you can view and edit the VPC and its subnets. - -## Next Steps - -Once the VPC has been created, the next step is to start adding services to it. Currently, only Compute Instances can be added to the VPC. - -- **Add an Existing Compute Instance to the VPC:** Review the [Assign Existing Compute Instance to a VPC Subnet]() guide. -- **Add a new Compute Instance to the VPC:** To add a new instance, follow the [Create a Compute Instance](/docs/products/compute/compute-instances/guides/create/) workflow and complete the VPC section. \ No newline at end of file diff --git a/docs/products/networking/vpc/guides/forward-proxy-for-vpc/index.md b/docs/products/networking/vpc/guides/forward-proxy-for-vpc/index.md deleted file mode 100644 index f414130aee9..00000000000 --- a/docs/products/networking/vpc/guides/forward-proxy-for-vpc/index.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -slug: forward-proxy-for-vpc -title: "Configure a Forward Proxy to Enable Internet Access within a VPC" -description: "This guide explains how to use a forward proxy to securely enable public internet access on Compute Instances located entirely behind a VPC." -published: 2024-02-14 -keywords: ['forward proxy vpc','configure forward proxy firewall','access internet from vpc','how to use forward proxy'] -aliases: ['/guides/forward-proxy-for-vpc/'] ---- - -Placing sensitive computing resources inside of a [*Virtual Private Cloud* (VPC)](https://en.wikipedia.org/wiki/Virtual_private_cloud) helps limit exposure and protect those systems. However, this also means it is impossible for these servers to directly access the internet without additional infrastructure. This limitation can be resolved through the use of a forward proxy, which acts as a gateway between the VPC and the public internet. This guide explains how to use a forward proxy to enable public internet access for devices within a VPC. It also demonstrates how to secure the VPC using an Akamai Cloud Firewall and how to provide applications with proxy access. - -## Methods of Enabling Internet Access for VPC Resources - -A server within a VPC cannot access other networks, or the internet, without additional configuration. To use the public internet, a server must either enable *Network Address Translation* (NAT) or send traffic to a forward proxy. - -### NAT - -A *One-to-one NAT* (1:1 NAT), also known as a *Basic NAT*, grants full internet access to the device. It connects two IP networks with different addressing schemes at the network layer. A 1:1 NAT maps an internal address and port to an external address and port. This technique allows the device to present a public IP address to the wider network while using a VPC-based address inside the private network. - -NAT modifies the source and destination addresses in the IP header to correspond to the next address space. When sending a packet from the VPC to a different network, it swaps out the internal address for the public address. It reverses this process when traffic moves in the opposite direction. There are many variations of NAT, but the 1:1 type is the simplest and most common. It recalculates the IP address and any associated checksums, while leaving the rest of the packet intact. For more detailed information about 1:1 NAT, see the [NAT page on Wikipedia](https://en.wikipedia.org/wiki/Network_address_translation). - -### Forward Proxy - -A proxy is a general term for any intermediate device or application lying between a client and the target server. A forward proxy is a boundary point between the internet and a private network. It is used to retrieve resources for clients from the wider network. In addition to validating client requests, it processes packets and routes them towards their destinations. A forward proxy often changes the source or destination address, but it can also modify other fields. It keeps track of the active requests, responses, destinations, and sources, allowing it to match responses to the original client. - -A proxy greatly enhances security by hiding some or all of the original addressing information. To the destination server, the request appears to come from the forward proxy. All details about the originating VPC remain hidden. Proxies can also be configured with traffic management policies. These policies can drop or filter unwanted packets, and limit the rate of incoming and outgoing packets. Some forward proxies also inspect packets to implement data protection and threat prevention. A forward proxy is typically used with a cloud or server-based firewall for extra security. - -In contrast to NAT, a forward proxy works at the application layer. The proxy information is configured as part of the web server configuration, similar to a website. While NAT is self-contained, a forward proxy is part of a networking solution. A device on the VPC first transmits an outbound packet to a forward proxy. The proxy analyzes the packet and redirects it towards its ultimate destination. A common architecture is to use a 1:1 NAT and a forward proxy together. The forward proxy uses NAT to bridge multiple address spaces. - -## Configuration Steps - -Here are the basic steps needed to configure a forward proxy on a Compute Instance and then utilize that forward proxy on other instances within a VPC. - -1. **[Deploy *at least two* Compute Instances](#deploy-compute-instances)** to the same data center. Connect all systems to the same VPC. Designate one system that will act as the forward proxy and connect it to the public internet or a different private network. - -1. **[Configure a Firewall](#configure-a-firewall-for-the-forward-proxy-instance)** that will protect the forward proxy instance. This guide uses our free Cloud Firewall service. - -1. **[Install and Configure Apache](#install-apache-and-configure-it-as-a-forward-proxy)** on the Compute Instance you've designated to act as the forward proxy. - -1. **[Test Connectivity through the Forward Proxy](#test-connectivity-through-the-forward-proxy)** on one of the other Compute Instances within the same VPC. - -Continue reading for detailed instructions on each of these steps. - -## Deploy Compute Instances - -To get started, use the Akamai Cloud Compute platform to deploy multiple Compute Instances within a VPC. - -1. Deploy two or more Compute Instances to the same region and the same VPC. This guide uses Ubuntu 22.04 as the distribution image, but the instructions are generally applicable to other Linux distributions (with some modifications). See [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) for additional instructions on how to deploy Linode Compute Instances. - - - **Forward Proxy Instance**: On the Compute Instance designated as the *forward proxy*, configure this instance with a 1:1 NAT by selecting the **Assign a public IPv4 address for this Linode** option. This enables your instance to connect to the internet. Additional NAT-specific configuration is not required. In later steps, we'll need to know the IP address configured for the VPC interface. You can find this information later or manually set the VPC IPv4 address when creating the instance. To do this, uncheck the *Auto-assign a VPC IPv4 address* option and manually enter a valid IPv4 address from the defined subnet range. For example, if the subnet range is `10.0.2.0/24`, you can use `10.0.2.2` as IPv4 address. The last segment of the IPv4 address cannot be `1` or `255` as they are reserved. - - - **Other Instance(s)**: On each Compute Instance *other than the forward proxy*, do not check the **Assign a public IPv4 address for this Linode** option. When this remains deselected, the instances are created without public internet access. - - When creating these instances, *do not* enable the **Private IP** option under **Add-ons**. This is for an unrelated feature. - -1. For the VPC interface to be automatically configured within the internal system of each Compute Instance, [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) needs to enabled. This is the default setting for Compute Instances on new accounts so, in most cases, you can proceed without issues. If Network Helper is disabled, enable it on each Compute Instance and reboot each instance. - -1. Log in to each instance using [Lish](/docs/products/compute/compute-instances/guides/lish/) and test the connectivity to ensure the VPC has been configured properly. - - - Ping the private VPC IPv4 address of another instance. Each Compute Instance on the VPC should be able to ping the IP addresses of all other instances within that same VPC. - - - Ping an IP address or website of a system on the public internet. This ping should only be successful for the Compute Instance configured with 1:1 NAT (the forward proxy instance). - -## Configure a Firewall for the Forward Proxy Instance - -After configuring the VPC and forward proxy instance, add a cloud firewall to protect the network. It is important to configure a firewall to restrict inbound access to the proxy, while leaving outbound traffic unrestricted. An insecure and open proxy can expose the network inside the VPC to security threats and misuse. - -1. Create the Cloud Firewall in the same data center as your VPC. When doing so, assign the Cloud Firewall to the newly created forward proxy instance. - -1. Set the default **inbound policy** to *Drop*, leaving the default **outbound policy** as *Accept*. - -1. Add the following three *inbound* rules. No *outbound* rules should be configured. - - - **Allow proxy traffic** from other instances within the VPC: - - - **Label**: Set this to `VPC`. - - **Protocol**: Use `TCP`. - - **Ports**: Choose `Custom`, then set the **Custom Port Range** to `8080`. - - **Sources**: Select `IP / Netmask`. List all subnets within the VPC under **IP / Netmask**. - - **Action**: Set to `Accept`. - - Click **Add Rule** to save the configuration. - - - **Allow ICMP (ping) traffic** within the VPC: - - - **Label**: Choose `VPC-ICMP`. - - **Protocol**: Use `ICMP`. - - **Ports**: Leave this field blank. - - **Sources**: Select `IP/Netmask` and enter all VPC subnets using the **IP / Netmask** field. - - **Action**: Set to `Accept`. - - Click the **Add Rule** button. - - - **Allow SSH connections** from other instances in the VPC as well as any administrative systems: - - - **Label**: Set this to `ssh`. - - **Protocol**: Use `TCP`. - - **Ports**: Use `SSH (22)`. - - **Sources**: select `IP/Netmask`, entering all VPC subnets in the **IP / Netmask** field. Also include the IP addresses of any administrative servers used to connect to the forward proxy. Ensure these addresses are as specific as possible, for example, `Admin_Addr/32`. - - **Action**: Set to `Accept`. - - Click the **Add Rule** button. - -1. Save the changes to apply the new firewall rules. - -Test the new firewall restrictions. It should be possible to initiate an SSH connection to the forward proxy from one of the designated administrative addresses. However, all attempts from other addresses should be silently blocked. - -## Install Apache and Configure It as a Forward Proxy - -The next step is to configure a Compute Instance to act as the forward proxy. Ideally, this proxy server should have only one role, which is to act as a forward proxy. Other than the web server and proxy information, it should have minimal additional configuration. In most cases, other applications should not be installed. This reduces the possible attack surface of the proxy. - -This guide uses Apache as the forward proxy, though other HTTP proxy software can also be used. - -1. Log in to the Compute Instance you've designated as the forward proxy using [Lish](/docs/products/compute/compute-instances/guides/lish/) or [SSH](/docs/guides/connect-to-server-over-ssh/). - -1. Install the Apache software package, making sure to download the latest package lists first. - - ```command - sudo apt update -y && sudo apt install apache2 -y - ``` - -1. Enable the Apache modules that provide the forward proxy functionality. - - ```command - sudo a2enmod proxy proxy_http proxy_connect - ``` - -1. Create and edit an Apache configuration file to store the forward proxy settings. This should be located wherever Apache configuration files are stored within your system (such as the `/etc/apache2/sites-available` directory). - - ```command - sudo nano /etc/apache2/sites-available/fwd-proxy.conf - ``` - -1. Paste in the following example configuration, customizing these directives: - - - Replace {{< placeholder "10.0.2.2" >}} in the *Listen* directive with the internal VPC address of the forward proxy, using the format `IP_ADDRESS:8080` (such as `10.0.2.2:8080`). Do not use the public IP address. - - Replace {{< placeholder "10.0.2.0/24" >}} in the *Require* directive (within the *Proxy* group) with the VPC subnet range. Use the format `NETWORK_ADDR/MASK`. For example, to permit proxy service for the `10.0.2.0/24` subnet, include the line `Require ip 10.0.2.0/24`. Multiple subnets can be added using a space as the delimiter. - - ```file {title="/etc/apache2/sites-available/fwd-proxy.conf" lang="aconf"} - Listen {{< placeholder "10.0.2.2" >}}:8080 - - ServerAdmin webmaster@localhost - DocumentRoot /var/www/html - ErrorLog ${APACHE_LOG_DIR}/fwd-proxy-error.log - CustomLog ${APACHE_LOG_DIR}/fwd-proxy-access.log combined - ProxyRequests On - ProxyVia On - - Require ip {{< placeholder "10.0.2.0/24" >}} - - - ``` - -1. Set the owner of the file to `root:root` and set the correct file permissions: - - ```command - sudo chown root:root /etc/apache2/sites-available/fwd-proxy.conf - sudo chmod 0644 /etc/apache2/sites-available/fwd-proxy.conf - ``` - -1. Enable the Apache configuration file that was created in a previous step. - - ```command - sudo a2ensite fwd-proxy - ``` - -1. Restart the Apache server to activate the new configuration: - - ```command - sudo systemctl restart apache2 - ``` - -## Test Connectivity through the Forward Proxy - -All servers in the VPC can now utilize the forward proxy to access the internet. This is configured per application and the instructions depend on that particular application. - -### Package Management - -A common use case is to enable internet access for package management (such as through the apt tool). This allows administrators to install updates on the instances inside the VPC. Follow the steps below to enable `apt` connectivity on the VPC nodes and use `curl`. - -1. Log in to one of the servers in the VPC. To access the node, use the LISH console. Alternatively, log in to the forward proxy from one of the designated administrative addresses, then establish a new SSH connection to the target instance. - -1. Add the following line to the `apt` proxy configuration, replacing {{< placeholder "10.0.2.2" >}} with the internal VPC IP address of the forward proxy: - - ```command - echo 'Acquire::http::proxy "http://{{< placeholder "10.0.2.2" >}}:8080";' > /etc/apt/apt.conf.d/proxy.conf - ``` - -1. Attempt to update the local packages using `apt update`: - - ```command - sudo apt update - ``` - - The command should now function correctly, using the proxy as a forwarding agent. - -### cURL - -To transmit `curl` requests, append the `--proxy` parameter to the request, again replacing {{< placeholder "10.0.2.2" >}} with the internal VPC IP address of the forward proxy: - -```command -curl --proxy {{< placeholder "10.0.2.2" >}}:8080 http://example.com -``` \ No newline at end of file diff --git a/docs/products/networking/vpc/guides/manage-vpcs/index.md b/docs/products/networking/vpc/guides/manage-vpcs/index.md deleted file mode 100644 index 2f982b092eb..00000000000 --- a/docs/products/networking/vpc/guides/manage-vpcs/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Manage VPCs" -description: "Instructions on viewing, editing, and deleting VPCs on Akamai's cloud computing platform" -published: 2024-01-30 ---- - -## View VPCs - -Log in to [Cloud Manager](https://cloud.linode.com/) and select **VPC** in the sidebar. If any VPCs exist on your account, they are listed on this page. - -![Screenshot of the VPC page in Cloud Manager](vpc-list.jpg) - -Each VPC is listed along with the region it is located within, its ID, the number of subnets, and the number of Compute Instances that are assigned. - -## Review and Edit a VPC - -Navigate to the **VPCs** page in Cloud Manager and locate the VPC you wish to edit. See [View VPCs](#view-vpcs). Click the name of the VPC to be taken to its details page. - -![Screenshot of the VPC summary in Cloud Manager](vpc-details.jpg) - -This displays the summary of the VPC along with a list of subnets within the VPC. To edit the VPC label or description, click the **Edit** button within the *Summary* section. The data center assignment cannot be changed. Once a VPC has been created, you cannot move it to a different data center. - -## Create a VPC - -To add a new VPC on your account, follow the [Create a VPC](/docs/products/networking/vpc/guides/create/) instructions. - -## Delete a VPC - -A VPC can be deleted using the **Delete** button next to the VPC you wish to delete on the main **VPC** page. It can also be deleted when viewing that VPCs details page by clicking the **Delete** button within the _Summary_ section. - -Only a VPC without any Compute Instances assigned can be deleted. Review the [Remove Compute Instances from a VPC]() workflow if any Compute Instances are currently assigned. \ No newline at end of file diff --git a/docs/products/networking/vpc/guides/manage-vpcs/vpc-details.jpg b/docs/products/networking/vpc/guides/manage-vpcs/vpc-details.jpg deleted file mode 100644 index 7d2a17faac6..00000000000 Binary files a/docs/products/networking/vpc/guides/manage-vpcs/vpc-details.jpg and /dev/null differ diff --git a/docs/products/networking/vpc/guides/manage-vpcs/vpc-list.jpg b/docs/products/networking/vpc/guides/manage-vpcs/vpc-list.jpg deleted file mode 100644 index f6cea34d647..00000000000 Binary files a/docs/products/networking/vpc/guides/manage-vpcs/vpc-list.jpg and /dev/null differ diff --git a/docs/products/networking/vpc/guides/subnets/create-subnet.jpg b/docs/products/networking/vpc/guides/subnets/create-subnet.jpg deleted file mode 100644 index 49a70f5fbca..00000000000 Binary files a/docs/products/networking/vpc/guides/subnets/create-subnet.jpg and /dev/null differ diff --git a/docs/products/networking/vpc/guides/subnets/index.md b/docs/products/networking/vpc/guides/subnets/index.md deleted file mode 100644 index 3c292afb76a..00000000000 --- a/docs/products/networking/vpc/guides/subnets/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Manage VPC Subnets" -description: "Learn how to view, edit, and delete subnets within Akamai's VPC solution." -published: 2024-01-30 ---- - -A VPC contains one or more _subnets_, which are networks within the VPC whose services all share the same IPv4 CIDR range. Just like VPCs, subnets are restricted to a single data center. Multiple subnets can be added to isolate services that are used for certain functionality of an application (like front end and back-end services) or can segment a VPC and its attached services into different environments (such as development, staging, and production). - -## Subnet Components - -- **Subnet Label:** An alphanumeric string (containing only letters, numbers, and hyphens) used to identify the subnet. It should be unique among other subnets in the same VPC and should provide an indication as to its intended usage. - -- **Subnet IP Address Range:** VPC subnet ranges must be in the RFC1918 IPv4 address space designated for private networks. That said, it cannot overlap with the `192.168.128.0/17` range set aside for [Private IP addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#types-of-ip-addresses) on Compute Instances. - -- **Assigned Services:** Each subnet can have multiple services assigned to it. These services can communicate with others in the same subnet, but are not able to communicate outside the subnet unless they belong to another subnet or have an interface configured for the public internet. - -## Considerations - -- Up to 10 subnets can be created on a VPC. -- A subnet is located within a single data center. -- Each subnet can have at most one IPv4 CIDR block. Review [Valid IPv4 Ranges](#valid-ipv4-ranges). -- Each service assigned to a subnet must have a unique IPv4 address in the defined range. - -## Valid IPv4 Ranges for a Subnet {#valid-ipv4-ranges} - -When defining an IPv4 range for a subnet, use a CIDR block within the [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918) specification that can accommodate the number of instances you anticipate being assigned to the subnet. Your subnet must be within the following blocks: - - - 10.0.0.0/8 - - 172.16.0/12 - - 192.168.0.0/16 (excluding 192.168.128.0/17 which is reserved for the [private IP address](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) feature) - -## View Subnets - -1. View the [VPCs](https://cloud.linode.com/vpcs) page in Cloud Manager. See [View VPCs](/docs/products/networking/vpc/guides/manage-vpcs/#view-vpcs). - -1. Locate and click the name of the VPC you wish to inspect. This displays the details page for that VPC. - -1. Review the **Subnets** section to view all of the subnets on the VPC. - -![](subnet-details.jpg) - -Each subnet is listed alongside its defined CIDR block and the number of services assigned. Subnets can be expanded to view all services assigned to that particular subnet. These services are listed alongside their assigned IPv4 address and any firewalls that are applied to that interface. - -## Add a Subnet - -Up to 10 subnets can be added to each VPC. - -1. Navigate to the **Subnets** section of a VPC. See [View Subnets](#view-subnets). - -1. Click the **Create Subnet** button. This opens the **Create Subnet** panel. - - ![](create-subnet.jpg) - -1. Enter a unique label and IP address range for the subnet. - -1. Click the **Creat Subnet** button. - -## Edit a Subnet's Label - -Once a subnet has been created, only its label can be edited. You cannot modify the CIDR block. - -1. Navigate to the **Subnets** section of a VPC. See [View Subnets](#view-subnets). - -1. Locate the subnet you wish to edit, expand the corresponding ellipsis menu, and click the **Edit** option. This opens the **Edit Subnet** panel. - -1. Modify the label and click **Save**. - -## Assign a Service to a Subnet - -Review the [Assign a Compute Instance to a VPC](/docs/products/networking/vpc/guides/assign-services/) guide. - -## Remove a Service from a Subnet - -It is possible to remove a Compute Instance from a subnet, though the instance needs to be powered off to do so. Follow the instructions below to power off and remove a Compute Instance. - -1. Navigate to the **Subnets** section of a VPC. See [View Subnets](/docs/products/networking/vpc/guides/subnets/#view-subnets). - -1. Locate the subnet that the service belongs to. - -1. Within the list of assigned services, locate the Compute Instance you wish to remove. - -1. If the instance is not already powered off, click the corresponding **Power Off** button. - -1. Once the instance is fully powered off, click the corresponding **Unassign Linode** button. - -Once the instance has been removed, you can power it back on or delete it. If you wish to continue using the Compute Instance, you should inspect the network interfaces within its [Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) to ensure it can operate as expected. \ No newline at end of file diff --git a/docs/products/networking/vpc/guides/subnets/subnet-details.jpg b/docs/products/networking/vpc/guides/subnets/subnet-details.jpg deleted file mode 100644 index 8a279a291d6..00000000000 Binary files a/docs/products/networking/vpc/guides/subnets/subnet-details.jpg and /dev/null differ diff --git a/docs/products/platform/_index.md b/docs/products/platform/_index.md deleted file mode 100644 index 43966035b3f..00000000000 --- a/docs/products/platform/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Platform -title_meta: Linode Platform Documentation -description: "A collection of product documentation for topics related to the Linode Platform." ---- diff --git a/docs/products/platform/accounts/_index.md b/docs/products/platform/accounts/_index.md deleted file mode 100644 index dd8dd08601c..00000000000 --- a/docs/products/platform/accounts/_index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Accounts -description: "Learn how to manage your Linode user account, including adding multiple users and adjusting their permissions" -published: 2022-11-21 -modified: 2022-11-23 -tab_group_main: - is_root: true - title: Overview - weight: 10 -aliases: ['/guides/platform/accounts/'] ---- - -A Linode account is your gateway to deploying and using Linode's products and services. If you're new to Linode, see the [Getting Started](/docs/products/platform/get-started/) guide to learn how to sign up for an account and deploy your first service. - -## Multiple Users - -Every account can have multiple users, each with their own permissions. This enables each person on your team (from account managers to developers) to use Linode with their own set of credentials and levels of access. See [Manage Users](/docs/products/platform/accounts/guides/manage-users/) and [Set User Permissions](/docs/products/platform/accounts/guides/user-permissions/). - -## Enhanced Security - -Protect your account with added security by using [two-factor authentication](/docs/products/platform/accounts/guides/2fa/) or logging in with a [third-party provider](/docs/products/platform/accounts/guides/third-party-authentication/). Each Linode account is also further protected by user-defined [security questions](/docs/products/platform/accounts/guides/user-security-controls/#security-questions) and [phone verification](/docs/products/platform/accounts/guides/user-security-controls/#phone-verification). \ No newline at end of file diff --git a/docs/products/platform/accounts/developers/index.md b/docs/products/platform/accounts/developers/index.md deleted file mode 100644 index a3fdd6c81fd..00000000000 --- a/docs/products/platform/accounts/developers/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Managing Linode Accounts" -description: "Learn how to use the Linode API to manage your accounts and users." -published: 2022-11-21 -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [Account View](/docs/api/account/#account-view) - -- [Account Update](/docs/api/account/#account-update) - -- [Account Cancel](/docs/api/account/#account-cancel) - -- [Users List](/docs/api/account/#users-list) - -- [Users Create](/docs/api/account/#user-create) - -- [Users View](/docs/api/account/#user-view) - -- [User Update](/docs/api/account/#user-update) - -- [User's Grants View](/docs/api/account/#users-grants-view) - -- [User's Grants Update](/docs/api/account/#users-grants-update) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [manage your account](/docs/products/tools/cli/guides/account/) diff --git a/docs/products/platform/accounts/faqs/_index.md b/docs/products/platform/accounts/faqs/_index.md deleted file mode 100644 index f6d548f5488..00000000000 --- a/docs/products/platform/accounts/faqs/_index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "FAQs" -title_meta: "FAQs for Creating and Managing Linode Accounts" -description: "Find quick answers to some of the most commonly asked account and login questions." -published: 2023-03-08 -modified: 2023-03-14 -tab_group_main: - weight: 60 ---- - -## I no longer remember my user password. How can I reset it? - -If you forget the password associated with your Linode user account, you can reset it using the [forgot password](https://login.linode.com/forgot/password) form. Once you enter your username and submit the form, a password reset is emailed to the user's email address. See [Reset Your User Password](/docs/products/platform/accounts/guides/reset-user-password/). - -If you instead need assistance resetting the root user on a Compute Instance, review the [Reset the Root Password on a Compute Instance](/docs/products/compute/compute-instances/guides/reset-root-password/) guide. - -## How can I recover the username associated with my Linode account? - -If you forget your username, you can recover it using the [forgot username](https://login.linode.com/forgot/username) form. Enter the email address you might have used during signup. If a username is associated with that address, a message containing the username(s) is sent to that email address. See [Recover a Lost Username](/docs/products/platform/accounts/guides/manage-users/#recover-a-lost-username). - -## I'm not receiving login-related emails, including username recovery, password reset, and one-time passcode emails. - -Login-related emails are sent to the email address of your user account (not to the billing contact email) and are sent from *support@linode.com*. If you are expecting an OTP, password reset, or user recovery email but not seeing one in your inbox, follow the steps below: - -- Search your inbox for the sender email (*support@linode.com*). -- Check your spam or junk folder for the email. -- If you are using a Microsoft email service (like Outlook.com, Microsoft 365, or Exchange), verify that *linode.com* is on the [safe senders list](https://support.microsoft.com/en-us/office/block-or-allow-junk-email-settings-48c9f6f7-2309-4f95-9a4d-de987e880e46#bkmk_safesenders). -- For Microsoft 365 (business users), you may need to review your [quarantined email messages](https://learn.microsoft.com/en-us/microsoft-365/security/office-365-security/quarantine-end-user?view=o365-worldwide). When viewing the [quarantine portal](https://protection.office.com/quarantine), search for your email address, locate the email you wish to receive, and release/allow that email. and release any emails from *linode.com*. - -If you are still not receiving this email, submit a support request through the [Can't sign in to your account?](https://www.linode.com/support/contact/) form. - -## 2FA is enabled on my account but I no longer have access to my 2FA device or application. How can I regain access to my Linode account? - -2FA (two-factor authentication) adds a layer of security to protect your account from unauthorized access. When switching devices or 2FA applications, it's important to [reset 2FA](/docs/products/platform/accounts/guides/2fa/#switching-to-a-new-device-or-2fa-provider) before decommissioning your original device. If you lose access to your device before resetting 2FA, use one of the scratch codes that were provided to when 2FA was first enabled. As a best practice, these should always be stored in a secure manner separate from your 2FA provider. If you do not have your scratch code, review the options available within the [2FA Recovery Procedures](/docs/products/platform/accounts/guides/2fa/#recovery-procedure). - -## I'd like to provide a developer with access to my Linode account. How should I do this? - -When working with an outside developer or web administrator, you will likely need to provide them access to your Linode account, your Compute Instances, or both. It's important to keep in mind the level of access they will need. You, as the account owner, are ultimately responsible for the services on the account and the bill that those services generate. Review the [Create an Account for a Developer to Work on Your Linode](/docs/products/platform/get-started/guides/developer-access/) guide for instructions on creating a user account for your developer, providing them with access to Compute Instances, and granting other types of access. \ No newline at end of file diff --git a/docs/products/platform/accounts/faqs/tab.svg b/docs/products/platform/accounts/faqs/tab.svg deleted file mode 100644 index 24b2df1f82a..00000000000 --- a/docs/products/platform/accounts/faqs/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/platform/accounts/feature.png b/docs/products/platform/accounts/feature.png deleted file mode 100644 index 1f0338ad565..00000000000 Binary files a/docs/products/platform/accounts/feature.png and /dev/null differ diff --git a/docs/products/platform/accounts/feature.svg b/docs/products/platform/accounts/feature.svg deleted file mode 100644 index 7235d543af0..00000000000 --- a/docs/products/platform/accounts/feature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/2fa/How_to_Keep_Your_Linode_Account_Safe_smg.jpg b/docs/products/platform/accounts/guides/2fa/How_to_Keep_Your_Linode_Account_Safe_smg.jpg deleted file mode 100644 index 97493692db2..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/How_to_Keep_Your_Linode_Account_Safe_smg.jpg and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/confirm-2fa-token.png b/docs/products/platform/accounts/guides/2fa/confirm-2fa-token.png deleted file mode 100644 index b7d26a5813b..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/confirm-2fa-token.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/index.md b/docs/products/platform/accounts/guides/2fa/index.md deleted file mode 100644 index 59536f37b4b..00000000000 --- a/docs/products/platform/accounts/guides/2fa/index.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: "Manage Two-Factor Authentication (2FA) on a User Account" -title_meta: "Manage 2FA on a Linode User Account" -description: "Secure your Linode user account from unauthorized access by enabled 2FA (two-factor authentication)." -published: 2022-06-27 -modified: 2023-08-15 -keywords: ["security", "Linode Cloud Manager", "token"] -tags: ["security","cloud manager"] -aliases: ['/guides/2fa/'] ---- - -2FA (*two-factor authentication*) increases the security of your Linode Cloud Manager account by requiring two forms of authentication: your password and an expiring token, also called an OTP (one-time passcode) or 2FA code. This follows the security principle of authenticating with something you *know* (a password) and something you *have* (the device used to generate the token). This additional layer of security reduces the risk that an unauthorized individual can gain access to your Linode Cloud Manager account. **Akamai highly recommends enabling 2FA**. - -{{< note type=warning noTitle=true >}} -Managing 2FA through Cloud Manager is only available if *Cloud Manager* is selected as the **Login Method**. If you select a third-party authentication provider (such as Google or GitHub), 2FA is managed directly through that provider and not through Cloud Manager. -{{< /note >}} - -{{< note title="Account protection for users without 2FA enabled" >}} -If you *do not* have 2FA enabled and it has been 90 days or more since your last login, you are required to enter a unique one-time passcode (OTP). This passcode is sent to the email address on your user account and is valid for 60 minutes. If the passcode expires before you enter it, attempt another login to generate a new passcode. -{{< /note >}} - -## Choosing a 2FA Provider - -Before enabling 2FA on your user account, you need to determine which application you wish to use for managing your authentication and generating the expiring tokens (OTPs). You may want to consider using your existing password manager or using a dedicated authenticator app. - -### Use Your Password Manager - -Most password managers offer a built-in OTP feature. If convenience is a large factor for you, using your password manager is typically faster and no extra applications are needed. Once configured, you can copy your OTP token from the same application that stores your usernames and passwords. In many cases, your OTP token can automatically be pasted into the appropriate field on your web browser when logging in. Here are some password managers that support OTP / 2FA tokens: - -- [1Password](https://1password.com/) -- [Bitwarden](https://bitwarden.com/) -- [Keeper](https://www.keepersecurity.com/) - -The primary downsides of using your password manager as your OTP provider are security and cost. If a malicious actor gains access to your password manager, they also now have access to your OTPs. To prevent this, consider using a dedicated application (see below). - -### Use a Dedicated Authenticator App - -There are quite a few free (and paid) third-party authenticator applications available. They are typically more secure than using your password manager's OTP functionality as a malicious actor cannot gain access to your Cloud Manager account (or any other 2FA protected account) unless they know your password and have access to the particular device on which the authenticator app is installed, typically your smartphone. - -- [Authy](https://authy.com/features/setup/) -- [Duo Mobile](http://guide.duosecurity.com/third-party-accounts) -- [Google Authenticator](http://support.google.com/accounts/bin/answer.py?hl=en&answer=1066447) -- [Microsoft Authenticator](https://www.microsoft.com/en-us/security/mobile-authenticator-app) - -## Enabling 2FA - -Enable two-factor authentication to start using it with your Cloud Manager account. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click your username in the top right of the screen and select **Login & Authentication**. - - ![Click your username and select Login & Authentication](profile-link.png) - -1. Within the **Login Method** section, select **Cloud Manager** as the login provider. If you configure a third-party provider (such as Google or GitHub), you instead can manage 2FA directly through that provider and not through Cloud Manager. - - ![Screenshot of the Login Method section](login-provider.png) - -1. Under **Security Settings**, verify that you have configured all 3 security questions. If not, follow the instructions within the [Security Questions](/docs/products/platform/accounts/guides/user-security-controls/#security-questions) guide. - -1. Within the **Two-Factor Authentication** section, click the toggle switch to enable 2FA. - - ![Enable 2FA](tfa-enable.png) - - A QR code should appear, along with a secret key and a field to enter your 2FA token. - -1. Open the app for your preferred 2FA provider on your smartphone or desktop. For help choosing a provider, see [Choosing a 2FA Provider](#choosing-a-2fa-provider). - -1. The next step is to configure the app to automatically generate OTP tokens for use with Cloud Manager's 2FA feature. The process varies depending on the app you are using. Within most dedicated authenticator apps, you can add an account. For password managers, edit or add a Cloud Manager login entry and add a one-time passcode (1Password), two-factor code (Keeper), or the equivalent field within your app. Then either scan Cloud Manager's 2FA QR code or manually enter the secret key (also called a setup key or code). On mobile devices, you can use your phone's camera to scan the QR code. Desktop applications instead can typically scan the QR through their own custom screen capture tool. If you need further help, you can consult the documentation for your 2FA provider. - -1. Once 2FA has been configured in your 2FA provider, a time-sensitive OTP token is generated. This token refreshes every 30 seconds. Copy this token and, within Cloud Manager, paste it to the **Token** field and click **Confirm Token**. - - ![Enter the 2FA token](confirm-2fa-token.png) - -1. Once the token is successfully confirmed, a scratch code appears. Save this code to a secure place, such as a password manager. If you ever lose access to your authenticator app, this scratch code can be used once in place of the OTP token. Two-factor authentication is enabled on your account. - -## Logging in When 2FA Is Enabled - -If 2FA is enabled on your account, you must enter the OTP generated by your 2FA provider when you log in to Cloud Manager. - -1. Open [Cloud Manager](https://cloud.linode.com) in your web browser. If you are not already logged in, the Login page appears. - -1. Enter your username and password and click **Log in**. If you wish, you can also select *Trust this device for 30 days* to stay logged in for 30 days. If 2FA is enabled on your account, a form appears requesting your OTP token or scratch code. - -1. Open the authenticator app you are using to manage your 2FA and OTP tokens. Within this app, open the Linode Cloud Manager account or login entry to view the time-sensitive OTP code. - -1. Enter your OTP token into the **Token** field in Cloud Manager and then click the **Verify** button. Provided the token is correct, you are successfully logged in. - - ![Screenshot of the 2FA entry form](login-with-2fa.png) - - {{< note >}} - If you entered your one-time use scratch code instead of an OTP token, a new scratch code is automatically generated and provided to you. Save this code for the next time you do not have access to your authenticator app. - {{< /note >}} - -## Switching to a New Device or 2FA Provider - -If you need to switch your 2FA provider or change the device in use by your two-factor authenticator app, you can do so within Cloud Manager. To successfully log in to Cloud Manager, you must have access to your original 2FA provider or device. If you've lost your device or otherwise don't have access, see the [Recovery Procedure](#recovery-procedure) below. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Navigate to the Login & Authentication page of your profile by clicking on your **username** in the top right of the screen. Select **Login & Authentication** from the dropdown menu. - -1. In the **Two-Factor Authentication (2FA)** section, click **Reset two-factor authentication**, as shown below. - - ![Reset two-factor authentication.](security-reset-tfa.png "Reset two-factor authentication.") - -1. A new QR code and secret key is generated for your account and displayed on the screen. Follow the instructions in the [Enabling Two-Factor Authentication](#enabling-2fa) section. - -## Disabling 2FA - -You can disable two-factor authentication for your Cloud Manager account at any time. Here's how: - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Navigate to the Login & Authentication page of your profile by clicking on your **username** in the top right of the screen. Select **Login & Authentication** from the dropdown menu. - -1. In the **Two-Factor Authentication (2FA)** section, toggle the **Enabled** switch to disable two-factor Authentication. - -1. A confirmation window appears asking if you want to disable two-factor authentication. Click **Disable Two-Factor Authentication**. - -You have successfully disabled the two-factor authentication feature for your Linode Cloud Manager account. - -## Recovery Procedure - -If you lose access to your 2FA provider, you can still log in using the scratch code that was generated when you first enabled 2FA. If you do not have that scratch code, you will be unable to log in to Cloud Manager and will need to contact the Customer Support team to request 2FA removal. See the instructions below for specific recovery steps. - -- [With Scratch Code](#with-scratch-code) -- [With Security Questions](#with-security-questions) -- [Without Security Questions](#without-security-questions) - -Please keep in mind that if you cannot provide the information required for the recovery options below, we will be unable to remove 2FA from your account. - -### With Scratch Code - -You should have received a one-time scratch code when you initially enabled two-factor authentication on your user account. If you have this scratch code, you can provide it in place of a token when prompted during the login process. Once logged in, you can proceed to [disable 2FA](#disabling-2fa) and [enable it again on your preferred device](#enabling-2fa). - -It is not possible to generate a new scratch code. If you do not have access to this scratch code and you’re unable to log in to your account, follow the instructions in one of the next sections ([With Security Questions](#with-security-questions) or [Without Security Questions](#without-security-questions)). - -### With Security Questions - -1. Contact the [Linode Support](https://www.linode.com/support/) team via phone and state that you are locked out of your account and would like to remove 2FA. Be prepared to provide Support with your username and/or email address associated with the account. - - - U.S. toll-free: 855-454-6633 - - Global: +1-609-380-7100 - -1. A member of the Support team will ask you to provide valid answers to each of your security questions. - -1. Your answers and any other details provided will be reviewed. If the information provided is sufficient, the team member will remove 2FA from your account. If additional details are needed, you will be provided with further instructions. - -### Without Security Questions - -Fill out our [Support Contact Form](https://www.linode.com/support/contact/) after selecting the option “I’ve lost my 2FA device." A member of the Support team will review your submission and respond to your ticket with next steps. - -{{< note type="warning">}} -This recovery procedure will soon be deprecated and our team will instead use your security questions to verify your identity to proceed with 2FA removal. Once you’re able to log in to your account, we suggest updating your security questions to ensure you are able to regain access to your account in the event of another login issue. -{{}} - -## FAQs - -### What should I do if I have access to my 2FA application, but each code I use is invalid when I try to log in? - -This usually occurs if the time on the application or device is inaccurate. Make sure the time on the device you’re using is accurate or within 30 seconds of your timezone - official time can be observed from [https://time.gov](https://time.gov). If you have confirmed that the time on your application is accurate and this doesn’t resolve the issue, follow the steps within the [Recovery Procedure](#recovery-procedure) section. - -### What should I do if I no longer have access to the application I use to manage 2FA? - -A scratch code was generated and displayed when you enabled 2FA on your user account. Provide this scratch code in place of the OTP token when prompted during the login process. Scratch codes can only be used once. - -### I don’t have access to my 2FA application or my scratch code. How can I remove 2FA from my account? - -Review all of the alternative recovery options available in the [Recovery Procedure](#recovery-procedure) section. Keep in mind that if you don’t have access to any recovery mechanisms, you may not be able to recover access to your account. - -### Do you support Yubikeys? - -We hope to have this functionality soon. In the meantime, we have detailed a workaround in a Community Questions Site Post, [Yubikey as a 2FA Option](https://www.linode.com/community/questions/17374/yubikey-as-2fa-option-for-manager#answer-82565). - -### I’ve lost my scratch code - how do I generate a new one? - -It is not possible to regenerate a new scratch code on an existing 2FA provider. If you have not previously saved your scratch code and wish to do so, you must [disable 2FA](#disabling-2fa) from your account and then enable it again. - -### Can I submit answers to my security questions through a ticket or email? - -It’s not secure to submit answers via ticket, therefore we ask that you call the Support line to provide your answers. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/2fa/login-provider.png b/docs/products/platform/accounts/guides/2fa/login-provider.png deleted file mode 100644 index fd62415872d..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/login-provider.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/login-with-2fa.png b/docs/products/platform/accounts/guides/2fa/login-with-2fa.png deleted file mode 100644 index bdef62ca413..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/login-with-2fa.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/profile-link.png b/docs/products/platform/accounts/guides/2fa/profile-link.png deleted file mode 100644 index ea8701c199a..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/profile-link.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/security-reset-tfa-small.png b/docs/products/platform/accounts/guides/2fa/security-reset-tfa-small.png deleted file mode 100644 index 9c118b05cec..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/security-reset-tfa-small.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/security-reset-tfa.png b/docs/products/platform/accounts/guides/2fa/security-reset-tfa.png deleted file mode 100644 index 43da3fb2cd4..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/security-reset-tfa.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/security-tfa-settings-small.png b/docs/products/platform/accounts/guides/2fa/security-tfa-settings-small.png deleted file mode 100644 index f14dd78bf0a..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/security-tfa-settings-small.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/security-tfa-settings.png b/docs/products/platform/accounts/guides/2fa/security-tfa-settings.png deleted file mode 100644 index d00a614ff50..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/security-tfa-settings.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/tfa-enable.png b/docs/products/platform/accounts/guides/2fa/tfa-enable.png deleted file mode 100644 index 148e501d2f9..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/tfa-enable.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/trusted-devices.png b/docs/products/platform/accounts/guides/2fa/trusted-devices.png deleted file mode 100644 index 1112a19b240..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/trusted-devices.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/2fa/two-factor-authentication-diagram.png b/docs/products/platform/accounts/guides/2fa/two-factor-authentication-diagram.png deleted file mode 100644 index 3f08af717e0..00000000000 Binary files a/docs/products/platform/accounts/guides/2fa/two-factor-authentication-diagram.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/_index.md b/docs/products/platform/accounts/guides/_index.md deleted file mode 100644 index 7c40b491d67..00000000000 --- a/docs/products/platform/accounts/guides/_index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Managing Linode Accounts" -description: "A collection of documentation related to managing Linode accounts and users" -tab_group_main: - weight: 30 -date: 2022-11-21 ---- - -## Basics - -- [Manage Users](/docs/products/platform/accounts/guides/manage-users/): View, edit, and manage users on your Linode account. - -- [Change User Email](/docs/products/platform/accounts/guides/change-user-email/): Update the email address on file. - -- [Reset User Password](/docs/products/platform/accounts/guides/reset-user-password/): Change the password on your Linode account. - -- [Transfer Services to a Different Account](/docs/products/platform/accounts/guides/service-transfers/) - -- [Cancel Your Account](/docs/products/platform/accounts/guides/cancel-account/): Instructions on cancelling your Linode account. - -## Security Controls - -- [Security Controls for User Accounts](/docs/products/platform/accounts/guides/user-security-controls/): Understand the available security features of a Linode account. - -- [Managing 2FA on a Linode User Account](/docs/products/platform/accounts/guides/2fa/): Instructions on adding and removing two-factor authentication. - -- [Enable Third Party Authentication on Your User Account](/docs/products/platform/accounts/guides/third-party-authentication/): Learn how to sign in using third party credentials, like GitHub or Google. - - -## Additional User Settings - -- [Manage User Permissions](/docs/products/platform/accounts/guides/user-permissions/): View, edit, and manage user permissions on your Linode account. - -- [Manage SSH Keys](/docs/products/platform/accounts/guides/manage-ssh-keys/): Add public keys to your user, which can be configured on the root user when deploying Compute Instances. - -- [Manage API Personal Access Tokens](/docs/products/platform/accounts/guides/manage-api-tokens/): View and manage personal access tokens for use with the Linode API. - -## Akamai Partners - -- [Parent and Child Accounts for Akamai Partners](/docs/products/platform/accounts/guides/parent-child-accounts/): Learn how parent and child accounts can help Akamai partners manage multiple accounts. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/cancel-account/index.md b/docs/products/platform/accounts/guides/cancel-account/index.md deleted file mode 100644 index 8722603adba..00000000000 --- a/docs/products/platform/accounts/guides/cancel-account/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Cancel Your Account -title_meta: "How to Cancel an Account on the Linode Platform" -description: "Learn how to cancel a Linode account through Cloud Manager." -published: 2021-06-25 -modified: 2023-03-02 -tags: ["linode platform","cloud manager"] -aliases: ['/guides/how-to-cancel-your-account/','/quick-answers/linode-platform/cancel-your-account-shortguide/','/quick-answers/linode-platform/how-to-cancel-your-account/'] ---- - -A Linode account enables you to deploy and use services on the Linode Platform. If you no longer wish to use the Linode Platform, you can cancel your account at any time. When you cancel your account, any past due balance and uninvoiced balance remaining on your account is immediately charged to the default payment method on file, minus any remaining account credits. - -You do not have to cancel your account to prevent recurring charges. Instead, you can remove all services from your account via Cloud Manager, Linode API, or Linode CLI. This lets you retain your Linode account if you intend to use it in the future. See [Removing Services](/docs/products/platform/billing/guides/stop-billing/) for more information. - -{{< note >}} -Linode provides a 7-day guarantee for all paid services. If you cancel your account within the first 7 days, you are likely eligible to receive a full refund for any service charges paid with a valid payment method (not with an account credit or promotional code). To request this refund, enter a note in the cancellation form or email support@linode.com with your request. -{{< /note >}} - -1. Log into [Cloud Manager](https://cloud.linode.com). -1. Click the **Account** link in the sidebar. -1. Click the **Settings** tab. -1. Under the **Close Account** panel, click the **Close Account** button. -1. A confirmation form appears. Enter your Linode username in the first field and optionally enter any comments you'd like to leave in the second field. Any refund requests can be entered here as well. See the [Refunds](/docs/products/platform/billing/#refunds) section of the Billing guide. -1. Click the **Close Account** button to complete your account cancellation. Any past due balance and uninvoiced balance is immediately charged to the credit card on file for your account. After that, you will receive no further charges from Linode regarding this account. - -After following these instructions, all of your services are immediately marked for deletion and your account is immediately cancelled. You are no longer able to log in through Cloud Manager. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/change-user-email/ChangingYourEmailAddress.png b/docs/products/platform/accounts/guides/change-user-email/ChangingYourEmailAddress.png deleted file mode 100644 index 3f5224726d5..00000000000 Binary files a/docs/products/platform/accounts/guides/change-user-email/ChangingYourEmailAddress.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/change-user-email/L_ChangeYourEmail.png b/docs/products/platform/accounts/guides/change-user-email/L_ChangeYourEmail.png deleted file mode 100644 index e715e60e525..00000000000 Binary files a/docs/products/platform/accounts/guides/change-user-email/L_ChangeYourEmail.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/change-user-email/accounts-my-profile-change-email.png b/docs/products/platform/accounts/guides/change-user-email/accounts-my-profile-change-email.png deleted file mode 100644 index 6b024f19412..00000000000 Binary files a/docs/products/platform/accounts/guides/change-user-email/accounts-my-profile-change-email.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/change-user-email/email-edit-button.png b/docs/products/platform/accounts/guides/change-user-email/email-edit-button.png deleted file mode 100644 index 9dfb0838b68..00000000000 Binary files a/docs/products/platform/accounts/guides/change-user-email/email-edit-button.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/change-user-email/how-to-change-email-my-profile.png b/docs/products/platform/accounts/guides/change-user-email/how-to-change-email-my-profile.png deleted file mode 100644 index 420815489c5..00000000000 Binary files a/docs/products/platform/accounts/guides/change-user-email/how-to-change-email-my-profile.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/change-user-email/how-to-change-email-save.png b/docs/products/platform/accounts/guides/change-user-email/how-to-change-email-save.png deleted file mode 100644 index 9f25bb1ede0..00000000000 Binary files a/docs/products/platform/accounts/guides/change-user-email/how-to-change-email-save.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/change-user-email/index.md b/docs/products/platform/accounts/guides/change-user-email/index.md deleted file mode 100644 index 94d17420aa0..00000000000 --- a/docs/products/platform/accounts/guides/change-user-email/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Change Your Email Address -title_meta: Change Your Email Address on a Linode Account -description: "Instructions on updating the email address on an account so that you can receive email notifications." -published: 2022-11-21 -keywords: ["email address", "email addresses", "address", "addresses"] -tags: ["linode platform","cloud manager","email"] -image: L_ChangeYourEmail.png -aliases: ['/quick-answers/linode-platform/how-to-change-your-email/','/guides/how-to-change-your-email/'] ---- - -Linode uses the contact information on file in your account to notify and bill you. Keep this information current to prevent service interruptions. It's especially important to keep your email address current. - -The **Billing Info** and **User & Grants** pages have email address fields. The email addresses saved on these pages receive different notifications, as described in the following sections. If you are the only user, you should enter your email address on both pages. If there are multiple users, verify that the primary account holder's email address is current on the **Billing Info** page. - -## Modify Billing Contact Email - -See [Update Billing Contact Information](/docs/products/platform/billing/guides/update-billing-contact-info/) - -## Modify User Account Email - -Use the **Users & Grants** page to modify the email address associated with a user account. The email addresses listed on this page receive password reset messages and support tickets for services that their associated users have permission to access. Users with limited account access can also receive invoices and receipts if granted access to that information. - -{{< note >}} -Only full account access users can receive threshold notification emails. -{{< /note >}} - -Here's how to change a user's email from the **Users & Grants** page: - -1. Click the **Account** link in the sidebar. -1. Click the **Users & Grants** tab. -1. Click the **User Profile** link for the desired user. -1. Enter the updated email address in the **Email** field. - - ![Modify the email address associated with your user account](accounts-my-profile-change-email.png "Modify the email address associated with your user account") - -1. Click **Save**. - -The user's email address is now updated. - -{{< note >}} -If you do not have full account access, you can view your user profile settings and update your email address by clicking on your username at the top of Cloud Manager and selecting **Display**. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/change-user-email/linode-demo-email-save.png b/docs/products/platform/accounts/guides/change-user-email/linode-demo-email-save.png deleted file mode 100644 index 28c276a3b96..00000000000 Binary files a/docs/products/platform/accounts/guides/change-user-email/linode-demo-email-save.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-api-tokens/create-token.png b/docs/products/platform/accounts/guides/manage-api-tokens/create-token.png deleted file mode 100644 index 44314ef58b4..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-api-tokens/create-token.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-api-tokens/index.md b/docs/products/platform/accounts/guides/manage-api-tokens/index.md deleted file mode 100644 index afd1189cc85..00000000000 --- a/docs/products/platform/accounts/guides/manage-api-tokens/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Manage Personal Access Tokens -description: "Learn how to view, create, and revoke personal access tokens, which provide authorization to the Linode API" -aliases: ['/products/tools/linode-api/guides/get-access-token/','/guides/api-key/','/api/key/','/platform/api/api-key/','/products/tools/linode-api/guides/revoke-access-token/','/products/tools/cloud-manager/guides/cloud-api-keys/','/products/tools/api/guides/manage-api-tokens/'] -published: 2022-12-06 ---- - -## View Personal Access Tokens - -1. Log in to [Cloud Manager](https://cloud.linode.com) - -1. Click on your username at the top of the screen and select **API Tokens** under the *My Profile* section. - - ![Screenshot of the user dropdown menu with the API Tokens link selected](user-profile-dropdown-api-keys.png) - -This displays the **API Tokens** tab on the **My Profile** page. - -![Screenshot of personal access tokens in Cloud Manager](view-personal-access-tokens.png) - -Any personal access tokens you have previously created on your Linode account are listed here. Alongside each token is the date it was created, the date it expires, and links to view the scopes, rename the token, or revoke the token. - -## Create an API Token - -Whenever you need to authorize API access to an application or service, you should create a new personal access token. This token should only allow the level of access needed by the application. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and navigate to the API Tokens page of the My Profile section. See [View Personal Access Tokens](#view-personal-access-tokens). - -1. Click the **Create a Personal Access Token** button to display the *Add Personal Access Token* panel. - - ![Screenshot of the Add Personal Access Token form](create-token.png) - -1. Enter a **Label** for this new token. Choose a label that lets you identify the token and understand its intended use. - -1. In the **Expiry** field dropdown menu, select a timeline for when the new token expires. You can optionally allow this token to never expire. *This cannot be changed once the token is created.* - -1. Select the level of access this token should have to each product or service with which the Linode API interfaces. This can be *None*, *Read Only*, or *Read/Write* (for full access to that service). *This cannot be changed once the token is created.* - -1. Click the **Create Token** button to generate the new personal access token. A dialog box opens and displays your new personal access token. Save this in a safe place, such as a password manager. **After closing this prompt, you are not able to view the token string again.** - - ![Screenshot of the generated personal access token](save-token.png) - -## Revoke a Personal Access Token - -If you wish to decommission a token or think it may have been compromised, you can revoke access. Once revoked, any application using this token will no longer be authorized to access your account through the Linode API. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and navigate to the API Tokens page of the My Profile section. See [View Personal Access Tokens](#view-personal-access-tokens). - -1. Find the token you wish to revoke and click the corresponding **Revoke** button, which may be visible within the ***more options ellipsis*** menu. - - ![Screenshot of the revoke token button](revoke-token.png) - -1. A popup appears asking you to confirm that you wish to revoke this token. Click the **Revoke** button to delete the token and revoke access to any application using that token. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/manage-api-tokens/revoke-token.png b/docs/products/platform/accounts/guides/manage-api-tokens/revoke-token.png deleted file mode 100644 index 62fa936d7b5..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-api-tokens/revoke-token.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-api-tokens/save-token.png b/docs/products/platform/accounts/guides/manage-api-tokens/save-token.png deleted file mode 100644 index b5ac1a3f5ff..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-api-tokens/save-token.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-api-tokens/user-profile-dropdown-api-keys.png b/docs/products/platform/accounts/guides/manage-api-tokens/user-profile-dropdown-api-keys.png deleted file mode 100644 index b9ecf70bdf7..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-api-tokens/user-profile-dropdown-api-keys.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-api-tokens/view-personal-access-tokens.png b/docs/products/platform/accounts/guides/manage-api-tokens/view-personal-access-tokens.png deleted file mode 100644 index 6df4c8ec5ac..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-api-tokens/view-personal-access-tokens.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-ssh-keys/add-ssh-key-button.png b/docs/products/platform/accounts/guides/manage-ssh-keys/add-ssh-key-button.png deleted file mode 100644 index 90803044eaf..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-ssh-keys/add-ssh-key-button.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-ssh-keys/add-ssh-key-panel.png b/docs/products/platform/accounts/guides/manage-ssh-keys/add-ssh-key-panel.png deleted file mode 100644 index 83b75e59e86..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-ssh-keys/add-ssh-key-panel.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-ssh-keys/cloud-profile-ssh-keys.png b/docs/products/platform/accounts/guides/manage-ssh-keys/cloud-profile-ssh-keys.png deleted file mode 100644 index 96e8ce348cd..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-ssh-keys/cloud-profile-ssh-keys.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-ssh-keys/index.md b/docs/products/platform/accounts/guides/manage-ssh-keys/index.md deleted file mode 100644 index 87d82a21124..00000000000 --- a/docs/products/platform/accounts/guides/manage-ssh-keys/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Manage SSH Keys" -description: "Learn how to view, upload, and remove your public SSH keys in Cloud Manager." -published: 2022-03-18 -modified: 2023-05-22 -aliases: ['/products/tools/cloud-manager/guides/manage-ssh-keys/'] ---- - -When creating a Compute Instance, you have the opportunity to select one or more SSH keys, which are added to the root user account of the new instance. This lets you login over SSH using your associated private key instead of the root password. - -These SSH keys are stored within your Linode account and can be easily accessed from Cloud Manager. This guide walks you through how to view, add, and remove your account's SSH keys. For instructions on selecting an SSH key when deploying a Compute Instance see [Creating a Compute Instance > Create a Password and Add SSH Keys](/docs/products/compute/compute-instances/guides/create/#create-a-password-and-add-ssh-keys). - -## View SSH Keys - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click on your username on the top right and select **SSH Keys** in the dropdown menu that appears: - - ![Screenshot of the My Profile dropdown menu](cloud-profile-ssh-keys.png) - -1. This opens the *SSH Keys* tab within the **My Profile** section. If you have uploaded any public keys, they are displayed on this page, as shown below. - - ![Screenshot of the SSH Keys page](view-ssh-keys.png) - -## Add a Public Key - -Add a public SSH key to your Linode user account so that you can easily install it on *new* Compute Instances (see [Create a Compute Instance](/docs/products/compute/compute-instances/guides/create/#create-a-password-and-add-ssh-keys)). - -{{< note >}} -The following SSH key formats are supported: **ssh-rsa**, **ssh-dss**, **ecdsa-sha2-nistp**, **ssh-ed25519**, and **sk-ecdsa-sha2-nistp256** (an Akamai-specific format). -{{< /note >}} - -1. Access the **SSH Keys** page in Cloud Manager. See [View SSH Keys](#view-ssh-keys) above. - -1. Click the **Add an SSH Key** button. - - ![The SSH Keys tab with the 'Add an SSH Key' button highlighted.](add-ssh-key-button.png) - -1. Within the **Add an SSH Key** panel that appears, enter a descriptive label for your key and paste your public key into the **SSH Pulic Key** field. To find and copy your public key on your local machine, use one of the following methods: - - - **Windows 11 (or 10), macOS, Linux:** If you created your key pair using most command-line tools, your public key is likely stored in a `.ssh` directory within your home folder and is likely called `id_rsa.pub`. You can view your public key by opening PowerShell (Windows) or the terminal (macOS and Linux) and running the following command: - - ```command - cat ~/.ssh/id_rsa.pub - ``` - - - **Windows (through PuTTY):** When using PuTTY to generate your key pair, the public key is stored as a `.ppk` file. Open this file using PuTTY to view your public key. - - If you haven't yet generated a key pair to use with SSH, follow the instructions within the [Creating an SSH Key Pair and Configuring Public Key Authentication on a Server](/docs/guides/use-public-key-authentication-with-ssh/) guide. - -1. Click the **Add Key** button to save your key. You should now see that public key on the **SSH Keys** page. - - ![The SSH Keys tab with the 'Add an SSH Key' button highlighted.](add-ssh-key-button.png) - -## Remove a Public Key - -If you no longer wish to deploy *new* Compute Instances with a certain SSH key, you can remove it from Cloud Manager. When doing so, the SSH key is *not removed* from any existing Compute Instances that may have used it. - -1. Access the **SSH Keys** page in Cloud Manager. See [View SSH Keys](#view-ssh-keys) above. - -1. Within the list that appears, locate the public key you wish to remove. Then, click the corresponding **Delete** link. - -1. To confirm removal, click the **Delete** button within the confirmation dialog that appears. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/manage-ssh-keys/view-ssh-keys.png b/docs/products/platform/accounts/guides/manage-ssh-keys/view-ssh-keys.png deleted file mode 100644 index 28d07dce3fe..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-ssh-keys/view-ssh-keys.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-users/accounts-update-a-username.png b/docs/products/platform/accounts/guides/manage-users/accounts-update-a-username.png deleted file mode 100644 index 2042544916e..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-users/accounts-update-a-username.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/manage-users/index.md b/docs/products/platform/accounts/guides/manage-users/index.md deleted file mode 100644 index 93fea21d7ec..00000000000 --- a/docs/products/platform/accounts/guides/manage-users/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Manage Users on a Linode Account" -description: "Learn how to view, edit, and manage users on a Linode account." -published: 2022-11-21 -aliases: ['/platform/accounts-and-passwords/','/accounts-and-passwords/','/platform/manager/accounts-and-passwords/','/platform/manager/accounts-and-passwords-classic-manager/','/platform/manager/accounts-and-passwords-new-manager/', '/guides/accounts-and-passwords/'] ---- - -You can grant other people access to your Linode Cloud Manager account by creating *users* and assigning *permissions* to restrict access to certain areas of the control panel. Adding users and configuring permissions is useful for groups that need to grant all team members access to the Linode Cloud Manager, or organizations that just want their billing department to have a separate account to receive invoices and billing information. - -{{< note >}} -A single user was automatically created for your account when you signed up for Linode. If you are the only person accessing the Linode Cloud Manager, you do not need to create any additional users on your account. -{{< /note >}} - -## View All Users - -1. Log in to [Cloud Manager](https://cloud.linode.com) and select **Account** from the sidebar menu. - -1. Navigate to the **Users & Grants** tab to display all users on the account. *Your user account must have full unrestricted access to view this page.* - -![Screenshot of Users and Grants page in Cloud Manager](view-users.png) - -Each user is listed in the table along with its username, email address, and the level of account access (*full* or *limited*). - -## Add a User - -To provide another person with access to your Linode account, you can create another user. Each user can be created with full unrestricted access or limited restricted access. For more details on user permissions, see [Set User Permissions](/docs/products/platform/accounts/guides/user-permissions/). - -1. Navigate to the **Users & Grants** page in Cloud Manager. See [View All Users](#view-all-users). - -1. Click the **Add a User** button to open the new user panel. - -1. Enter the **Username** and **Email** for the user. - -1. Toggle the **Account Access** button to give the user full or limited access to account features. - -1. Click **Submit**. The user will receive an email with instructions on creating a password and logging in to the account. - -If you granted the user full access, the account is created and no further action is required. If you granted the user limited access, continue with [setting user permissions](/docs/products/platform/accounts/guides/user-permissions/). - -## Recover a Lost Username - -Did you forget your Cloud Manager username? Recover it with the *Forgot Username* webpage. Here's how: - -1. Visit the [Forgot Username](https://login.linode.com/forgot/username) webpage. -1. Enter your email address in the **Email** field. -1. Click **Submit**. - -In a couple minutes, you'll receive an email message with any Linode Cloud Manager users that correspond to that email. If you do not receive information about any users, then you may have registered your account with a different email. - -## Remove a User - -You can permanently remove a user account from the Linode Cloud Manager. Here's how: - -1. Navigate to the **Users & Grants** page in Cloud Manager. See [View All Users](#view-all-users). -1. Click the **Delete** link for the desired user. A warning appears asking you to confirm that you want to delete the user. -1. Click **Delete** in the warning to confirm deletion. - -The user is removed and is no longer able to access the Linode Cloud Manager. - -## Change a Username - -You can update a username, including your own, from the Linode Cloud Manager. - -1. Navigate to the **Users & Grants** page in Cloud Manager. See [View All Users](#view-all-users). -1. Locate the user in the list and click on their **User Profile** link. -1. Enter a new username in the **Username** field. - - ![Use the Linode Cloud Manager to Update a Username](accounts-update-a-username.png "Use the Linode Cloud Manager to Update a Username") - -1. Click **Save**. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/manage-users/view-users.png b/docs/products/platform/accounts/guides/manage-users/view-users.png deleted file mode 100644 index 160e84ce935..00000000000 Binary files a/docs/products/platform/accounts/guides/manage-users/view-users.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/parent-child-accounts/index.md b/docs/products/platform/accounts/guides/parent-child-accounts/index.md deleted file mode 100644 index 6a617d5ac7b..00000000000 --- a/docs/products/platform/accounts/guides/parent-child-accounts/index.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: "Parent and Child Accounts for Akamai Partners" -description: "Learn how parent and child accounts can help Akamai partners manage multiple accounts." -published: 2024-04-23 -modified: 2024-04-29 -keywords: ["akamai partners", "parent", "child", "parent/child relationship"] -aliases: ['products/platform/accounts/guides/parent-child-accounts/','/guides/parent-child-accounts/'] -promo_default: false ---- - -## Overview - -The parent and child accounts feature was designed with Akamai partners and their clients in mind. It allows partners to manage multiple end customers’ accounts with a single login for their company’s account. - -{{< note type="secondary" >}} -This feature is only available for Akamai partners and their end customers with an Akamai Cloud Computing contract. To learn more about it, contact your Akamai representative. -{{< /note >}} - -Depending on whether you're an Akamai partner or a partner’s end customer, this feature has different implications. Select your role to go to content that applies to you. - -- [I’m an Akamai partner](#for-akamai-partners). -- [I’m a partner’s end customer](#for-end-customers). - - -## For Akamai partners - -### About the feature - -The parent and child accounts feature allows you, an Akamai partner (parent account holder), to switch between and manage your end customers’ accounts (child accounts) in Cloud Manager. - -Child account users can monitor your actions on their account. All actions are logged and can be viewed in Cloud Manager, either through the Events panel or the [Events](https://cloud.linode.com/events) page. - -The parent/child relationship doesn’t restrict the child account and its users from creating support tickets or signing up for managed services for their accounts. - -### Terminology - -#### Parent account - -In the context of your account type, you need to be familiar with the following terms. - -![Parent account terminology](parent_term.png) - -- **Parent account**. Your, Akamai partner, account. -- **Parent account user with full access** (parent account admin). An Akamai partner account owner who has access to child accounts by default. They manage permissions for other admins and child account users with limited access. They can provide full access to a parent account user with limited access who then also becomes a parent account admin. -- **Parent account users with limited access** Users of a parent account that don’t have access to child accounts by default. Only the parent account admin can grant them access to all child accounts the parent account has a contractual parent/child relationship with. To learn more, see [Enable access to child accounts for parent account users with limited access](#enable-access-to-child-accounts-for-parent-account-users-with-limited-access). - -#### Parent/child relationship - -In the context of the parent/child relationship, you need to be familiar with the following terms. - -![Parent/child relationship terminology](parent_child_term.png) - -- **Parent account**. Your, Akamai partner, account. -- **Child account parent user**. A single user on a given child account that represents all parent account users with access to child accounts. It’s used to manage the child account. Depending on the access level and permissions provided by the child account admin, it can be a child account parent user with either full or limited access. To learn more, see [Switch accounts](#switch-accounts). -- **Child account**. An account belonging to your end customer. -- **Child account users with full access** (child account admins). Users of the child account with full access to it. They manage permissions for all users on the account; other admins, child account users with limited access, and the child account parent user. The only exception is billing, child account admins have read-only access to it and they can’t modify the child account parent user’s read/write permission to it. -- **Child account users with limited access**. Non-admin users of the child account whose permissions are managed by the child account admin. - -One parent account can manage many child accounts. - -### Enable access to child accounts for parent account users with limited access - -As a parent account admin, you can grant access to the child account for parent account users with limited access. - -On the User Permissions page, you have the additional general permission - **Enable child account access**. - -- This permission is available only for parent accounts. -- Parent account users with limited access have this option disabled by default. They need to ask a parent account admin to enable this option for them. -- It enables access to **all** child accounts the parent account has a contractual parent/child relationship with. - -To enable the access: - -1. Log in to [Cloud Manager](https://cloud.linode.com/). -1. In the main menu, go to **Account**. -1. In the **User & Grants** tab, next to the name of a parent account user with limited access, click **...** > **User Permissions**. -1. In the **General Permissions** section, switch the **Enable child account access** option on. Click **Save**. - -### Switch accounts - -When switching to a child account, you become the child account parent user. By default, you have: - -- Read/write permission for billing. This is the only permission that can’t be modified even by a child account admin. -- Read-only permission to all asset instances existing at the time of parent/child relationship creation, such as linodes, load balancers, Longview clients. This allows the child account parent user to see existing child accounts’ assets, but not create, update, or delete them. -- No access to asset instances created after the creation of the parent/child relationship. The child account parent user needs to ask a child account admin to grant them access to new instances if necessary. -- The [global permissions](/docs/products/platform/accounts/guides/user-permissions/) set off. - -A child account admin can change the child account parent user’s default permissions and expand or restrict its access to the child account, except for billing. If the child account admin provides the child account parent user with full access to the child account, the child account parent user can fully manage the account, including its users. - -To switch accounts: - -1. Log in to [Cloud Manager](https://cloud.linode.com/). -1. In the top corner, click the name of your account. - - ![Parent account switch](parent_switch.png) - -1. Click **Switch account**. If you don’t see this button, it means you’re a parent account user with limited access and you need to ask the parent account admin to provide you the access to child accounts or your account is not involved in the parent/child relationship. - - ![Account switch button](switch_account.png) - -1. Select an account from the list you want to switch to. -Now you act as the child account parent user. Note that you can click the **switch back to your account** link to switch back. - - ![switch back option](switch_back.png) - -### Delete a parent account - -A parent account can be deleted only if all parent/child relationships are contractually removed from your parent account, meaning you don’t have active contracts with end customers. - -Once this condition is met, to close an account: - -1. Log in to [Cloud Manager](https://cloud.linode.com/). -1. In the main menu, go to **Account**. -1. In the **Settings** tab, go to the **Close Account** section, and click the **Close Account** button. -1. Follow the on-screen instructions and click **Close Account**. - -## For end customers - -### About the feature - -The parent and child accounts feature allows an Akamai partner (Parent account holder) to manage your account (Child account) in Cloud Manager. - -You can monitor Akamai partner’s actions on your account. All actions are logged and can be viewed in Cloud Manager, either through the Events panel or the [Events](https://cloud.linode.com/events) page. - -The parent/child relationship doesn’t restrict your account and its users from creating support tickets or signing up for managed services. - -### Terminology - -In the context of the parent/child relationship, you need to be familiar with the following terms. -![Parent/child relationship terminology](parent_child_term.png) - -- **Parent account**. A company account of your Akamai partner. -- **Child account**. Your, end customer’s, account. -- **Child account users with full access** (child account admins). Users of your account with full access to it. They manage permissions for all users on the account; other admins, child account users with limited access, and the child account parent user. The only exception is billing, they have read-only access to it and they can’t modify the child account parent user’s read/write permission to it. -- **Child account users with limited access**. Non-admin users of your account whose permissions are managed by the child account admin. -- **Child account parent user**. A single user representing all Akamai partner users who have access to this child account. It’s used to manage your child account. Depending on the access level and permissions provided by the child account admin, it can be a child account parent user with either full or limited access. To learn more, see [Manage account access and permissions for the child account parent user](#manage-account-access-and-permissions-for-the-child-account-parent-user). The child account parent user is created automatically based on your contract with an Akamai partner. The user exists on your account as long as you have a contractual relationship with your Akamai partner. - -### Manage account access and permissions for the child account parent user - -By default, a child account parent user has: -- Read/write permission for billing. This is the only permission that can’t be modified even by a child account admin. -- Read-only permission to all asset instances existing at the time of parent/child relationship creation, such as linodes, load balancers, Longview clients. This allows the child account parent user to see existing child accounts’ assets, but not create, update, or delete them. -- No access to asset instances created after the creation of the parent/child relationship. The child account parent user needs to ask a child account admin to grant them access to new instances if necessary. -- The [global permissions](/docs/products/platform/accounts/guides/user-permissions/) set off. - -As a child account admin you can change the default permissions of the child account parent user to expand or restrict access as you see fit, except for billing. If you provide the child account parent user with full access to the child account, it becomes the child account parent user with full access and can fully manage your child account, including its users. - -To manage access settings: - -1. Log in to [Cloud Manager](https://cloud.linode.com/). -1. In the main menu, go to **Account**. -1. In the **User & Grants** tab, in the **Parent User Settings** table, next to the name of the child account parent user, click **Manage Access**. -1. In the **General Permissions** section: - 1. Select the permissions you want to grant. Remember that permissions with the $ symbol next to them, can incur additional charges. Note also the **Full Account Access** switch that gives the child account parent user full access to your account. - 1. Click **Save**. -1. In the **Specific Permissions** section, select the access level for each feature or use the **Set all permissions to** dropdown. Click **Save**. - -### Delete a child account - -A child account admin can delete a child account only if the parent/child relationship is contractually removed, meaning you don’t have an active contract with an Akamai partner. - -Once this condition is met, to close an account: - -1. Log in to [Cloud Manager](https://cloud.linode.com/). -1. In the main menu, go to **Account**. -1. In the **Settings** tab, go to the **Close Account** section, and click the **Close Account** button. -1. Follow the on-screen instructions and click **Close Account**. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/parent-child-accounts/parent_child_term.png b/docs/products/platform/accounts/guides/parent-child-accounts/parent_child_term.png deleted file mode 100644 index 130cf66b6d8..00000000000 Binary files a/docs/products/platform/accounts/guides/parent-child-accounts/parent_child_term.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/parent-child-accounts/parent_switch.png b/docs/products/platform/accounts/guides/parent-child-accounts/parent_switch.png deleted file mode 100644 index a0b45cac711..00000000000 Binary files a/docs/products/platform/accounts/guides/parent-child-accounts/parent_switch.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/parent-child-accounts/parent_term.png b/docs/products/platform/accounts/guides/parent-child-accounts/parent_term.png deleted file mode 100644 index 6e9836e1d71..00000000000 Binary files a/docs/products/platform/accounts/guides/parent-child-accounts/parent_term.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/parent-child-accounts/switch_account.png b/docs/products/platform/accounts/guides/parent-child-accounts/switch_account.png deleted file mode 100644 index b9207be8f4b..00000000000 Binary files a/docs/products/platform/accounts/guides/parent-child-accounts/switch_account.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/parent-child-accounts/switch_back.png b/docs/products/platform/accounts/guides/parent-child-accounts/switch_back.png deleted file mode 100644 index 95eae9a2c93..00000000000 Binary files a/docs/products/platform/accounts/guides/parent-child-accounts/switch_back.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/reset-user-password/L_ChangeYourPassword.png b/docs/products/platform/accounts/guides/reset-user-password/L_ChangeYourPassword.png deleted file mode 100644 index bee1cc58f3a..00000000000 Binary files a/docs/products/platform/accounts/guides/reset-user-password/L_ChangeYourPassword.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/reset-user-password/index.md b/docs/products/platform/accounts/guides/reset-user-password/index.md deleted file mode 100644 index cd8e8faa5c0..00000000000 --- a/docs/products/platform/accounts/guides/reset-user-password/index.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Reset Your User Password -title_meta: Reset Your User Password on the Linode Platform -description: "Learn how to change your user's password on a Linode account." -published: 2022-11-21 -modified: 2023-05-04 -keywords: ["password", "change password", "update password", "cloud manager"] -tags: ["linode platform","cloud manager","security"] -image: L_ChangeYourPassword.png -aliases: ['/quick-answers/linode-platform/how-to-change-your-password/', '/guides/how-to-change-your-password/'] ---- - -Creating strong passwords is essential to protecting your Linode and your Linode [Cloud Manager](http://cloud.linode.com) account. If you suspect that an unauthorized user has gained access to one of your accounts, you should change the password immediately. - -{{% content "password-requirements-shortguide" %}} - -## Changing or Resetting Your Linode Cloud Manager Password - -If you want to change your password, or you forgot your password and need a new one, you can accomplish these tasks through the *Forgot Password* webpage. Here's how: - -1. Visit the [Forgot Password](https://login.linode.com/forgot/password) webpage. - -1. Enter your username in the **Username** field. - - {{< note >}} - If you've forgotten your Linode Cloud Manager username, see [Recovering a Lost Username](/docs/products/platform/accounts/guides/manage-users/#recover-a-lost-username). - {{< /note >}} - -1. Click the **Reset password** button. - -1. Check your email for a message containing further instructions. - -1. Follow the instructions in the email message to reset your password. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/service-transfers/TransferOwn_LinodeServ_ST.png b/docs/products/platform/accounts/guides/service-transfers/TransferOwn_LinodeServ_ST.png deleted file mode 100644 index f746f94bc7c..00000000000 Binary files a/docs/products/platform/accounts/guides/service-transfers/TransferOwn_LinodeServ_ST.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/service-transfers/cancel-transfer.png b/docs/products/platform/accounts/guides/service-transfers/cancel-transfer.png deleted file mode 100644 index 8e847cf0d1b..00000000000 Binary files a/docs/products/platform/accounts/guides/service-transfers/cancel-transfer.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/service-transfers/index.md b/docs/products/platform/accounts/guides/service-transfers/index.md deleted file mode 100644 index 58ffa8b38be..00000000000 --- a/docs/products/platform/accounts/guides/service-transfers/index.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Transfer Services to a Different Account -title_meta: How to Transfer Services to a Different Linode Account -description: "Learn how to transfer ownership of Linode services to a different account." -published: 2021-03-10 -modified: 2023-11-15 -keywords: ["linode transfer ownership", "transfer linode to another account", "linode can i transfer"] -tags: ["cloud manager","linode platform","account"] -image: TransferOwn_LinodeServ_ST.png -aliases: ['/guides/platform/manager/service-transfers/', '/guides/service-transfers/'] ---- - -Within the Linode Platform, Compute Instances can be transferred from one account to a different account. Here's an overview of this transfer process: - -1. The sending account initiates a transfer by generating a Service Transfer token. - -1. The sending account sends the Service Transfer token to the receiving account by email or other method. - -1. The receiving account uses the Service Transfer token within 24 hours to accept the transfer between the two accounts. - -1. Once completed, billing for transferred services ends for the sending account and begins for the receiving account. Linode services will not experience interruptions due to the transfer process. - -{{< note >}} -Only users with full account access can use Service Transfers. To adjust user permissions, see our [Set User Permissions](/docs/products/platform/accounts/guides/user-permissions/) guide. Users with full account access can view and interact with all of the transfers associated with the account, regardless of which user created or accepted the transfer. -{{< /note >}} - -{{< note type="warning">}} -Each Compute Instance that you wish to transfer must have a unique label that is not used for any other instances on the receiving account. If the label is not unique, the transfer will fail. As an example, this commonly happens when the default label has been used. To ensure that the transfer is successful, verify that the label of the Compute Instance you are transferring is unique on the receiving account. -{{< /note >}} - -## Sending Linode Services - -1. Click the [Account](https://cloud.linode.com/account) link in the sidebar. - -1. Click the **Service Transfers** tab on the Account page. - -1. Click the **Make a Service Transfer** button on the Service Transfers page to begin. - - ![Selecting 'Make a Service Transfer' initiates a transfer request.](make-transfer-start.png "Selecting 'Make a Service Transfer' initiates a transfer request.") - -1. Select the services to include in the transfer by checking the empty boxes next to them. Checking the box in the heading for a service type selects all of the services for that type. You can also use the search bar to filter services by label. As you select services, they are added to the **Service Transfer Summary**. - - {{< note >}} - Only Compute Instances can be transferred at this time. - {{< /note >}} - -1. Once you have selected all of the services to include in the transfer, click the **Generate Token** button to submit a transfer request. - - ![Send the generated token to the recipient via email or other secure method.](make-transfer-token.png "Send the generated token to the recipient via email or other secure method.") - -1. If the request is successful, a summary window appears that contains a Service Transfer token and a sample message to send to the receiving account. A confirmation email is also sent to the sending account with details of the transfer, including the Service Transfer token. - - {{< note >}} - Linode does not send the Service Transfer token on your behalf. You must send the token to the receiving account by email or other method. - {{< /note >}} - - {{< note >}} - Service Transfers automatically expire 24 hours after creation. You can view the expiry dates of your pending transfers from the [Service Transfers](https://cloud.linode.com/account/service-transfers) page. Dates and times are displayed for your configured timezone, which you can adjust from your [Cloud Manager User Profile](https://cloud.linode.com/profile/display). - {{< /note >}} - - {{< note >}} - Backups for Compute Instances are transferred as well. - {{< /note >}} - - {{< note type="alert" >}} - DNS records that are associated with requested services will not be transferred or updated. Please ensure that associated DNS records have been updated or communicated to the recipient before the transfer. - {{< /note >}} - - {{< note type="alert" >}} - Service Transfers cannot be [cancelled](#cancelling-service-transfers) once they have been accepted by a receiving account. Take care when sharing your Service Transfer token, and only transmit it in a secure manner. - {{< /note >}} - -1. If the request is unsuccessful, a list of conditions that are blocking the transfer displays on the Service Transfer page. These conditions must be corrected before the transfer can be created, and must be maintained for the transfer to be accepted. Here is a full list of conditions that must be met for a successful transfer request: - - - The sending account must not have a past due balance or active Terms of Service violation. - - - The service must be owned by the sending account. - - - The service must not be assigned to another Service Transfer that is pending or that has been accepted and is - incomplete. - - - Compute Instances must not: - - - be assigned to a NodeBalancer, Firewall, VLAN or Managed Service. - - - have any attached Block Storage Volumes. - - - have any shared IP addresses. - - - have any assigned /56, /64, or /116 IPv6 ranges. - -## Receiving Linode Services - -1. Click the [Account](https://cloud.linode.com/account) link in the sidebar. - -1. Click the **Service Transfers** tab on the Account page. - -1. In the **Receive a Service Transfer** field, enter the Service Transfer token you have received from the sender and click the **Review Details** button. - - ![Review the summary of Linode services to be transferred before accepting.](receive-transfer.png "Review the summary of Linode services to be transferred before accepting.") - -1. If the services are eligible for transfer, you are prompted to confirm responsibility for billing associated with those services. Billing begins for the receiving account after the transfer has been completed. Confirm billing responsibility and click **Accept Transfer** to begin transfer of services to your account. A confirmation email is sent to both the sending and receiving accounts. - - {{< note >}} - Service Transfers can take up to 3 hours to complete once they are accepted by the recipient. Once the transfer is complete, another confirmation email is sent to both the sending and receiving accounts. If the transfer fails, the sending account must initiate a new Service Transfer. - {{< /note >}} - -1. If there are any conditions in place that are blocking the transfer, they are displayed on the Service Transfer page. These conditions must be corrected by the sending or receiving account as is applicable before the transfer can be accepted. Here is a full list of conditions that must be met for a successful transfer request: - - - Only pending transfers can be accepted. A transfer cannot be accepted if it has expired or been cancelled. - - - The receiving account must have a registered payment method and must not have a past due balance or other account limitations making it ineligible to own the transferred services. - - - Both the sending and receiving accounts must not have any active Terms of Service violations. - - - The service must still be owned by the sending account. - - - Compute Instances must not: - - - be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service. - - - have any attached Block Storage Volumes. - - - have any shared IP addresses. - - - have any assigned /56, /64, or /116 IPv6 ranges. - -{{< note type="alert" >}} -When receiving a Compute Instance, it is important to make sure that **Any Longview Key** is fully revoked and removed from that instance by removing the Longview agent. If client keys are not revoked and removed, the transferring user gains access to all data visible to any Longview client by using the pre-existing API key, even after the transfer has been completed. Users will not be informed by default if the received Compute Instance has a Longview key installed, and should always follow the process for removing the Longview agent to be sure. - -For more information on revoking and removing a Longview key and uninstalling the Longview agent, see our [Documentation on Uninstalling Longview](/docs/products/tools/longview/guides/manage/#delete-client). -{{< /note >}} - -## Cancelling Service Transfers - -{{< note >}} -Only the sending account can cancel a Service Transfer. Once accepted, a transfer cannot be cancelled. -{{< /note >}} - -{{< note type="alert" >}} -Cancellations are irreversible. Once cancelled, you must start a new Service Transfer if you still wish to send those services. -{{< /note >}} - -1. Click the [Account](https://cloud.linode.com/account) link in the sidebar. - -1. Click the **Service Transfers** tab on the Account page. - -1. Under **Pending Service Transfers**, locate the transfer you wish to cancel, click the corresponding **Cancel** button, and confirm the cancellation. A confirmation email is sent to the sending account. - - ![Your cancelled Service Transfers are listed on the Service Transfers page.](cancel-transfer.png) \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/service-transfers/make-transfer-start.png b/docs/products/platform/accounts/guides/service-transfers/make-transfer-start.png deleted file mode 100644 index a42dafc1b89..00000000000 Binary files a/docs/products/platform/accounts/guides/service-transfers/make-transfer-start.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/service-transfers/make-transfer-token.png b/docs/products/platform/accounts/guides/service-transfers/make-transfer-token.png deleted file mode 100644 index 74916b5bf56..00000000000 Binary files a/docs/products/platform/accounts/guides/service-transfers/make-transfer-token.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/service-transfers/receive-transfer.png b/docs/products/platform/accounts/guides/service-transfers/receive-transfer.png deleted file mode 100644 index 905eb165e30..00000000000 Binary files a/docs/products/platform/accounts/guides/service-transfers/receive-transfer.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/third-party-authentication/confirm-disable-tpa.png b/docs/products/platform/accounts/guides/third-party-authentication/confirm-disable-tpa.png deleted file mode 100644 index 52335d111a8..00000000000 Binary files a/docs/products/platform/accounts/guides/third-party-authentication/confirm-disable-tpa.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/third-party-authentication/enable-tpa-hero.png b/docs/products/platform/accounts/guides/third-party-authentication/enable-tpa-hero.png deleted file mode 100644 index 2edbd9220ba..00000000000 Binary files a/docs/products/platform/accounts/guides/third-party-authentication/enable-tpa-hero.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/third-party-authentication/index.md b/docs/products/platform/accounts/guides/third-party-authentication/index.md deleted file mode 100644 index ec011619c55..00000000000 --- a/docs/products/platform/accounts/guides/third-party-authentication/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Enable Third Party Authentication on Your User Account" -title_meta: "Enable Third Party Authentication on Your Linode User Account" -description: "This guide shows how you can enable Third-Party Authentication (TPA) on your Linode account so you can sign in to Cloud Manager using third party credentials." -published: 2021-04-23 -modified: 2024-07-23 -keywords: ['tpa','third party authentication','github','account','password'] -tags: ["linode platform","security","cloud manager"] -image: enable-tpa-hero.png -aliases: ['/platform/manager/third-party-authentication/','/guides/third-party-authentication/'] ---- - -Cloud Manager supports third-party authentication (TPA). This lets you log in to Cloud Manager with another provider's login credentials. - -{{< note >}} -Enabling TPA disables two-factor authentication (2FA) on your user account. You should enable 2FA with the TPA provider with which you choose to authenticate to Cloud Manager. - -Additionally, enabling TPA disables password authentication in the Lish console. You can still authenticate to Lish with an SSH key. For more information on SSH key authentication with Lish, visit our [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/#add-your-public-key) guide. -{{< /note >}} - -{{< note title="Single sign-on (SSO) with Akamai Control Center">}} -Separate from your selected login provider, you can also log in to Cloud Manager using your [Akamai Control Center](https://control.akamai.com/) account credentials. To learn more about this feature, see [Single sign-on (SSO) with Akamai Control Center](/docs/products/platform/accounts/guides/user-security-controls/#single-sign-on-sso-with-akamai-control-center). -{{< /note >}} - -## Enabling Third-Party Authentication - -1. To get started with TPA, log in to [Cloud Manager](https://cloud.linode.com) using your existing username and password. - -1. Click your username in the top right of the screen and select **Login & Authentication**. - - ![Click your username and select Login & Authentication](profile-link.png) - -1. Within the **Login Method** section, select the *Login Provider* you'd like to use for authentication. You can chose to use your own Cloud Manager credentials or chose from several third-party authentication (TPA) providers, such as Google and GitHub. Only one login provider can be active at a time. Once selected, you will be asked to confirm that you'd like to enable TPA with this provider. - - ![Select the Login Method](tpa-options.png) - - {{< note type="alert" >}} - Enabling third-party authentication disables your current Cloud Manager password and 2FA settings. If you would like to continue using 2FA, make sure it is handled by your chosen TPA provider. - {{< /note >}} - -1. Once a TPA provider is selected, you are taken to that provider's website and are prompted to give access to your Linode user account. Review the list of permissions and confirm. - -1. After granting permissions, you will see a confirmation screen. You can now log in to your user account through the selected TPA provider. - -## Disabling Third-Party Authentication - -1. Log in to [Cloud Manager](https://cloud.linode.com) using your TPA credentials. - -1. Navigate to the Login & Authentication page of your profile by clicking on your **username** in the top right of the screen. Select **Login & Authentication** from the dropdown menu. - - ![Click your username and select Login & Authentication](profile-link.png) - -1. Within the **Login Method** section, select **Cloud Manager** as the login provider. - - ![Select the Login Method](tpa-options.png) - -1. A prompt will appear confirming your intent to disable third-party authentication. You will need to click on the **Reset Password** button to send a password reset link to your email. This will be delivered to the email address associated with your user account, and not the email associated with the TPA provider. You will need to follow the link in that email to reset your user's password. - - ![Send password reset email.](confirm-disable-tpa.png) - -1. Once reset, you can use your new password to log in to Cloud Manager. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/third-party-authentication/profile-link.png b/docs/products/platform/accounts/guides/third-party-authentication/profile-link.png deleted file mode 100644 index ea8701c199a..00000000000 Binary files a/docs/products/platform/accounts/guides/third-party-authentication/profile-link.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/third-party-authentication/tpa-options.png b/docs/products/platform/accounts/guides/third-party-authentication/tpa-options.png deleted file mode 100644 index fd62415872d..00000000000 Binary files a/docs/products/platform/accounts/guides/third-party-authentication/tpa-options.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-permissions/index.md b/docs/products/platform/accounts/guides/user-permissions/index.md deleted file mode 100644 index a4f72565c34..00000000000 --- a/docs/products/platform/accounts/guides/user-permissions/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Manage User Permissions -title_meta: Manage User Permissions for a Linode User Account -description: "Learn how to manage permissions and restrict user access on a Linode account." -published: 2022-11-21 -modified: 2023-01-24 -tags: ["linode platform","users","user permissions"] ---- - -Each user on an account can be given individualized permissions that provides unrestricted access to an account or limits their access to specific information or services. For example, you could give your core team members full unrestricted access, grant your accounts payable team access only to view and modify billing details, and limit an outside developer to only access specific Compute Instances or other services. - -{{< note >}} -The permissions discussed within this guide apply to accessing the Linode platform through Cloud Manager, Linode API, and Linode CLI. If you wish to only provide someone with direct access to the internal system of a Compute Instance (or revoke their access), that can be accomplished through limited user accounts within your operating system. See [Create an Account for a Developer to Work on Your Compute Instance](/docs/products/platform/get-started/guides/developer-access/). -{{< /note >}} - -## View and Set Permissions for a User - -You can view and edit permissions for a user directly in Cloud Manager by following the instructions below. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Account** link in the sidebar. - -1. Navigate to the **Users & Grants** tab, which displays a list of existing users for the account. - - ![Screenshot of the Users & Grants tab in Cloud Manager](list-of-users.png) - -1. Locate the user for which you wish to view or modify permissions and click the corresponding **User Permissions** link. - - ![Screenshot of the link to edit a user's permissions.](user-permissions-link.png) - -1. Modify the settings as needed. Reference the [Permission Settings](#permission-settings) section below for more information on user permission settings. - -1. When you have finished configuring the user's permissions, click **Save**. The user's permissions are saved and become effective immediately. - -## Permission Settings - -### Full Account Access - -![Full Account Access](user-permissions-account-access.png) - -A user can either be given unrestricted (full) access to an account or they can be restricted by default. If **Full Account Access** is set to *ON*, the user has full access to the account and no further permission settings are available. When set to *OFF*, the user has no access and individual permissions can be granted using the other settings (covered below). - -### Create Services (Global Permissions) - -![Global Permissions](user-permissions-global-permissions.png) - -The **Global Permissions** settings enable users to add various types of services. There is a setting that corresponds to each type of service. For instance, to allow the user to add NodeBalancers, enable the *Can add NodeBalancers to this account* setting. - -{{< note >}} -Granting access to settings denoted with a dollar sign ($) allows the user to perform actions that incur billing costs, such as adding or resizing a Linode Compute Instance. -{{< /note >}} - -### Billing Access - -![Billing Access](user-permissions-billing-access.png) - -This section provides various levels of access to view or modify billing information: - -- **None**: The user is unable to view any billing information. This does not prevent a user from creating billable resources, which are instead applied as **Global Permissions** in the previous section. -- **Read Only**: The user can [View Invoices](/docs/products/platform/billing/guides/view-history/) and [Access Billing Info](/docs/products/platform/billing/guides/access-billing/). -- **Read-Write**: The user has full access to [Billing Information](/docs/products/platform/billing/guides/access-billing/), can make payments, edit billing information, view billing information, receive copies of all invoices, and receive email related to payments. - -### Specific Services - -![Specific Services](user-permissions-specific-access.png) - -A user can be granted individual permissions to each instance of a service, such as Linode Compute Instances, Block Storage Volumes, NodeBalancers, and more. Unlike **Global Permissions**, **Specific Permissions** apply to individual resources -- not the service as a whole. - -- **None**: The user cannot view or otherwise interact with the selected resource. -- **Read Only**: The user can view the resource and all of its associated information typically visible within Cloud Manager, however they cannot otherwise interact with it. -- **Read-Write**: The user has full access to the selected resource and can make any changes that only an administrator is otherwise able to. This includes resource deletion, cloning, and all other applicable edits. The user also receives an email notification when a ticket is created or updated for this resource. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/user-permissions/list-of-users.png b/docs/products/platform/accounts/guides/user-permissions/list-of-users.png deleted file mode 100644 index b0d9b070b9f..00000000000 Binary files a/docs/products/platform/accounts/guides/user-permissions/list-of-users.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-permissions/user-permissions-account-access.png b/docs/products/platform/accounts/guides/user-permissions/user-permissions-account-access.png deleted file mode 100644 index f317d60e5cf..00000000000 Binary files a/docs/products/platform/accounts/guides/user-permissions/user-permissions-account-access.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-permissions/user-permissions-billing-access.png b/docs/products/platform/accounts/guides/user-permissions/user-permissions-billing-access.png deleted file mode 100644 index 4fd835ff2b4..00000000000 Binary files a/docs/products/platform/accounts/guides/user-permissions/user-permissions-billing-access.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-permissions/user-permissions-global-permissions.png b/docs/products/platform/accounts/guides/user-permissions/user-permissions-global-permissions.png deleted file mode 100644 index b3fff0dbfa0..00000000000 Binary files a/docs/products/platform/accounts/guides/user-permissions/user-permissions-global-permissions.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-permissions/user-permissions-link.png b/docs/products/platform/accounts/guides/user-permissions/user-permissions-link.png deleted file mode 100644 index 34e9d24aa59..00000000000 Binary files a/docs/products/platform/accounts/guides/user-permissions/user-permissions-link.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-permissions/user-permissions-specific-access.png b/docs/products/platform/accounts/guides/user-permissions/user-permissions-specific-access.png deleted file mode 100644 index 961a2d01f51..00000000000 Binary files a/docs/products/platform/accounts/guides/user-permissions/user-permissions-specific-access.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-security-controls/2fa.png b/docs/products/platform/accounts/guides/user-security-controls/2fa.png deleted file mode 100644 index 9c7b8ce9572..00000000000 Binary files a/docs/products/platform/accounts/guides/user-security-controls/2fa.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-security-controls/How_to_Keep_Your_Linode_Account_Safe_smg.jpg b/docs/products/platform/accounts/guides/user-security-controls/How_to_Keep_Your_Linode_Account_Safe_smg.jpg deleted file mode 100644 index 97493692db2..00000000000 Binary files a/docs/products/platform/accounts/guides/user-security-controls/How_to_Keep_Your_Linode_Account_Safe_smg.jpg and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-security-controls/index.md b/docs/products/platform/accounts/guides/user-security-controls/index.md deleted file mode 100644 index 93190d78717..00000000000 --- a/docs/products/platform/accounts/guides/user-security-controls/index.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "Security Controls for User Accounts" -description: "Learn how to protect your Linode account using security measures and controls built-in to the Linode platform." -published: 2022-06-24 -modified: 2024-07-23 -keywords: ["two-factor authentication", "password", "security", "Linode Cloud Manager", "token"] -tags: ["security","cloud manager"] -aliases: ['/linode-manager-security/','/security/authentication/linode-manager-security-controls/','/security/linode-manager-security-controls-new-manager/','/platform/manager/keep-your-linode-account-safe/','/security/linode-manager-security-controls/','/security/authentication/two-factor-authentication/linode-manager-security-controls/','/guides/linode-manager-security-controls/','/guides/user-security-controls/'] ---- - -To protect your customer account against unauthorized access, there are several security controls you can implement. This guide covers several of these controls, including 2FA, security questions, and phone verification. - -## 2FA (Two-Factor Authentication) - -2FA (*two-factor authentication*) increases the security of your user account by requiring two forms of authentication: your password and an expiring token, also called a one-time passcode (OTP) or 2FA code. This follows the security principle of authenticating with something you *know* (a password) and something you *have* (the device used to generate the token). This additional layer of security reduces the risk that an unauthorized individual can gain access to your user account. - -If you *do not* have 2FA enabled and have not logged in to your account in 30 days, an OTP is sent to the email address associated with your user account. Should you not complete the login attempt within 60 minutes, the code expires and another login attempt is required to generate a new code. - -**Akamai highly recommends enabling 2FA**. See [Managing Two-Factor Authentication (2FA) on a User Account](/docs/guides/2fa/) to learn how to enable 2FA. To assist with account lockouts and recovery, you must first configure three [security questions](#security-questions) on your account before enabling 2FA. - -![Screenshot of the 2FA setting in Cloud Manager](2fa.png) - -{{< note type=warning noTitle=true >}} -Managing 2FA through Cloud Manager is only available if *Cloud Manager* is selected as the **Login Method**. If you select a third-party authentication provider (such as Google or GitHub), 2FA is managed directly through that provider and not through Cloud Manager. -{{< /note >}} - -## Security Questions - -You can configure three security questions on your user account. Security questions provide our team with a secure method of verifying your identity as the owner of the user account. They can be used to help you regain access to your account in certain situations, such as when 2FA is enabled and you no longer have access to the token or recovery codes. When configuring a security question, answers should not be easily guessed or discoverable through research. - -![Screenshot of the Security Questions in Cloud Manager](security-questions.png) - -### Configuring Security Questions. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and navigate to the [Login & Authentication](https://cloud.linode.com/profile/auth) page of your user profile. To do this, click on your username in the top right of Cloud Manager and select **Login & Authentication** from the dropdown menu. - -1. Scroll down to **Security Questions** under the **Security Settings** section. Here, you can view the security questions available to you or, if you've already configured them, see the questions you have selected. - -1. To configure your security questions, click the drop-down field under *Question 1* to select the question you wish to use. Then, type the answer in the corresponding box. - -1. Repeat this for *Question 2* and *Question 3*. Once a particular question has been selected, you are not able to select the same one for any other question field. - -1. Once all fields have been configured, click **Add Security Questions**. You must fill out all 3 questions when adding security questions for the first time. - -1. After a security question has been configured, you can edit one or more questions by clicking the **Edit** button next to each question you'd like to change, updating the answer field with your new answer, and then clicking the **Update Security Questions** button. - -## Phone Verification - -A verified phone number provides our team with a secure method of verifying access to your account. It is required for all new accounts created on or after June 27th, 2022, though any existing user can add a verified phone number to increase the security on their account. - -![Screenshot of the Phone Verification Setting in Cloud Manager](phone-verification.png) - -This phone number is only ever used to verify your identity when attempting to authenticate to a user account when contacting our [Support team](https://www.linode.com/support/). An SMS message with a verification code is sent to that phone number. Once received, you can provide that verification code to the Support representative you are in contact with. If you receive a verification SMS without contacting us, do not pass along the verification code to anyone. - -{{< note >}} -Standard carrier messaging fees apply for each SMS message. -{{< /note >}} - -### Adding a Verified Phone Number - -1. Log in to [Cloud Manager](https://cloud.linode.com) and navigate to the [Login & Authentication](https://cloud.linode.com/profile/auth) page of your user profile. To do this, click on your username in the top right of Cloud Manager and select **Login & Authentication** from the dropdown menu. - -1. Scroll down to **Phone Verification** under the **Security Settings** section. Here, you can view, add, and remove your verified phone number. - -1. To add a phone number, select your country from the dropdown list. This populates the country code portion of the phone number. Then enter the remainder of your phone number. - -1. Click **Verify Phone Number** to send an SMS verification code. - -1. Once you receive the verification code on your phone, enter it within the **Verification Code** field. If you do not receive the code within a few minutes, you can click the **Resend verification code** button. - -1. After successfully entering the verification code, your phone number is verified and has been saved to your user account. - -## Multiple User Accounts - -Organizations that require multiple individuals to access the same customer account should create separate *user accounts* for each individual. Once you've created a user account, you can assign permissions to restrict access to certain services and areas of Cloud Manager. This is useful for providing all team members access to a single customer account, allowing a billing department to view invoices and billing details, or granting access to outside developers. For more information, see our guide on [Accounts and Passwords](/docs/products/platform/accounts/guides/manage-users/). - -## Single sign-on (SSO) with Akamai Control Center - -You can also log in to Cloud Manager using your [Akamai Control Center](https://control.akamai.com/) account credentials. - -- You must have an Akamai Control Center account to use this feature and your email address within that account must match the email address on your Cloud Manager user account. - -- When logging in with Akamai Control Center, any other login provider security settings (such as passwords and 2FA) are ignored for that login session. **Make sure your Control Center account is protected by a secure password and 2FA.** - -- This feature does not replace your login provider, which means you can also continue using your selected login provider (Cloud Manager, GitHub, or Google) to log in to Cloud Manager. - -To use this feature, select **Akamai Control Center** as the provider when logging in to Cloud Manager. You are automatically logged in to the Cloud Manager user that matches the email for the currently logged in Control Center user. If multiple Cloud Manager users match this email address, you can select which user to log in as. \ No newline at end of file diff --git a/docs/products/platform/accounts/guides/user-security-controls/phone-verification.png b/docs/products/platform/accounts/guides/user-security-controls/phone-verification.png deleted file mode 100644 index aa022a600c1..00000000000 Binary files a/docs/products/platform/accounts/guides/user-security-controls/phone-verification.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-security-controls/profile-link.png b/docs/products/platform/accounts/guides/user-security-controls/profile-link.png deleted file mode 100644 index 311fa4cdbd9..00000000000 Binary files a/docs/products/platform/accounts/guides/user-security-controls/profile-link.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-security-controls/security-questions.png b/docs/products/platform/accounts/guides/user-security-controls/security-questions.png deleted file mode 100644 index 44abb41416b..00000000000 Binary files a/docs/products/platform/accounts/guides/user-security-controls/security-questions.png and /dev/null differ diff --git a/docs/products/platform/accounts/guides/user-security-controls/trusted-devices.png b/docs/products/platform/accounts/guides/user-security-controls/trusted-devices.png deleted file mode 100644 index 1112a19b240..00000000000 Binary files a/docs/products/platform/accounts/guides/user-security-controls/trusted-devices.png and /dev/null differ diff --git a/docs/products/platform/accounts/resources/index.md b/docs/products/platform/accounts/resources/index.md deleted file mode 100644 index f880d5f73d3..00000000000 --- a/docs/products/platform/accounts/resources/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Resources -title_meta: "Resources for Managing Linode Accounts" -description: "Resources and other information related to Linode accounts including blog posts, community posts, and customer stories." -published: 2022-11-21 -tab_group_main: - weight: 40 ---- - -## Blog Posts - -- [GitHub Third-Party Authentication Speeds Up Sign-In](https://www.linode.com/blog/linode/github-third-party-authentication/) - -- [Google Single Sign-On Now Available on Linode](https://www.linode.com/blog/linode/google-single-sign-on-linode/) - -- [Multiple Account Management](https://www.linode.com/blog/linode/multiple-account-management/) - -## Community Posts - -- [What does a users limited access give you](https://www.linode.com/community/questions/18065/what-does-a-users-limited-access-give-you) - -- [How do I manage multiple accounts with the Linode CLI?](https://www.linode.com/community/questions/20161/how-do-i-manage-multiple-accounts-with-the-linode-cli) - -- [How do I re-generate 2FA backup codes for logging in to cloud.linode.com?](https://www.linode.com/community/questions/21086/how-do-i-re-generate-2fa-backup-codes-for-logging-into-cloudlinodecom) - -- [Yubikey as 2FA option for Manager?](https://www.linode.com/community/questions/17374/yubikey-as-2fa-option-for-manager) \ No newline at end of file diff --git a/docs/products/platform/billing/_index.md b/docs/products/platform/billing/_index.md deleted file mode 100644 index 73fb8eb3803..00000000000 --- a/docs/products/platform/billing/_index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Billing -title_meta: "Understanding How Billing Works on the Linode Platform" -description: "Learn how Linode makes billing simple and easy so you easily anticipate your cloud infrastructure costs" -published: 2019-10-25 -modified: 2023-09-20 -tab_group_main: - is_root: true - title: Overview - weight: 10 -keywords: ["billing", "payments"] -aliases: ['/products/tools/billing/','/platform/billing-and-support/prepaid-billing-and-payments-legacy/','/platform/billing-and-support/how-linode-billing-works/','/platform/billing-and-support/upgrade-to-hourly-billing/','/guides/how-linode-billing-works/','/billing-and-payments/','/platform/billing-and-support/billing-and-payments-classic-manager/','/platform/billing-and-support/billing-and-payments-new-manager/','/platform/billing-and-payments/','/platform/billing-and-support/billing-and-payments/',/guides/billing-and-payments/,'/guides/understanding-billing-and-payments/','/guides/platform/billing-and-support/'] -tags: ["linode platform"] ---- - -Linode strives to provide transparent and uncomplicated pricing structures and billing policies. As a supplement to our [Pricing](https://www.linode.com/pricing/) page, read through this guide to understand how we bill for services and how you can pay for these services. For instructions on how to manage your billing in Cloud Manager, see the [Manage Billing in Cloud Manager](/docs/products/platform/billing/guides/) guide. If you have a question that isn't answered in either of these guides, don't hesitate to [contact Support](https://www.linode.com/support/). - -## Understand How Billing Works - -Linode uses a hybrid hourly billing model that is simple and flexible. It enables you to continuously add, modify, and remove services throughout the month. After the month is over, you receive an invoice for *the hourly usage of each service **up to the monthly cap***. Here are some important billing considerations: - -- Every paid service offered by Linode has a predictable monthly rate (also called the monthly cap) in addition to a flexible hourly rate. - -- When a service is added, charges accrue on the account at the hourly rate up to the monthly cap. These *accrued charges* are displayed on the **Billing Info** tab within the Account page of Cloud Manager\*. Usage is always rounded up to the nearest hour. - -- Linode uses a monthly billing cycle. An invoice is automatically generated on the first day of each month and includes the previous month's usage. - -If your services stay the same month over month, your bill remains predictable. You are never billed more than the monthly rate for each service, excluding [network transfer overages](/docs/products/platform/get-started/guides/network-transfer/). If you use a service for just part of the month, hourly billing enables you to only be charged for the time the service is present on the account. - -\*Review the [Viewing Current Balance](/docs/products/platform/billing/guides/access-billing/) section of the Manage Billing in Cloud Manager guide to monitor your account balance and accrued charges throughout the month. - -### Example Billing Scenarios - -Here are a few examples of common billing scenarios you might encounter. For these examples, we will assume the month is 30 days (720 hours). We will also be using a *4GB Dedicated CPU Compute Instance*, which has an hourly rate of $0.054/hour and a monthly rate/cap of $36. - -#### A Service is Present on an Account for the *Entire* Month - -You create the Compute Instance before the start of the month and it remains on your account for the entire month. Calculating the service fees at the hourly rate for 720 hours (again, assuming a 30 day month), the total would have come to $38.88. Since this exceeds the monthly cap for this service, you are instead charged the predictable $36 monthly rate. - -#### A Service is Present on an Account for *Almost* the Entire Month - -You create the Compute Instance on the second day of the month, half-way through the day. It remains on your account for the remainder of the month and, in total, was used for 684 hours. Calculating the service fees at the hourly rate, the total would have come to $36.94. Since this still exceeds the monthly cap for this service, you are instead charged the predictable $36 monthly rate. - -#### A Service is Present on an Account for *Just Some* of the Month - -You created the Compute Instance mid-way through the month and deleted it exactly 5 days later. In total, it was used for 120 hours. Calculating the service fees at the hourly rate, the total is $6.48. Since this is less than the monthly cap, you are indeed billed at the hourly rate and charged $6.48 for your usage. - -#### A Service is Resized During the Billing Cycle - -Resizing a service, such as a Compute Instance, effectively creates a new billable service. Each of these billable services will appear as separate line items on your monthly invoice. For instance, you create a 4GB Compute Instance before the start of the month and resize it to an 8GB Compute Instance mid-way through the month. Your invoice will have two services as separate line items corresponding with the two different Compute Instance sizes that existed on your account during the billing cycle. Each line item will reflect the hourly rate for the time the service was active (up to the monthly cap). - -{{< note type=warning >}} -If a service is resized to a new plan and then resized back to the original plan all in a single billing cycle, there will be 3 billable services. The combined hourly rate for these services may exceed the monthly cap of the original service plan. -{{< /note >}} - -### Mid-Month Billing - -You may receive a mid-month bill from Linode if you reach a certain threshold of Linode services used within a single month. For many users, this amount will initially be **$50.00**. That amount can be adjusted over time by accruing a positive account history. In general, a history of on-time payments to Linode will increase the threshold amount. - -### Will I Be Billed For Powered Off or Unused Services? - -**Charges will accrue for any service present on an account, even if it is powered off or otherwise not actively being used.** This includes Linode Compute Instances that have been powered off as the data is still maintained and resources (such as RAM and network capacity) are still reserved. To avoid additional charges for a service you no longer need, [remove the service](/docs/products/platform/billing/guides/stop-billing/) from your account. - -### Data Center-Specific Pricing - -In general, Linode plans and services are billed at the same, flat rate across data centers. However, services and network transfer in some newer data centers may be billed at separate rates due to higher region-based infrastructure costs. - -For more information about pricing in these regions, refer to our [Pricing](https://www.linode.com/pricing/) page. - -## Payments - -When an invoice is generated on the first of the month (or mid-month), Linode automatically attempts to charge the account's default payment method. In addition to these automatic recurring payments, you can make one-time payments to add funds to your account, which will then be used to pay future invoices. - -### Manual Payments - -At any time, you can make a manual one-time payment to add funds to your account. This is used to pay a past-due balance or to *pre-pay* for services, which adds a positive account balance that will be used towards future invoices. Review the [Making a One-Time Payment](/docs/products/platform/billing/guides/make-a-payment/) section of the Manage Billing in Cloud Manager guide for instructions when submitting a manual payment. - -### Refunds - -A refund can be requested for any *positive account balance* (excluding promotion credits). You can also receive a full refund as part of our cancellation policy if you cancel within the first 7 days. To learn more about this cancellation policy, see the [Cancel Your Account](/docs/products/platform/accounts/guides/cancel-account/) guide. - -To request a refund, contact the [Support](https://www.linode.com/support/) team with the reason for your request. Refunds can only be considered for payments made within the last 180 days. Once the request is approved, the refund is issued to the original payment method. A $5 processing fee is deducted from all refunds, with the exception of cancelling an account within the first 7 days. \ No newline at end of file diff --git a/docs/products/platform/billing/developers/index.md b/docs/products/platform/billing/developers/index.md deleted file mode 100644 index aedf4b9bf8d..00000000000 --- a/docs/products/platform/billing/developers/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Billing and Payments" -description: "Linode Billing is managed easily with developer tools like the Linode API or CLI." -published: 2022-11-17 -tab_group_main: - weight: 50 -aliases: ['/products/tools/billing/developers/'] ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [List Invoices](/docs/api/account/#list-invoices) - -- [View Invoice](/docs/api/account/#view-invoice) - -- [List Invoice Items](/docs/api/account/#list-invoice-items) - -- [List Payments](/docs/api/account/#list-payments) - -- [Make Payment](/docs/api/account/#make-payment) - -- [View Payment](/docs/api/account/#view-payment) - -- [Stage PayPal Payment](/docs/api/account/#stage-paypal-payment) - -- [Staged/Approved PayPal Payment Execute](/docs/api/account/#stagedapproved-paypal-payment-execute) - -- [Add/Edit Credit Card](/docs/api/account/#addedit-credit-card) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [manage your account](/docs/products/tools/cli/guides/account/) diff --git a/docs/products/platform/billing/faqs/_index.md b/docs/products/platform/billing/faqs/_index.md deleted file mode 100644 index d77d69249ed..00000000000 --- a/docs/products/platform/billing/faqs/_index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "FAQs" -title_meta: "FAQs for Billing and Payments on the Linode Platform" -description: "Find quick answers to some of the most commonly asked billing questions." -published: 2022-10-28 -tab_group_main: - weight: 60 -aliases: ['/products/tools/billing/faqs/'] ---- - -## I’m not using my services but I’m still being charged. How do I stop this? - -You are charged for any service present on an account, even if it is powered off or otherwise not actively being used. To stop additional charges from accruing for a service, that service must be deleted. Keep in mind that your next invoice will include any fees for this service that have accrued during the billing cycle. See [Billing Overview](/docs/products/platform/billing/) for more details. - -## My bill is higher than expected. How can I get more information about these charges? - -Each bill, including mid-month bills, is available to view as an itemized invoice. These invoices contain a detailed breakdown of your charges. Each service that was present on the account at any point during the billing cycle is listed on the invoice, alongside the amount of time the service was active, the hourly rate, and the total charge for that service. - -All invoices are listed in the Billing & Payment History section of Cloud Manager. See [Viewing Invoices and Payments](/docs/products/platform/billing/guides/view-history/) for instructions. A copy of each invoice is also emailed to all users on the account with read and write billing access. - -## I deleted a service earlier this month. Why was I just charged for it now? - -Invoices are generated at the beginning of every month and include fees for services used during the previous month. See [Billing Overview](/docs/products/platform/billing/). On your invoice, you can view the dates each service was on the account. - -## Where can I view amount of credit available on my account? - -Promotional credits from a promo code are visible on the [Billing Info](https://cloud.linode.com/account/billing) page of Cloud Manager. This credit is listed under the **Promotions** section that is only visible *if a promo code has been applied to your account*. Other types of account credits are displayed on the same page under the **Account Balance section**. A balance that is green indicates the amount of credit on the account. A balance that is red indicates the amount currently past due. - -## Will my current credit cover my next invoice? - -Any credits on your account, including promotional credits and other account credits, are automatically applied to your next invoice. You can verify if your available credits meet your current expenditure by reviewing your [currently accrued charges](/docs/products/platform/billing/guides/access-billing/) and calculating your usage for the remainder of the billing cycle. See the [Pricing](https://www.linode.com/pricing/) page for a detailed list of all service fees. - -## When will I receive my first bill? - -Invoices are generated on the first day of each month. For instance, if you joined on September 15th, you will receive your first bill on October 1st for any services used during the month of September. An exception to this is if your service fees have exceeded your account's billing threshold, in which case you will receive a bill at that time. See [Mid-Month Billing](/docs/products/platform/billing/#mid-month-billing). - -## Can I change my billing date? - -Invoices are automatically generated on the first day of each month. While this cannot be changed, you may contact [Support](https://www.linode.com/support/) if you would like to be billed more frequently or in smaller increments. - -## Why did I receive more than one invoice this month? - -If your account exceeds its billing threshold (also called the *credit limit*), you will receive a bill for the currently accrued charges at that time. For new accounts, this threshold begins at $50 and it automatically adjusted as you continue to use Linode services. If you would like this to be adjusted, contact [Support](https://www.linode.com/support/). See [Mid-Month Billing](/docs/products/platform/billing/#mid-month-billing). - -## Can I make a payment in advance? - -Yes. At any time, you can make a payment on your account. If the payment is greater than any past due amount, it gets stored as a positive account balance. This balance is automatically applied to future invoices. You can estimate your end of month costs using our [Pricing](https://www.linode.com/pricing/) page and view your account balance from the Billing Info page of Cloud Manager. See [Making a One-Time Payment](/docs/products/platform/billing/guides/make-a-payment/). - -## What are Linode’s currently accepted payment methods? - -Linode accepts all major credit cards, Google Pay, PayPal, and other forms of payment. To view a complete list of all accepted payment methods, see [Payment Methods](/docs/products/platform/billing/guides/payment-methods/). - -## Why did my card get declined? - -A card can be declined for many different reasons. Banks often do not pass along details for declined charges to vendors, like Linode. To investigate why your card was declined, contact your bank. - -## How do I remove a credit card from my account? - -You can manage your payment methods, including credit cards, from Cloud Manager. To learn how to remove a credit card, see [Remove a Payment Method](/docs/products/platform/billing/guides/payment-methods/#remove-a-payment-method). Keep in mind you must have at least one valid payment method on file. If you are attempting to delete your only payment method, you must add a new payment method first. - -## Can I make a payment in another currency? - -We only accept payments in USD. If you wish to pay in another currency, you must use a credit card or other form of payment that can process the currency exchange on your behalf. - -## Can more than one person receive the invoice each month? - -Yes, any user on an account with the appropriate billing permissions (read and write billing access) will receive a copy of invoices. See [Setting User Permissions](/docs/products/platform/accounts/guides/user-permissions/) for more details and see [Adding a User](/docs/products/platform/accounts/guides/manage-users/#add-a-user) for instructions on creating another user for your account. - -## How do I adjust the name or company on my invoice? - -Your billing contact information is used on each invoice. To adjust the name, company, address, or tax ID that appears on the invoice, you must adjust the corresponding billing contact field. See [Update Billing Contact Information](/docs/products/platform/billing/guides/update-billing-contact-info/). \ No newline at end of file diff --git a/docs/products/platform/billing/faqs/tab.svg b/docs/products/platform/billing/faqs/tab.svg deleted file mode 100644 index 24b2df1f82a..00000000000 --- a/docs/products/platform/billing/faqs/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/platform/billing/feature.svg b/docs/products/platform/billing/feature.svg deleted file mode 100644 index f59930e7c4d..00000000000 --- a/docs/products/platform/billing/feature.svg +++ /dev/null @@ -1,12 +0,0 @@ - - Billing - - - - - - - - - - \ No newline at end of file diff --git a/docs/products/platform/billing/guides/_index.md b/docs/products/platform/billing/guides/_index.md deleted file mode 100644 index f022055ee36..00000000000 --- a/docs/products/platform/billing/guides/_index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Billing and Payments" -description: "A collection of documentation related to managing billing, payments, and other related topics on the Linode platform." -published: 2022-11-17 -tab_group_main: - weight: 30 -aliases: ['/platform/billing-and-support/manage-billing-in-cloud-manager/','/guides/manage-billing-in-cloud-manager/','/products/tools/billing/guides/'] ---- - -## Basics - -- [Billing Overview](/docs/products/platform/billing/): Understand how billing works on Linode. - -- [Access Billing Information](/docs/products/platform/billing/guides/access-billing/): View billing information, including checking your account balancing and accrued charges. - -- [Update Billing Contact Information](/docs/products/platform/billing/guides/update-billing-contact-info/): Update the billing address on file and change the email address where invoices are sent. - -- [View Invoices and Payment History](/docs/products/platform/billing/guides/view-history/): Review all invoices and payments on the account. - -- [Manage Payment Methods](/docs/products/platform/billing/guides/payment-methods/): Learn what payment methods Linode accepts and how to view, add, and remove them. - -- [Make a Payment](/docs/products/platform/billing/guides/make-a-payment/): Make a one-time payment on your account. - -- [Tax Information](/docs/products/platform/billing/guides/tax-information/): A list of regions that require taxes on Linode services. - -- [Add a Promo Code](/docs/products/platform/billing/guides/promo-code/): Instructions on adding a promo code to your account. - -- [Referral Program](/docs/products/platform/billing/guides/referral-program/): Learn about the Linode referral program and referral credits. - -- [Stop Further Billing](/docs/products/platform/billing/guides/stop-billing/): Instructions on removing services to stop charges from accruing. \ No newline at end of file diff --git a/docs/products/platform/billing/guides/access-billing/account-billing.png b/docs/products/platform/billing/guides/access-billing/account-billing.png deleted file mode 100644 index 0714f40c7bb..00000000000 Binary files a/docs/products/platform/billing/guides/access-billing/account-billing.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/access-billing/index.md b/docs/products/platform/billing/guides/access-billing/index.md deleted file mode 100644 index 94071450267..00000000000 --- a/docs/products/platform/billing/guides/access-billing/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Access Billing Information" -description: "View billing information, including checking your account balancing and accrued charges." -published: 2022-11-17 -aliases: ['/products/tools/cloud-manager/guides/cloud-credits/'] ---- - -Most information and settings pertaining to billing are located within the [Billing Info](https://cloud.linode.com/account/billing) page of Cloud Manager. Follow the instructions below to access this page: - -1. Log in to [Cloud Manager](https://cloud.linode.com) on a user account with one of the following permissions. See [Setting User Permissions](/docs/products/platform/accounts/guides/user-permissions/) for more details. - - - **Full account access** (unrestricted). - - Restricted user with *Read-Write* permissions under **Billing Access**. Users with *Read Only* permissions are able to see most billing information but they are not able to make changes. - -1. Click on the **Account** link on the left menu, which displays the [Billing Info](https://cloud.linode.com/account/billing) page. - -![The Billing Info page showing an example customer with a $24 negative balance and $9 of accrued charges.](account-billing.png) - -This page contains several sections: - -- **Account Balance:** The current balance on the account. This includes any past due amounts from unpaid invoices as well as any positive balance remaining from credits or promo codes. In the screenshot above, the account has a positive balance of $10. - -- **Promotions:** If there is an active promo/coupon applied to the account, it will be displayed here along with the remaining balance and any expiration date. If there are no active promotions, this section is hidden. - -- **Accrued Charges:** The charges that have accrued since your last invoice. This updates frequently to include the hourly charges (up to the monthly cap) for all paid services on the account, as well as any other charges. In the screenshot above, the account has accrued $8.51 of charges since the last invoice. See the [Billing Overview](/docs/products/platform/billing/) guide for help understanding these charges. - -- **Billing Contact:** The name, address, phone number, and email address for the primary billing contact on the account. See [Update Billing Contact Information](/docs/products/platform/billing/guides/update-billing-contact-info/). - -- **Payment Methods:** The payment methods that have been added to the account. - -- **Billing & Payment History:** Displays a list of previous invoices and payments, along with links to view or download each entry. See [View Invoices and Payment History](/docs/products/platform/billing/guides/view-history/) \ No newline at end of file diff --git a/docs/products/platform/billing/guides/make-a-payment/index.md b/docs/products/platform/billing/guides/make-a-payment/index.md deleted file mode 100644 index 818a4aace3d..00000000000 --- a/docs/products/platform/billing/guides/make-a-payment/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Make a Payment" -description: "Learn what payment methods Linode accepts and how to view, add, and remove them." -published: 2022-11-17 ---- - -## Pay Your Bill - -When an invoice is generated, the default payment method on the account is automatically charged within a few hours. See [View and Change the Default Payment Method](/docs/products/platform/billing/guides/payment-methods/#view-and-change-the-default-payment-method) for instructions on changing the default payment method. - -If you wish to pay in advance, follow the instructions within the [Make a One-Time Payment](#make-a-one-time-payment) section below. - -## Make a One-Time Payment - -You can manually add funds to your account at any time. Manual payments can be used to pay an outstanding balance or prepay for future services. - -1. Navigate to the **Billing Info** page in [Cloud Manager](https://cloud.linode.com/account/billing) (see [Accessing Billing Information](/docs/products/platform/billing/guides/access-billing/)). -1. Click the **Make a Payment** button on the top right of the page, which opens the **Make a Payment** panel. -1. Enter the amount of money you would like to add to your account in the **Payment Amount** field. For your reference, the current balance on the account is displayed above this field. -1. **To pay with a saved payment method:** Select the saved payment method you wish to use in the **Payment methods** section and click the **Pay now** button. - - **To pay with PayPal:** Click the **PayPal** button towards the bottom of the panel. This will open up PayPal's own payment form, where you can log in to your PayPal account and select your payment method. Once finished, you will be returned to Cloud Manager. - - **To pay with an new Google Pay account or method:** Click the **Google Pay** button towards the bottom of the panel. This will open up Google's own payment form where you can log in to your Google account and select your payment method. Once finished, you will be returned to Cloud Manager. - -The payment may take a few minutes to be applied to your account. diff --git a/docs/products/platform/billing/guides/payment-methods/add-method-credit-card.png b/docs/products/platform/billing/guides/payment-methods/add-method-credit-card.png deleted file mode 100644 index bf493ae4b96..00000000000 Binary files a/docs/products/platform/billing/guides/payment-methods/add-method-credit-card.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/payment-methods/add-method-google-pay.png b/docs/products/platform/billing/guides/payment-methods/add-method-google-pay.png deleted file mode 100644 index 2fba33c50ec..00000000000 Binary files a/docs/products/platform/billing/guides/payment-methods/add-method-google-pay.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/payment-methods/add-method-paypal.png b/docs/products/platform/billing/guides/payment-methods/add-method-paypal.png deleted file mode 100644 index 8c1e7c845d7..00000000000 Binary files a/docs/products/platform/billing/guides/payment-methods/add-method-paypal.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/payment-methods/delete-payment-method.png b/docs/products/platform/billing/guides/payment-methods/delete-payment-method.png deleted file mode 100644 index d7c3de9a444..00000000000 Binary files a/docs/products/platform/billing/guides/payment-methods/delete-payment-method.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/payment-methods/index.md b/docs/products/platform/billing/guides/payment-methods/index.md deleted file mode 100644 index a4160c9b4e2..00000000000 --- a/docs/products/platform/billing/guides/payment-methods/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Manage Payment Methods" -description: "Learn what payment methods Linode accepts and how to view, add, and remove them." -published: 2022-11-17 ---- - -## Payment Methods - -- **Credit card:** Pay using all popular credit (and debit) cards, including those issued by Visa, MasterCard, Discover, American Express, and UnionPay. - -- **Google Pay:** Pay using a credit card, debit card, or PayPal through your Google Pay account. Paying with your Google Pay balance or any associated bank accounts are not supported at this time. - - {{< note >}} - To add a PayPal account to your Google Pay account, you currently must do so through the [Google Play Store](https://play.google.com/store/paymentmethods). PayPal cannot currently be added through the Google Pay website or mobile apps. When adding PayPal through Google Pay, it appears as a Discover Card within Cloud Manager and the Linode API. - {{< /note >}} - -- **PayPal:** Pay using your PayPal balance, a credit (or debit) card, or bank account through your PayPal account. - -- **Check, ACH, or wire transfer:** Please [contact Support](https://www.linode.com/support/) if you wish to pay through one of these methods. - -See [Adding a New Payment Method](/docs/products/platform/billing/guides/payment-methods/#add-a-new-payment-method) for instructions on adding a new payment method to your account. - -## Add a New Payment Method - -New payment methods can be added to an account through Cloud Manager. Up to **6 payment methods** can be active on an account at any given time, including multiple credit cards, Google Pay methods, and PayPal methods. - -1. Navigate to the **Billing Info** page in [Cloud Manager](https://cloud.linode.com/account/billing) (see [Accessing Billing Information](/docs/products/platform/billing/guides/access-billing/)). - -1. If adding a credit card directly (not through Google Pay or PayPal), it must match the account's billing contact information and address. Review the **Billing Contact** section and edit it as necessary (see [Update Billing Contact Information](/docs/products/platform/billing/guides/update-billing-contact-info/)). - -1. In the **Payment Method** section, click the *Add Payment Method* link. This opens the **Add Payment Method** panel. - -1. Complete the form according to the payment method you wish to add. - - **To pay with a credit card:** Enter the credit card number, expiration date, and the security code (CVV) of the new card. Then click **Add Credit Card**. - - ![Form to add a credit card](add-method-credit-card.png) - - {{< note >}} - A $1.00 authorization hold may be placed on your credit card by your banking institution when our payment processor tests the validity of the card. This is normal behavior and does not result in a charge on your card. - {{< /note >}} - - **To pay with Google Pay:** Click the **Google Pay** icon/button to open Google's own Google Pay form. Log in to your Google account and select the payment method you wish to use. Press **continue** (or otherwise complete the form) to be taken back to Cloud Manager. - - ![Button to add Google Pay](add-method-google-pay.png) - - **To pay with PayPal:** Click the **PayPal** icon/button to open PayPal's own form. Log in to your PayPal account and select the credit card or bank account you wish to use. Optionally check or uncheck the **Use balance first** option to use any PayPal balance before the selected credit card or bank account. Press **Save and Continue** (or otherwise complete the form) to be taken back to Cloud Manager. - - ![Button to add PayPal](add-method-paypal.png) - -1. After the payment method is added, it will be assigned as the *default* payment method and will be used for future recurring payments. This can be changed by following the instructions within the [Viewing and Changing the Default Payment Method](#viewing-and-changing-the-default-payment-method) section. - -{{< note >}} -This process does not immediately charge any past due balance on the account to the new card. If you have an outstanding balance, you need to make a manual payment to bring your account up to date. See the [Making a One-Time Payment](#making-a-one-time-payment) section for more information. -{{< /note >}} - -## Remove a Payment Method - -To delete a payment method from your account, follow the instructions below. - -1. Navigate to the **Billing Info** page in [Cloud Manager](https://cloud.linode.com/account/billing) (see [Accessing Billing Information](/docs/products/platform/billing/guides/access-billing/)). -1. Under the **Payment Methods** section, locate the payment method you wish to remove. -1. Click the corresponding ellipsis menu and select **Delete** from the dropdown menu. If the payment method is the default payment method on the account, the **Delete** button will be disabled and you will first need to change the default method. - -![The Delete button within a payment method's dropdown menu](delete-payment-method.png) - -## View and Change the Default Payment Method - -When an invoice is generated, the amount of that invoice (as well as any past due balance) will be charged to the *default* payment method on the account. The default payment method can be viewed and changed by following the instructions below. - -1. Navigate to the **Billing Info** page in [Cloud Manager](https://cloud.linode.com/account/billing) (see [Accessing Billing Information](/docs/products/platform/billing/guides/access-billing/)). -1. Under the **Payment Methods** section, the payment method currently used by default has a label of *default* (located to the right of the last 4 digits and expiration date). -1. To change the default payment method, click the ellipsis menu next to the payment method you wish to use and select **Make Default** from the dropdown menu. - -![The Make Default button within a payment method's dropdown menu](set-default-payment-method.png) \ No newline at end of file diff --git a/docs/products/platform/billing/guides/payment-methods/set-default-payment-method.png b/docs/products/platform/billing/guides/payment-methods/set-default-payment-method.png deleted file mode 100644 index a6440f57e61..00000000000 Binary files a/docs/products/platform/billing/guides/payment-methods/set-default-payment-method.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/promo-code/account-balance-add-promo.png b/docs/products/platform/billing/guides/promo-code/account-balance-add-promo.png deleted file mode 100644 index b932cdd78fd..00000000000 Binary files a/docs/products/platform/billing/guides/promo-code/account-balance-add-promo.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/promo-code/index.md b/docs/products/platform/billing/guides/promo-code/index.md deleted file mode 100644 index e67bb72604c..00000000000 --- a/docs/products/platform/billing/guides/promo-code/index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Add a Promo Code" -description: "Instructions on adding a promo code to your Linode account." -published: 2022-11-17 ---- - -A *promo code* adds a positive credit to an account, allowing you to pay for services using that credit. You're able to add a promo code when signing up for an account. If you already signed up but haven't entered a promo code, you may be able to do so from Cloud Manager. To add a promo code to an existing account, certain conditions must be met: - -- The account must be less than 90 days old. -- There must not be a negative balance on the account. -- No other promo codes can already be applied to the account. -- The user that's logged in must have unrestricted permissions. - -If those conditions are met, you can add a promo code by following these instructions: - -1. Navigate to the **Billing Info** page in [Cloud Manager](https://cloud.linode.com/account/billing) (see [Accessing Billing Information](/docs/products/platform/billing/guides/access-billing/)). - -1. Under the **Account Balance** section, click the *Add a promo code* link. - - ![Account balance section of the Billing Info page](account-balance-add-promo.png) - -1. In the **Add promo code** dialog box that is displayed, enter the promo code and click the **Apply Promo Code** button. You should now see the promotional credit amount reflected in your account balance. \ No newline at end of file diff --git a/docs/products/platform/billing/guides/referral-program/index.md b/docs/products/platform/billing/guides/referral-program/index.md deleted file mode 100644 index 5f51cda21e0..00000000000 --- a/docs/products/platform/billing/guides/referral-program/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Referral Program" -description: "Learn how to join Linode's referral program and gain credits when you refer new users" -published: 2022-11-17 ---- - -When you refer a new user to Linode through our referral program, both you and the new user can receive a promotional credit. Here are the program details: - -- **A new user receives a $100 60-day credit** when they sign up through a referral link. Before the credit is applied, they must add a valid payment method to their account. - -- **The referrer receives a $25 non-expiring credit** once the new user has been active for 90-days and spends $25 or more on services (after their promotional credit has been used or has expired). - -To learn more about this program, visit the [Referral Program](https://www.linode.com/referral-program/) page on our website. - -### Find Your Referral Link - -To activate the referral program and obtain a referral link, you must spend at least $25 with Linode, not including any promotional credits added to your account. Once activated, your referral link (including your unique referral code) can be viewed within Cloud Manager. - -1. Log in to the [Linode Cloud Manager](https://cloud.linode.com). -1. Select the **My Profile** link by clicking on your username at the top of the page. -1. Select the **Referrals** tab. -1. The referral code and URL are listed within this section. - -You can provide the referral link to friends and colleagues as well as post it to your website and social media. \ No newline at end of file diff --git a/docs/products/platform/billing/guides/stop-billing/index.md b/docs/products/platform/billing/guides/stop-billing/index.md deleted file mode 100644 index 6dc2cebbf08..00000000000 --- a/docs/products/platform/billing/guides/stop-billing/index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Stop Further Billing" -description: "Instructions on removing services to stop charges from accruing on your Linode account." -published: 2022-11-17 ---- - -To prevent additional charges from accruing and stop further billing, you can remove any paid services from your account or cancel your account entirely. - -## Remove Services - -Linode services are provided without a contract or commitment. This means that you can remove them from your account at any time. Here are instructions for removing a Compute Instance: - -1. Log in to [Cloud Manager](https://cloud.linode.com) and select **Linodes** from the sidebar menu. -1. Locate the Compute Instance you wish to delete. -1. Expand the corresponding **more options ellipsis** menu and click **Delete**. -1. Select **Delete Linode** in the confirmation box that appears. - -If you wish to delete other services, follow the links below: - -- [Backup Service](/docs/products/storage/backups/guides/cancel/) -- [Delete Block Storage Volume](/docs/products/storage/block-storage/guides/manage-volumes/#delete-volume) -- [Cancel Object Storage](/docs/products/storage/object-storage/guides/cancel/) -- [Delete a NodeBalancer](/docs/products/networking/nodebalancers/guides/manage/#delete-a-nodebalancer) - -{{< note type="alert" >}} -Removing a service from your account makes its data irretrievable. In the case of a Compute Instance, any corresponding Backup service is also deleted and you will no longer be able to restore from those backup snapshots. - -If you would like to preserve your data before removing a service from your account, you need to create an external backup. You may use the suggestions in our [Backing Up Your Data](/docs/guides/backing-up-your-data/) guide for some examples of how to do this. - -When removing a Compute Instance from your account that has been active for at least 24 hours, a [Recovery Image](/docs/products/tools/images/get-started/) is automatically created. To learn how to deploy this image, see [Deploy an Image to a New Compute Instance](/docs/products/tools/images/guides/deploy-image-to-new-linode/). - -There is a very small chance that Linode Support can restore your data outside of these circumstances. The sooner you reach out to Linode Support, the more likely this can occur. Please open [a Support ticket](https://cloud.linode.com/support/tickets) to explore this possibility. -{{< /note >}} - -## Cancel Account - -If you no longer wish to use any Linode services, you can also cancel your account. When an account is cancelled, you may receive one final bill. This bill includes all charges that have already accrued during the billing period. See [Cancel Your Account](/docs/products/platform/accounts/guides/cancel-account/) to learn more. \ No newline at end of file diff --git a/docs/products/platform/billing/guides/tax-information/index.md b/docs/products/platform/billing/guides/tax-information/index.md deleted file mode 100644 index dc464d4659d..00000000000 --- a/docs/products/platform/billing/guides/tax-information/index.md +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: Tax Information -description: "Learn which taxes are collected by Linode and how to add a tax identification number to your account." -published: 2019-04-09 -modified: 2024-08-05 -keywords: ["accounts", "vat", "linode manager", "linode cloud manager", "manager", "tax", "taxes", "tax information", "usd", "vat id", "eu", "european union", "value added tax", "gst", "goods and services tax", "gst id", "tax id"] -aliases: ['/platform/billing-and-support/european-union-vat-linode/','/platform/billing-and-support/european-union-vat-linode-classic-manager/','/platform/billing-and-support/tax-information/','/platform/billing-and-support/tax-information-classic-manager/','/guides/tax-information/'] -tags: ["linode platform"] ---- - -Some countries, states, and regions require us by law to collect taxes. As such, customers located in these locations are charged the appropriate tax rate for any taxable services billed to their account. The taxes that Linode collects are listed on customer invoices (see the [Viewing Invoices and Payments](/docs/products/platform/billing/guides/view-history/) section of our Cloud Manager Billing guide). - -{{< note >}} -Pricing and service fees posted publicly, such as our [Pricing](https://www.linode.com/pricing/) page and listed in Cloud Manager, do not include taxes. -{{< /note >}} - -## List of Countries and Tax Rates - -The following table lists each country that requires us to collect taxes. Alongside each country is the tax rate, a link to additional tax details, and the date which Linode started to collected taxes in that country. Tax rates are subject to change and the most current rate will be used on customer invoices. - -| Country | Tax Rate | Tax Details | Start Date | -| -- | -- | -- | -- | -| Australia | 10% | [GST](https://www.ato.gov.au/Business/GST/) | October 1, 2019 | -| Austria | 20% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Belgium | 21% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Bulgaria | 20% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Cambodia | 10% | [VAT](https://www.tax.gov.kh/en/content-detail/CivCT4107950038436) | December 15, 2022 | -| [Canada](#canada) (see below) | | | | -| Chile| 19% | [VAT](https://www.sii.cl/destacados/foreign_investor/vat.html) | December 15, 2022 | -| Croatia | 25% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Cyprus | 19% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Czech Republic | 21% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Denmark | 25% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Egypt | 14% | [VAT](https://www.eta.gov.eg/en/content/egyptian-tax-authority-eta-has-recently-published-value-added-tax-vat-guidelines-digital) | March 1, 2024 | -| Estonia | 22% | [VAT](https://www.emta.ee/en/business-client/taxes-and-payment/value-added-tax) | January 1, 2024 | -| Greece | 24% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Finland | 24% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| France | 20% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Germany | 19% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Hungary | 27% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| India | 18% | [GST](http://gstcouncil.gov.in/sites/default/files/faq/sectoral-faq-it-ites.pdf) | October 1, 2019 | -| Ireland | 23% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Italy | 22% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Japan | 10% | [JCT](https://www.eu-japan.eu/taxes-accounting/consumption-taxes) | April 1, 2022 | -| Kenya | 16% | [VAT](https://www.kra.go.ke/individual/filing-paying/types-of-taxes/value-added-tax) | June 1, 2023 | -| Korea | 10% | [VAT](https://teht.hometax.go.kr/websquare/websquare.wq?w2xPath=/ui/ca/a/b/UTECAABA12.xml) | June 1, 2024 | -| Latvia | 21% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Lithuania | 21% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Luxembourg | 17% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Malaysia | 8% | [SST](https://mysst.customs.gov.my/AboutBackground) | March 1, 2024 | -| Malta | 18% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Netherlands | 21% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| New Zealand | 15% | [GST](https://www.ird.govt.nz/gst) | October 1, 2023 | -| Norway | 25% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | May 1, 2022 | -| Poland | 23% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Portugal | 23% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Romania | 19% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Russian Federation | 20% | [VAT](https://www.nalog.gov.ru/rn77/TAXATION/TAXES/NDS/) | December 15, 2022 | -| Saudi Arabia | 15% | [VAT](https://zatca.gov.sa/en/Pages/default.aspx) | May 1, 2024 | -| Singapore | 8% | [GST](https://www.iras.gov.sg/irashome/GST/GST-registered-businesses/Learning-the-basics/How-to-implement-GST/Current-GST-Rates/) | September 1, 2020 | -| Slovakia | 20% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Slovenia | 22% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Spain | 21% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Sweden | 25% | [EU VAT](https://europa.eu/youreurope/business/taxation/vat/vat-rules-rates/index_en.htm) | July 1, 2019 | -| Switzerland | 7.7% | [VAT](https://www.estv.admin.ch/estv/en/home/value-added-tax/vat-rates-switzerland.html) | December 15, 2022 | -| Thailand | 10% | [VAT](https://www.rd.go.th/english/6043.html) | October 1, 2023 | -| Turkey | 20% | [VAT](https://www.gib.gov.tr/sites/default/files/fileadmin/taxation_system2021.pdf) | April 1, 2024 | -| Uganda | 18% | [VAT](https://ura.go.ug/en/vat-registered-category/) | May 1, 2024 | -| Ukraine | 20% | [VAT](https://ukraineinvest.gov.ua/en/analytics-research/overview-of-taxation/) | April 1, 2024 | -| United Arab Emirates | 5% | [VAT](https://u.ae/en/information-and-services/finance-and-investment/taxation/valueaddedtaxvat) | December 15, 2022 | -| United Kingdom | 20% | [VAT](https://www.gov.uk/vat-rates) | July 1, 2019 | -| [United States](#united-states) (see below) | | | | - - -### Canada - -Taxes have been collected for customers located in Canada since **May 1st, 2022**. The following table below lists the tax rate for each Province/Territory, as well as additional tax details: - -| Province | Tax Rate Total | Tax Details | -| -- | -- | -- | -- | -| Alberta | 5% | [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | -| British Columbia | 12% | Combination of [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) and [7% PST](https://www2.gov.bc.ca/gov/content/taxes/sales-taxes/pst) | -| Manitoba | 12% | Combination of [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) and [7% PST](https://www.gov.mb.ca/finance/taxation/taxes/retail.html) | -| New Brunswick | 15% | [15% HST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | -| Newfoundland and Labrador | 15% | [15% HST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | -| Northwest Territories | 5% | [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | -| Nova Scotia | 15% | [15% HST](https://novascotia.ca/finance/en/home/taxation/tax101/hst/default.aspx.html) | -| Nunavut | 5% | [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | -| Ontario | 13% | [13% HST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | -| Prince Edward Island | 15% | [15% HST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | -| Quebec | 14.975% | Combination of [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) and [9.975% QST](https://www.revenuquebec.ca/en/businesses/consumption-taxes/gsthst-and-qst/basic-rules-for-applying-the-gsthst-and-qst/) | -| Saskatchewan | 11% | Combination of [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) and [6% PST](https://www.saskatchewan.ca/business/taxes-licensing-and-reporting/provincial-taxes-policies-and-bulletins#:~:text=Provincial%20Sales%20Tax%20(PST)%20is,consumption%20or%20use%20in%20Saskatchewan) | -| Yukon | 5% | [5% GST](https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4027/doing-business-canada-gst-hst-information-non-residents.html) | - -### United States - -The following table lists each U.S. state and district that requires us to collect sales taxes, along with the date Linode has started (or will start) to collect tax in that state. Tax rates are subject to change and the most current rate is used when an invoice is generated. Tax is only collected on taxable products, which may vary between regions. - -| State or District | Start Date | -| -- | -- | -| Arizona | May 1, 2022 | -| Colorado localities | December 15, 2022 | -| Connecticut | December 15, 2022 | -| Hawaii | May 1st, 2022 | -| Iowa | February 1, 2023 | -| Maryland | February 1, 2023 | -| Massachusetts | December 15, 2022 | -| Mississippi | December 15, 2022 | -| New Mexico | December 15, 2022 | -| New York | December 15, 2022 | -| Ohio | February 1, 2023 | -| Pennsylvania | May 1, 2022 | -| Rhode Island | December 15, 2022 | -| South Carolina | December 15, 2022 | -| South Dakota | August 1, 2022 | -| Tennessee | December 15, 2022 | -| Texas | May 1, 2022 | -| Utah | December 15, 2022 | -| Washington | May 1, 2022 | -| Washington D.C | August 1, 2022 | -| West Virginia | December 15, 2022 | - -## Preventing Tax Collection - -Many customers using Linode for business or personal reasons may prefer to have Linode automatically calculate any required taxes and add them to each invoice. That said, some registered businesses or organizations may wish to prevent taxes from being added to their Linode invoices. This includes businesses that are tax exempt or businesses that are liable to pay taxes directly to their government's tax agency due to a special tax status or program (like RCM - Reverse Charge Mechanism). - -For eligible tax-exempt users in most countries, you can add your VAT or GST tax ID to your Linode account to have taxes removed from your invoices. See [Adding a Tax ID](#adding-a-tax-id) below for instructions on how to add your tax ID to your account. - -For users within the **United States** and **Canada**, you need to submit both your tax ID and state tax exemption or reseller's certificate via [Support Ticket](https://www.linode.com/support/) rather than adding your tax ID to your Linode account. This must happen before you are eligible to become exempt. Once approved, your tax ID will be added to your account by our team. Note that registered Canadian businesses may become exempt from PST sales tax but will always be billed for GST, HST, and QST sales tax. - -{{< note type="alert" >}} -If you are located in one of the countries that require taxes on our services, you are still liable for those taxes. Adding your tax ID does not exempt you from your liability to pay any taxes that have been mandated by your country for our services. Instead, this lets you settle your taxes directly with your government's tax agency. -{{< /note >}} - -### Adding a Tax ID - -To add (or update) your account with a tax ID, follow the instructions below. A tax ID can also be added to an account during the signup process. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Navigate to the **Account** link in the sidebar. - -1. Expand the **Update Contact Information** panel under the **Billing Info** tab. - -1. Enter your tax ID in the **Tax ID** field. - -1. Click on the **Save** button at the bottom of the **Update Contact Information** panel. - -## FAQs - -### How is my tax location determined? - -Your tax location is determined by the contact information you provided during sign up or under the **Account** page in the [Linode Cloud Manager](https://cloud.linode.com). - -### How can I change my tax location? - -You may update your tax location by navigating to the **Account** page in [Cloud Manager](https://cloud.linode.com) and then expanding the **Update Contact Information** panel. - -### My business is tax exempt. How can I stop further taxes from being charged to my Linode account? - -If your business or organization is tax exempt, you should add a verifiable tax ID to your Linode account. Once verified, taxes will no longer be added to invoices for customers outside of the **United States** and **Canada**. See [Preventing Tax Collection](#preventing-tax-collection). Customers inside the **United States** and **Canada** will additionally need to submit any tax exemption certificates or reseller's certificates by [Opening a Support Ticket](https://www.linode.com/support/) which contains the required information. Registered businesses in **Canada** will always be billed for GST and HST sales tax. Registered Canadian businesses may become exempt from PST sales tax by submitting a valid tax ID and PST certificate. - -### How can I review the taxes charged on previous invoices? - -To view previous invoices, see the [Viewing Invoices and Payments](/docs/products/platform/billing/guides/view-history/) guide. When viewing the invoice, review the **Tax** column to see the taxes that were charged on each service. - -### Why is my invoice in USD? Can I get an invoice in another currency? - -To keep our pricing stable and consistent, rather than fluctuating with exchange rates, we do not bill in local currency. All invoices are in USD. - -### What is Linode's Tax ID for my country or province? - -| Country or Province and Tax Program | Linode's ID | Akamai's Tax ID | -| -- | -- | -- | -| Australia ATO ARN | 3000 1606 0612 | 3000 2470 8487 | -| British Columbia PST | 1470-0325 | 1471-1731 | -| Canadian GST | 724750708RT0001 | 871275582RT0001 | -| Cambodia VAT | N/A | L001-902205344 | -| Chile VAT | N/A | 59318000K | -| Egypt VAT | N/A | 694853968 | -| EU VAT | EU372008859 | EU372048842 | -| India GST | 9919JEY29001OST | 9922CHE29001OSR | -| Japan JCT | 00140 | 00143 | -| Japan QI | N/A | T4700150118765 | -| Kenya VAT | N/A | P052208918D | -| Korea VAT | N/A | 766-80-02978 | -| Manitoba RST | 138835-4 | 141763-3 | -| Malaysia SST | N/A | 22000048 | -| Norway VAT | 2063948 | 2070510 | -| Quebec Provincial QST (effective May 1, 2022) | 1229663158 TQ0001 | 1229976512 TQ0001 | -| Russian Federation VAT | N/A | 9909524583 | -| Saskatchewan PST | 759622 | 7648249 | -| Saudi Arabia | VAT | 312111964100003 | -| Singapore GST | M90373465T | M90374823J | -| Switzerland VAT | N/A | CHE-115.356.067 MWST | -| Turkey VAT | N/A | 0120733196 | -| Uganda VAT | N/A | 1044189563 | -| Ukraine VAT | N/A | 880031567 | -| United Kingdom VAT | GB383720095 | 434006338 | -| United Arab Emirates | N/A | 104038424800003 | -| United States EIN | 20-2647179 | 04-3432319 | \ No newline at end of file diff --git a/docs/products/platform/billing/guides/update-billing-contact-info/accounts-update-billing-info.png b/docs/products/platform/billing/guides/update-billing-contact-info/accounts-update-billing-info.png deleted file mode 100644 index dcb835adf90..00000000000 Binary files a/docs/products/platform/billing/guides/update-billing-contact-info/accounts-update-billing-info.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/update-billing-contact-info/index.md b/docs/products/platform/billing/guides/update-billing-contact-info/index.md deleted file mode 100644 index b47cc4a4623..00000000000 --- a/docs/products/platform/billing/guides/update-billing-contact-info/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Update the Billing Contact Information on Your Account" -description: "Learn how to edit the billing address, name, and other contact information on your Linode account." -published: 2022-11-16 ---- - -Use the **Billing Info** page to update the contact information for the Linode account. The email address saved on this webpage receives invoices, receipts, and credit card expiration warnings. - -{{< note >}} -Linode Support tickets are *not* sent to your Billing Contact email address, but to the email address for the relevant user. -{{< /note >}} - -Here's how to update the contact information and the email address on the *Account* page: - -1. Click the **Account** link in the sidebar. -1. Under the **Billing Contact** section, click **Edit** to show the **Edit Billing Contact Info** menu. - - ![Update your Contact Information in the Linode Cloud Manager](accounts-update-billing-info.png) - -1. Update the contact information and the email address for the account. -1. Click **Save**. - -The account's billing contact information is now updated. \ No newline at end of file diff --git a/docs/products/platform/billing/guides/view-history/index.md b/docs/products/platform/billing/guides/view-history/index.md deleted file mode 100644 index 439755e7a2e..00000000000 --- a/docs/products/platform/billing/guides/view-history/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "View Invoices and Payment History" -description: "Review all invoices and payments on your Linode account." -published: 2022-11-17 -modified: 2023-09-21 -aliases: ['/products/tools/cloud-manager/guides/cloud-invoices/'] ---- - -All of your billing history, including previous invoices and payments, is accessible within [Cloud Manager](https://cloud.linode.com/account/billing) on the **Billing & Payment History** section within the **Billing Info** page (see [Accessing Billing Information](/docs/products/platform/billing/guides/access-billing/)). By default, all transactions (both invoices and payments) from the last *6 months* are displayed. To customize this, use the dropdown menus on the top right of this section. - -![Viewing Billing & Payment History in Cloud Manager](view-invoices.png) - -**To view an itemized invoice,** find the invoice row on the list and click the corresponding invoice number. This opens up a new page that displays each service that was active during the billing period, along with the additional details listed below: - -- **Description:** The type of service and the unique label you've given it. -- **From:** The date the service started billing during this billing cycle. This could either be the date and time this billing cycle started *or* the date and time the service was added to the account. -- **To:** The date the service ended billing during this billing cycle. This could either be the date and time this billing cycle ended *or* the date and time the service was removed from the account. -- **Quantity:** The number of hours the service is being billed. -- **Region:** The data center and region ID for the service. -- **Unit Price:** The hourly rate for this service. -- **Amount:** The cost for this service excluding taxes. -- **Taxes:** The taxes that are charged for this service. -- **Total:** The cost for this service including taxes. - -## Downloading Invoices (PDF and CSV) - -An invoice or payment can be downloaded as either a PDF or a CSV file. To do this, open the invoice within Cloud Manager and select either the **Download CSV** or **Download PDF** button. \ No newline at end of file diff --git a/docs/products/platform/billing/guides/view-history/view-invoice.png b/docs/products/platform/billing/guides/view-history/view-invoice.png deleted file mode 100644 index 029d57cbd3a..00000000000 Binary files a/docs/products/platform/billing/guides/view-history/view-invoice.png and /dev/null differ diff --git a/docs/products/platform/billing/guides/view-history/view-invoices.png b/docs/products/platform/billing/guides/view-history/view-invoices.png deleted file mode 100644 index a39c08ffdfc..00000000000 Binary files a/docs/products/platform/billing/guides/view-history/view-invoices.png and /dev/null differ diff --git a/docs/products/platform/billing/resources/index.md b/docs/products/platform/billing/resources/index.md deleted file mode 100644 index 8d4b0a92d7e..00000000000 --- a/docs/products/platform/billing/resources/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Resources -title_meta: "Resources for Billing and Payments" -description: "Resources and other information related to the Linode Billing including blog posts, community posts, and customer stories." -published: 2022-11-17 -tab_group_main: - weight: 40 -aliases: ['/products/tools/billing/resources/'] ---- - -## Blog Posts - -- [Introducing Hourly Billing](https://www.linode.com/blog/linode/introducing-hourly-billing/) - -- [PayPal Payments](https://www.linode.com/blog/linode/paypal-payments/) - -- [The New Linode Cloud: SSDs, Double RAM & much more](https://www.linode.com/blog/linode/linode-cloud-ssds-double-ram-much-more/) - -- [New Linode Manager released](https://www.linode.com/blog/linode/new-linode-manager-released/) - -## Community Posts - -- [We’re Upgrading All Accounts to Hourly Billing](https://www.linode.com/community/questions/17898/were-upgrading-all-accounts-to-hourly-billing) - -- [is linodes prepaid or postpaid?](https://www.linode.com/community/questions/19389/is-linodes-prepaid-or-postpaid) - -- [How does the GPU billing works?](https://www.linode.com/community/questions/19777/how-does-the-gpu-billing-works) - -- [how can I change payment type form Credit Card to Debit Card](https://www.linode.com/community/questions/17927/how-can-i-change-payment-type-form-credit-card-to-debit-card) - -- [Linode GPU Performance and Pricing/Billing Questions?!](https://www.linode.com/community/questions/20051/linode-gpu-performance-and-pricingbilling-questions) - -- [Why did my bill go up?](https://www.linode.com/community/questions/17408/why-did-my-bill-go-up) - -- [Do I pay for linodes that are stopped?](https://www.linode.com/community/questions/19828/do-i-pay-for-linodes-that-are-stopped) - -- [Why am I receiving multiple invoices per month?](https://www.linode.com/community/questions/18073/why-am-i-receiving-multiple-invoices-per-month) - -- [payment](https://www.linode.com/community/questions/18774/payment) - -- [Do you offer a trial period?](https://www.linode.com/community/questions/17622/do-you-offer-a-trial-period) - -- [How does Object Storage Billing work?](https://www.linode.com/community/questions/19962/how-does-object-storage-billing-work) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=billing). - -## Customer Stories - -- [Craft of Code Bernd Hilmar](https://www.linode.com/spotlight/bernd-hilmar/) - -- [Craft of Code NSoft](https://www.linode.com/spotlight/nsoft/) diff --git a/docs/products/platform/feature.png b/docs/products/platform/feature.png deleted file mode 100644 index d45872a8ef0..00000000000 Binary files a/docs/products/platform/feature.png and /dev/null differ diff --git a/docs/products/platform/feature.svg b/docs/products/platform/feature.svg deleted file mode 100644 index e900a8f83f3..00000000000 --- a/docs/products/platform/feature.svg +++ /dev/null @@ -1,17 +0,0 @@ - - Managed - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/products/platform/get-started/_index.md b/docs/products/platform/get-started/_index.md deleted file mode 100644 index 615cd4d93df..00000000000 --- a/docs/products/platform/get-started/_index.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: "Getting Started on the Linode Platform" -description: "Learn how to create an account and use the Linode Cloud Platform." -published: 2018-11-05 -modified: 2024-07-23 -tab_group_main: - is_root: true - title: Get Started - weight: 10 -keywords: ["getting started", "intro", "basics", "first steps", "linode platform"] -aliases: ['/getting-started/','/getting-started-classic-manager/','/getting-started-new-manager/','/guides/get-started/','/guides/getting-started-with-linode/','/products/platform/accounts/get-started/','/guides/getting-started/','/guides/platform/get-started/'] -show_on_frontpage: true -linkTitle: "Get Started" -weight: 10 -icon: "book" -show_on_rss_feed: false -image: getting-started.jpg ---- - -Our goal at Linode is to make cloud computing simple, accessible, and affordable. To this end, the Linode platform offers a variety of user-friendly cloud solutions, all of which have clear and predictable [pricing](https://www.linode.com/pricing/) and can be managed using an intuitive browser-based interface ([Cloud Manager](https://www.linode.com/products/cloud-manager/)), the command line (the [Linode CLI](https://www.linode.com/products/cli/)), or programmatically through an API (the [Linode API](https://www.linode.com/products/linode-api/)). This guide covers signing up for a Linode account, accessing Cloud Manager, creating your first services, and understanding how billing works. - -1. [Sign Up for an Account](#sign-up-for-an-account) -1. [Navigate Cloud Manager](#navigate-the-cloud-manager) -1. [Create Your First Compute Instance](#create-your-first-compute-instance) -1. [Create Additional Services](#create-additional-services) -1. [Understand Billing](#understand-billing) -1. [Explore Linode Guides](#explore-linode-guides) - -## Sign Up for an Account - -First, you need to create a Linode account to start using our services. If you already have a Linode account, you can skip to the next section. - -1. Open a web browser and navigate to [login.linode.com/signup](https://login.linode.com/signup). If you are not already logged in to an account, the **Create an Account** form is displayed. - -1. Enter your email address, a unique username, and a strong password. Alternatively, you can sign up using your existing Google or GitHub account. When using another provider, you are prompted for a username in a separate step. - - {{% content "password-requirements-shortguide" %}} - -1. A confirmation email is sent to your email address shortly after. Click the link in that email to confirm your email address. - -1. In the **Security** section of the signup process, input your phone number. Linode uses phone numbers as a measure to verify identity and prevent fraud. Once a phone number is provided, a verification code is sent to that number as an SMS text message. Enter this code into the signup form. - - {{< note >}} - This phone number provides our team with a secure method of verifying your identity as the owner of the newly created Linode user account. We will only ever use this phone number to verify your identity by sending a verification code as an SMS message. See [Phone Verification](/docs/products/platform/accounts/guides/user-security-controls/#phone-verification) for more details. - {{< /note >}} - -1. Within the **Billing** section, select your payment method and enter your billing address details. Linode accepts credit/debit cards and PayPal on sign up. See the [Billing and Payments](/docs/products/platform/billing/#payments) guide to learn more about each of these methods. You must also accept the [Master Services Agreement](https://www.linode.com/legal-msa/). - -1. Most accounts are activated instantly and you can start adding services right away. A small number of accounts may require manual review before activation. - -{{% content "email-warning-shortguide" %}} - -Once your account has been created, consider **enabling 2FA** to prevent unauthorized access. Anyone that has access to your account may be able to delete your services, add new ones, and reset the root password on your Compute Instances to gain access to them. See [Cloud Manager Security Controls](/docs/products/platform/accounts/guides/user-security-controls/) for instructions on enabling 2FA. If you are logging in with a third party provider, consider adding 2FA through that provider. - -{{< note title="Single sign-on (SSO) with Akamai Control Center">}} -You can log in to Cloud Manager using your [Akamai Control Center](https://control.akamai.com/) account, provided your user email address is identical within both systems. To use this feature, select **Akamai Control Center** as the provider when logging in to Cloud Manager. You are automatically logged in to the Cloud Manager user that matches the email for the currently logged in Control Center user. If multiple Cloud Manager users match this email address, you can select which user to log in as. For more details, see [Single sign-on (SSO) with Akamai Control Center](/docs/products/platform/accounts/guides/user-security-controls/#single-sign-on-sso-with-akamai-control-center). -{{< /note >}} - -## Navigate Cloud Manager - -Linode's [Cloud Manager](https://cloud.linode.com/) is the primary gateway to our platform. It enables you to manage your account, view your bills, add services, and much more. Here are some of the main sections you might want to look through: - -- [Linodes](https://cloud.linode.com/linodes): View a list of your Compute Instances. Clicking on one takes you to its details page, where you can power it on or off, reboot it, resize it, access the console, change its configuration, attach Block Storage volumes, and lots more. - -- [Account](https://cloud.linode.com/account/billing): View your account, billing information, payment methods, and previous invoices. You can also add additional users to your account. - -- [Help & Support](https://cloud.linode.com/support): Search through our guides, find answers on the Community Site, or open a ticket to reach our 24/7 award-winning [Support Team](https://www.linode.com/support-experience/). - -For a full overview of Cloud Manager and its core features, see the [Overview of Cloud Manager](/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/) guide. - -## Create Your First Compute Instance - -Compute Instances (also frequently called *Linodes*) are virtual machines that can be used for nearly any purpose. Many of our customers use them to host websites and applications, and they can also be used for development workloads, game servers, big data processing, machine learning, scientific processing, and much more. They come in a few different types, including: [Dedicated CPU](https://www.linode.com/products/dedicated-cpu/), [Shared CPU](https://www.linode.com/products/shared/), [Premium](https://www.linode.com/products/premium-cpu/), [High Memory](https://www.linode.com/products/high-memory/), and [GPU](https://www.linode.com/products/gpu/). - -Each plan type is tailored for certain workloads. See the guides below to learn more about creating a Compute Instance, configuring and securing it after deployment, and selecting a data center for your plan. - -- [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) -- [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) -- [How to Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) - -## Create Additional Services - -In addition to [Compute Instances](#create-your-first-compute-instance), Linode offers many other services that empower you to get the most out of cloud computing. Take a look through the list below to determine if any of them might be useful to you. - -**Compute** - -- [LKE](https://www.linode.com/products/kubernetes/) (Linode Kubernetes Engine): Managed Kubernetes clusters that simplify container orchestration. - -**Databases** - -- [Managed Databases](https://www.linode.com/products/databases/): Reliable, performant, highly available, and fully managed database clusters to support production database workloads. - - {{% content "dbass-eos" %}} - -**Storage** - -- [Block Storage](https://www.linode.com/products/block-storage/): Scalable, high-speed, fault-tolerant, and portable (detachable) storage volumes used to add additional storage to a Compute Instance. -- [Object Storage](https://www.linode.com/products/object-storage/): S3-compatible object storage service that can be used independently of a Compute Instance. -- [Backups](https://www.linode.com/products/backups/): Fully managed automatic daily, weekly, and biweekly backups of your Linode Compute Instances. -- [Images](https://www.linode.com/products/images/): Create preconfigured disk images (or upload image files) that can be rapidly deployed to new or existing Compute Instances. - -**Networking** - -- [NodeBalancers](https://www.linode.com/products/nodebalancers/): Managed cloud-based load balancing service used with Compute Instances to enable high availability and horizontal scaling. -- [Cloud Firewalls](https://www.linode.com/products/cloud-firewall/): A free cloud-based firewall service that can be used to secure any Compute Instance. -- [DNS Manager](https://www.linode.com/products/dns-manager/): A free comprehensive domain and DNS management service for Linode customers. -- [VLANs](https://www.linode.com/products/vlan/): Private L2 networks to secure traffic between Compute Instances. - -## Understand Billing - -Linode services are billed to your primary payment method at the end of each month (or when your accrued charges reach your billing limit). This means you can continuously add, modify, and remove services throughout the month. After the month is over, you receive an invoice for *the hourly usage of each service **up to the monthly cap***. In effect, billing is *post-paid* and *pro-rated*. See the below resources for more billing information and detailed hourly and monthly pricing. Note that plans and prices may vary by region. - -- [Billing and Payments](/docs/products/platform/billing/) -- [Managing Billing in Cloud Manager](/docs/products/platform/billing/guides/) -- [Linode Price List](https://www.linode.com/pricing/) - -Keep in mind that charges will accrue for any active service, even if it is powered off or otherwise not in use. This includes Compute Instances that have been powered off as well as any service you might have added to the account but are not using. - -## Explore Linode Guides - -Linode offers extensive documentation. This not only includes guides for our core products and services, but general guides on Linux, the command-line, networking, security, version control, databases, and *much* more. Learn how to deploy a WordPress One-Click App, run a VPN, install a file storage platform, or even host a website using Object Storage. Whatever cloud computing use cases you have in mind, you can likely do it on Linode and our guides are a great place to start. - -- [Linode Docs](/docs/) \ No newline at end of file diff --git a/docs/products/platform/get-started/feature.svg b/docs/products/platform/get-started/feature.svg deleted file mode 100644 index 59f0f33a773..00000000000 --- a/docs/products/platform/get-started/feature.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/docs/products/platform/get-started/getting-started.jpg b/docs/products/platform/get-started/getting-started.jpg deleted file mode 100644 index be5bf3d2826..00000000000 Binary files a/docs/products/platform/get-started/getting-started.jpg and /dev/null differ diff --git a/docs/products/platform/get-started/guides/_index.md b/docs/products/platform/get-started/guides/_index.md deleted file mode 100644 index 7042a13258f..00000000000 --- a/docs/products/platform/get-started/guides/_index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Getting Started on the Linode Platform" -description: "A collection of guides to help get you started on the Linode Platform" -published: 2023-03-14 -tab_group_main: - weight: 20 ---- - -## Basics - -- [Getting Started on the Linode Platform](/docs/products/platform/get-started/) -- [Choose a Data Center](/docs/products/platform/get-started/guides/choose-a-data-center/) -- [Network Transfer Usage and Costs](/docs/products/platform/get-started/guides/network-transfer/) -- [Help & Support](/docs/products/platform/get-started/guides/support/) -- [Send Email on the Linode Platform](/docs/products/platform/get-started/guides/send-email/) -- [Subscribe to Linode Status Updates](/docs/products/platform/get-started/guides/status-page/) - -## Going Further - -- [Grant a Developer Access a Compute Instance or Linode Account](/docs/products/platform/get-started/guides/developer-access/) -- [Automate Cloud Resource Deployment](/docs/products/platform/get-started/guides/automating-deployment/) - -## Partners and Resellers - -- [Resell Linode Services](/docs/products/platform/get-started/guides/resell-services/) \ No newline at end of file diff --git a/docs/products/platform/get-started/guides/automating-deployment/1303-image_cloning_2.jpg b/docs/products/platform/get-started/guides/automating-deployment/1303-image_cloning_2.jpg deleted file mode 100644 index 06708c8451c..00000000000 Binary files a/docs/products/platform/get-started/guides/automating-deployment/1303-image_cloning_2.jpg and /dev/null differ diff --git a/docs/products/platform/get-started/guides/automating-deployment/index.md b/docs/products/platform/get-started/guides/automating-deployment/index.md deleted file mode 100644 index 63adcd40e1b..00000000000 --- a/docs/products/platform/get-started/guides/automating-deployment/index.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: Automate Cloud Resource Deployment -description: 'This guide shows you how to automate server builds using Puppet and Chef cookbooks, golden disks and images, on a Linode running the Linux Operating System.' -published: 2013-06-28 -modified: 2023-03-14 -keywords: ["server builds", "disks", "golden disk", "puppet", "chef"] -tags: ["linode platform","automation"] -aliases: ['/platform/automating-server-builds/','/guides/automating-server-builds/'] ---- - -## Why You Should Automate Server Builds - -Manually configuring systems is a good way to learn, but it's also a time consuming process which is prone to human error. There are multiple ways to automate deploying new systems and various degrees to which that automation can be applied. - -For example, if your needs are relatively straightforward and concise, a shell script or [StackScript](https://www.linode.com/stackscripts) could be all that is necessary. For more complex solutions, configuration orchestration and management exists to deploy and manage fleets of systems and services across multiple regions, networks, and service providers. - -## Working with a Golden Image - -Using a *golden image* as a configuration base is a frequent starting point in cloud environment automation. This helps quickly deploy multiple systems which are exactly identical. Across the industry, golden images are also referred to as *master*, *base*, or *clone* images, among other terms. Irrespective of name, the idea behind a golden disk is simple: create the desired image and preserve it for cloning/deploying to other servers, thereby simplifying the deployment process and eliminating configuration gap. - -![Cloning your Compute Instance disk.](1303-image_cloning_2.jpg) - -### Create a Golden Image - -1. Create a new Compute Instance. - -1. Configure all packages, applications, and system settings as desired. - -1. Remove any system users you don't want to appear on your duplicated systems. - -1. Shut down the Compute Instance and either: - - [Clone the disk](/docs/products/compute/compute-instances/guides/clone-instance/#clone-to-an-existing-compute-instance). - - Alternatively, [take a snapshot](/docs/products/storage/backups/guides/take-a-snapshot/) of the disk with Linode Backups. - -1. Store your golden image. This can be done in a variety of ways. A few examples are: - - As a snapshot using [Linode Images](/docs/products/tools/images/guides/capture-an-image/) or [Linode Backups](/docs/products/storage/backups/guides/take-a-snapshot/). - - In a [version control](/docs/guides/introduction-to-version-control/) system running on a remote or local server. - - On [local](/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/) storage. - -### Restore a Golden Image - -1. Copy the duplicate disk to your other Compute Instances, either using [the Linode API](/docs/api/linode-instances/#disk-clone) or [manually](/docs/products/compute/compute-instances/guides/copy-a-disk-image-to-a-different-account/#copying-the-disk). If you're using a Linode Backups snapshot, you would [restore it](/docs/products/storage/backups/guides/restore-to-an-existing-instance/) to the desired Compute Instances. - -1. Create [configuration profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) on those additional Compute Instances to boot using the duplicated disk. -1. Any user credentials from the golden image will also be on the duplicated disks so you should change the new system's root password. - -1. Update the new Compute Instance's [hostname](/docs/products/compute/compute-instances/guides/set-up-and-secure/#configure-a-custom-hostname). - -1. If your golden system was configured to use a static IP address, you'll also need to [reconfigure the IP address](/docs/products/compute/compute-instances/guides/manual-network-configuration/) on your duplicated disks. - -## Third-Party Tools - -Golden disks are capable of handling automated server builds for most individuals and small businesses, but if you work for a large business that manages dozens of Compute Instances, you may need to turn to third-party configuration management and orchestration tools, such as: - -- **Puppet:** An open source configuration management tool that manages systems declaratively. It can automates IT tasks like application configuration, patch management, and even infrastructure audit and compliance. See the following Puppet guides: - - - [Getting Started with Puppet - Basic Installation and Setup](/docs/guides/getting-started-with-puppet-6-1-basic-installation-and-setup/) - - [Manage and Automate Systems Configuration with Puppet](/docs/guides/manage-and-automate-systems-configuration-with-puppet/) - - [Use Puppet Modules to Create a LAMP Stack](/docs/guides/use-puppet-modules-to-create-a-lamp-stack/) - - [Install and Manage MySQL Databases with Puppet Hiera on Ubuntu 16.04](/docs/guides/install-and-manage-mysql-databases-with-puppet-hiera-on-ubuntu-16-04/) - -- **Chef:** An open source configuration management tool used to turn your infrastructure into code. See the [Chef website](https://www.chef.io/) for more information. - - - [A Beginner's Guide to Chef](/docs/guides/beginners-guide-chef/) - - [Creating Your First Chef Cookbook](/docs/guides/creating-your-first-chef-cookbook/) - - [Install a Chef Server Workstation on Ubuntu 18.04](/docs/guides/install-a-chef-server-workstation-on-ubuntu-18-04/) - -- **Ansible:** An open source platform for configuring and managing systems. It works by connecting to your systems via SSH — it doesn't install anything on the remote systems. See the [Ansible website](http://www.ansible.com/) for more information. Read more about the [Linode Ansible Collection](https://github.com/linode/ansible_linode) in the official documentation. To start using Ansible, check out the following guides: - - - [Use the Linode Ansible Collection to Deploy a Linode](/docs/guides/deploy-linodes-using-linode-ansible-collection/) - - [Getting Started With Ansible - Basic Installation and Setup](/docs/guides/getting-started-with-ansible/) - - [Automate Server Configuration with Ansible Playbooks](/docs/guides/running-ansible-playbooks/) - -- **Salt:** Salt (also referred to as SaltStack) is a Python-based configuration management and orchestration system. Salt uses a master/client model in which a dedicated Salt master server manages one or more Salt minion servers. To learn more about Salt, see the following guides: - - - [A Beginner's Guide to Salt](/docs/guides/beginners-guide-to-salt/) - - [Getting Started with Salt - Basic Installation and Setup](/docs/guides/getting-started-with-salt-basic-installation-and-setup/) - - [SaltStack Command Line Reference](/docs/guides/salt-command-line-reference/) - - [Introduction to Jinja Templates for Salt](/docs/guides/introduction-to-jinja-templates-for-salt/) - - [Test Salt States Locally with KitchenSalt](/docs/guides/test-salt-locally-with-kitchen-salt/) - - [Secrets Management with Salt](/docs/guides/secrets-management-with-salt/) - - [Use and Modify Official SaltStack Formulas](/docs/guides/use-and-modify-official-saltstack-formulas/) - - [Use Salt States to Configure a LAMP Stack on a Minion](/docs/guides/use-salt-states-to-configure-a-lamp-stack-on-a-minion/) - - [Monitoring Salt Minions with Beacons](/docs/guides/monitoring-salt-minions-with-beacons/) - - [Create a Salt Execution Module](/docs/guides/create-a-salt-execution-module/) - - [Automate Static Site Deployments with Salt, Git, and Webhooks](/docs/guides/automate-a-static-site-deployment-with-salt/) - - [Use Salt States to Create LAMP Stack and Fail2ban Across Salt minions](/docs/guides/use-salt-states-to-create-lamp-stack-and-fail2ban-across-salt-minions/) - - [Configure and Use Salt Cloud and Cloud Maps to Provision Systems](/docs/guides/configure-and-use-salt-cloud-and-cloud-maps-to-provision-systems/) - -- **Terraform:** Terraform by HashiCorp is an orchestration tool that lets you represent your Compute Instances and other resources with declarative code inside configuration files, instead of manually creating those resources via Cloud Manager or API. This practice is referred to as Infrastructure as Code, and Terraform is a popular example of this methodology. - - - [A Beginner's Guide to Terraform](/docs/guides/beginners-guide-to-terraform/) - - [Introduction to HashiCorp Configuration Language (HCL)](/docs/guides/introduction-to-hcl/) - - [Use Terraform to Provision Linode Environments](/docs/guides/how-to-build-your-infrastructure-using-terraform-and-linode/) - - [Import Existing Infrastructure to Terraform](/docs/guides/import-existing-infrastructure-to-terraform/) - - [Secrets Management with Terraform](/docs/guides/secrets-management-with-terraform/) - - [Create a NodeBalancer with Terraform](/docs/guides/create-a-nodebalancer-with-terraform/) - - [Deploy a WordPress Site Using Terraform and Linode StackScripts](/docs/guides/deploy-a-wordpress-site-using-terraform-and-linode-stackscripts/) - - [Create a Terraform Module](/docs/guides/create-terraform-module/) - -There are plenty of other third-party configuration management tools to be used should the above options not suit your needs. \ No newline at end of file diff --git a/docs/products/platform/get-started/guides/beta-for-new-data-centers/index.md b/docs/products/platform/get-started/guides/beta-for-new-data-centers/index.md deleted file mode 100644 index c187104728d..00000000000 --- a/docs/products/platform/get-started/guides/beta-for-new-data-centers/index.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Limited Beta for Akamai's New Data Centers" -description: "This document provides details for the limited availability beta of Akamai Cloud Compute's latest data centers." -published: 2023-04-17 -modified: 2024-07-05 -tags: ["linode platform"] -_build: - list: false -noindex: true -aliases: ['/products/platform/get-started/guides/iad/'] ---- - -Akamai is expanding its services to new data centers across the globe. Each new data center will undergo a beta period, where a limited number of interested customers can deploy services in these regions. Premium plans are available in new data centers. As a beta participant, please review this guide for additional specifications and details you may need when configuring your workloads in the one of these data centers. - -{{< note type="warning" >}} -Capacity in beta data centers may be limited as we continue to scale up resources. Additionally, the beta environment is subject to change. We strongly suggest that participants do not run production workloads during the beta. -{{< /note >}} - -## List of Beta Data Centers - -| Data Center | Status | Region ID | -| -- | -- | -- | -| London, England | **Limited Availability** | `gb-lon` | -| Melbourne, Australia | **Limited Availability** | `au-mel` | - -## Deploy Services in a Beta Data Center - -Follow the instructions below to target one of the new data centers when deploying a service. - -- **Cloud Manager:** Select the name of the data center you wish to use in the region dropdown menu. - -- **Linode CLI and Linode API:** If a command or request requires a region ID, use the one that corresponds to your desired data center in the [table above](#list-of-new-data-centers). - -{{< note type="warning" noTitle=true >}} -You must be enrolled in the beta to select a beta data center when deploying services. If you are a beta participant but are not able to target a beta data center, please contact the [Support team](https://www.linode.com/support/) for assistance. You need to request access to *each* data center you wish to use during the beta period. -{{< /note >}} - -## Pricing - -Services used as part of the beta are free to users. Once the beta period ends for a particular data center, you will start accruing charges for any services that are still deployed to that region. You will receive an email notifying you of the billing start date as we transition each data center to general availability. - -## Product Availability - -Each data center in this beta is slated to have most of Akamai’s cloud computing services available during the beta period. In addition, we are launching a new Premium Plan tier and have made improvements to our Object Storage service. - -### Object Storage - -The London (gb-lon) and Melbourne (au-mel) data centers do not support Object Storage during the beta period. - -### Premium Plans - -[Premium tier](/docs/products/compute/compute-instances/plans/premium/) Dedicated CPU Compute Instance plans are available only in newer data centers, including those in beta. These plans are in addition to our standard tier Dedicated CPU, Shared CPU, and High Memory instance types. These Premium instances guarantee a baseline hardware class that includes new AMD EPYC™ CPUs. These Premium offerings are built for applications with critical performance needs such as enterprise video encoding, AI, CI/CD, build servers, and data analysis. - -The table below outlines the default pricing and hardware specifications for Premium tier Dedicated CPU Instances. [Pricing](https://www.linode.com/pricing/) may vary by region: - -|
Plan
|
Price
| RAM (GB) | CPU Cores | Storage (GB) | Transfer (TB) | Network In/Out (Gbps) -| --- | --- | --- | --- | --- | --- | --- | --- | -| Premium 4 GB | $43/mo ($0.06/hr) | 4 | 2 | 80 | 4 | 40/4 | -| Premium 8 GB | $86/mo ($0.13/hr) | 8 | 4 | 160 | 5 | 40/5 | -| Premium 16 GB | $173/mo ($0.26/hr) | 16 | 8 | 320 | 6 | 40/6 | -| Premium 32 GB | $346/mo ($0.52/hr) | 32 | 16 | 640 | 7 | 40/7 | -| Premium 64 GB | $892/mo ($1.04/hr) | 64 | 32 | 1,280 | 8 | 40/8 | -| Premium 96 GB | $1,037/mo ($1.56/hr) | 96 | 48 | 1,920 | 9 | 40/9 | -| Premium 128 GB | $1,383/mo ($2.07/hr) | 128 | 50 | 2,500 | 10 | 40/10 | -| Premium 256 GB | $2,765/mo ($4.15/hr) | 256 | 56 | 5,000 | 11 | 40/11 | -| Premium 512 GB | $5,530/mo ($8.29/hr) | 512 | 64 | 7,200 | 12 | 40/12 | - -Premium CPU plans can also be deployed as worker nodes in Linode Kubernetes Engine (LKE) clusters. There is no additional cost for Premium plan LKE worker nodes beyond the price listed in the Premium pricing table above. - -{{< note isCollapsible=true title="Details of the Backup service for Premium CPU Plans" >}} -Optionally, you can also add the [Backup](/docs/products/storage/backups/) service to a Premium instance. The default prices for this service are outlined below. [Pricing](https://www.linode.com/pricing/) may vary by region: - -|
Plan
| Price for the Backup service | -| --- | --- | -| Premium 4 GB | $5/mo ($0.008/hr) | -| Premium 8 GB | $10/mo ($0.015/hr) | -| Premium 16 GB | $20/mo ($0.03/hr) | -| Premium 32 GB | $40/mo ($0.06/hr) | -| Premium 64 GB | $80/mo ($0.12/hr) | -| Premium 96 GB | $120/mo ($0.18/hr) | -| Premium 128 GB | $160/mo ($0.24/hr) | -| Premium 256 GB | $200/mo ($0.30/hr) | -| Premium 512 GB | $240/mo ($0.36/hr) | -{{< /note >}} - -## Additional Specifications - -### IP Sharing and Failover - -Beta data centers support IP sharing and BGP-based failover, which can be configured on IPv4 addresses (public and private) and addresses from IPv6 routed ranges (/64 and /56). To configure failover, you can use [lelastic](https://github.com/linode/lelastic), Linode's own software, or software like FRR, BIRD, or GoBGP. For more information on failover, consult our [failover documentation](/docs/products/compute/compute-instances/guides/failover/). - -| Data Center | IP Sharing Support | Failover Method | Software | ID | -| --- | --- | --- | --- | --- | -| London, England | Supported | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 44 | -| Melbourne, Australia | Supported | BGP-based (new) | [lelastic](/docs/products/compute/compute-instances/guides/failover/#configure-failover) / [FRR](/docs/products/compute/compute-instances/guides/failover-bgp-frr/) | 45 | - -### Lish Gateways - -Lish and Glish provide direct access to your Compute Instances, bypassing the need for SSH or a VNC. For more information on Lish, consult our guide on how to [Access Your System Console Using Lish](/docs/products/compute/compute-instances/guides/lish/). - -#### London, England - -- **Lish SSH Gateway:** `lish-gb-lon.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:EIKjJlF0nmpuj795Y4DhwYjIMCDa2yodWKk9rKxg67o lish-gb-lon.linode.com - ECDSA 256 SHA256:MvMwule197MvqJIjvJq7vjnxlvX0XveAocRPDs5jbMA lish-gb-lon.linode.com - ED25519 256 SHA256:4IUSmmru/F/Q4nHVZjBZUzSol7XLaE33i8hLPD8VJ2o lish-gb-lon.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `gb-lon.webconsole.linode.com` - -#### Melbourne, Australia - -- **Lish SSH Gateway:** `lish-au-mel.linode.com` - - {{< note type="secondary" title="Lish SSH Gateway Fingerprints" isCollapsible=true >}} - ```command - RSA 3072 SHA256:JX2eVSdHIJzb3iDJFpTtHVGQq1paEh53D9cnsEPNvvU lish-au-mel.linode.com - ECDSA 256 SHA256:88mN/wieI4kG1rkuohob3ZyqhvCMiMWiCTVN1XECvLU lish-au-mel.linode.com - ED25519 256 SHA256:e8xMMpHXjDRi9vSiNliiMEHtsKzAjGdG0WkeFS3W1RU lish-au-mel.linode.com - ``` - {{< /note >}} - -- **Weblish/Glish Gateway:** `au-mel.webconsole.linode.com` diff --git a/docs/products/platform/get-started/guides/beta-for-new-data-centers/select-washington-dc-cloud-manager.png b/docs/products/platform/get-started/guides/beta-for-new-data-centers/select-washington-dc-cloud-manager.png deleted file mode 100644 index 6c391472e05..00000000000 Binary files a/docs/products/platform/get-started/guides/beta-for-new-data-centers/select-washington-dc-cloud-manager.png and /dev/null differ diff --git a/docs/products/platform/get-started/guides/choose-a-data-center/index.md b/docs/products/platform/get-started/guides/choose-a-data-center/index.md deleted file mode 100644 index c7452c65235..00000000000 --- a/docs/products/platform/get-started/guides/choose-a-data-center/index.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: How to Choose a Data Center -description: 'This article gives you information to help you determine which data center you should choose when deploying your website or app on a Compute Instance.' -published: 2018-10-31 -modified: 2024-04-03 -keywords: ["data center", "datacenter", "dc", "speed"] -tags: ["linode platform"] -aliases: ['/platform/how-to-choose-a-data-center/','/guides/how-to-choose-a-data-center/'] ---- - -{{< note >}} -Our **Chennai** and **Mumbai** core sites are optimized for the India market. For workloads that currently serve or intend to serve the wider Asia-Pacific region and for communication with Akamai core sites outside of India, we recommend deploying resources in our Singapore or Sydney data centers. -{{< /note >}} - -Deploying your Compute Instance to a geographically advantageous data center can make a big difference in connection speeds to your server. Ideally, your site or application should be served from multiple points around the world, with requests sent to the appropriate region based on client geolocation. On a smaller scale, deploying a Compute Instance in the data center nearest to you will make it easier to work with than one in a different region or continent. - -There are many things that can affect network congestion, connection speeds, and throughput, so you should never interpret one reading as the sole data point. Always perform tests in multiples of three or five for an average, and on both weekend and weekdays for the most accurate information. - -This page is a quick guide for choosing and speed testing a data center (DC). Start by creating a Compute Instance in the data center in or near your region, or several instances in multiple regions if you're close to more than one DC. From there, use Linode's [Facilities Speedtest](https://www.linode.com/speedtest) page for test domains to ping and files to download. - -## Product Availability - -An important consideration when choosing a data center is the availability of specific features and services, as well as regional support. Below is table displaying a matrix of which services Linode offers in each particular region. - -{{< table class="first-sticky" >}} -| Region | [Dedicated Compute](/docs/products/compute/compute-instances/plans/dedicated-cpu/) | [Shared Compute](/docs/products/compute/compute-instances/plans/shared-cpu/) | [GPUs](/docs/products/compute/compute-instances/plans/gpu/) | [Premium Compute](/docs/products/compute/compute-instances/plans/premium/) | [Kubernetes](/docs/products/compute/kubernetes/) | [Placement Groups](/docs/products/compute/compute-instances/guides/placement-groups/) | [Managed DB](/docs/products/databases/managed-databases/) | [Cloud Firewall](/docs/products/networking/cloud-firewall/) | [DDoS Protection](/docs/products/networking/ddos-protection/) | [NodeBalancers](/docs/products/networking/nodebalancers/) | [VLANs](/docs/products/networking/vlans/) | [VPCs](/docs/products/networking/vpc/) | [Backups](/docs/products/storage/backups/) | [Block Storage](/docs/products/storage/block-storage/) | [Object Storage](/docs/products/storage/object-storage/) | [Images](/docs/products/tools/images/) | -| --- | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| -| Amsterdam | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Atlanta | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | -| Chennai | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Chicago | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Dallas | ✔ | ✔ | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| Frankfurt | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | -| Fremont | ✔ | ✔ | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| Jakarta | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Los Angeles | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| London | ✔ | ✔ | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| Madrid | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Miami | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Milan | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Mumbai | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| Newark | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | -| Osaka | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Paris | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| São Paulo | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Seattle | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Singapore | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | -| Stockholm | ✔ | ✔ | | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -| Sydney | ✔ | ✔ | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| Tokyo | ✔ | ✔ | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| Toronto | ✔ | ✔ | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | | ✔ | -| Washington, DC | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔† | ✔ | -{{< /table >}} - -†Denotes higher capacity Object Storage availability. - -## Network Latency - -The Linux [ping](https://linux.die.net/man/8/ping) tool sends IPv4 [ICMP echo requests](https://en.wikipedia.org/wiki/Ping_(networking_utility)#Echo_request) to a specified IP address or hostname. Pinging a server is often used to check whether the server is up and/or responding to ICMP. Because `ping` commands also return the time it takes a request's packet to reach the server, `ping` is commonly used to measure network [latency](https://en.wikipedia.org/wiki/Network_delay). - -Ping a data center to test your connection's latency to that DC: - -```command -ping -c 5 speedtest.dallas.linode.com -``` - -Use [ping6](https://linux.die.net/man/8/ping6) for IPv6: - -```command -ping6 -c 5 speedtest.dallas.linode.com -``` - -{{< note >}} -Many internet connections still don't support IPv6 so don't be alarmed if `ping6` commands don't work *to* your Compute Instance from your local machine. They will work *from* your Compute Instance to other IPv6-capable network connections (ex. between two instances in different data centers). -{{< /note >}} - -## Download Speed - -Download speed will be limited most heavily first by your internet service plan speed, and second from local congestion between you and your internet service provider. For example, if your plan is capped at 60 Mbps, you won't be able to download much faster than that from any server on the internet. There are multiple terminologies to discuss download speeds with so here are a few pointers to avoid confusion: - -- Residential internet connection packages are sold in speeds of mega**bits** per second (abbreviated as Mbps, Mb/s, or Mbit/s). - -- One mega**bit** per second (1 Mbps or 1 Mb/s) is 0.125 mega**bytes** per second (0.125 MB/s). Desktop applications (ex: web browsers, FTP managers, Torrent clients) often display download speeds in MB/s. - -- **Mebibytes** per second is also sometimes used (MiB/s). One Mbps is also equal to 0.1192 MiB/s. - -To test the download speed from your data center of choice, use the `cURL` or `wget` to download the `bin` file from a data center of your choice. You can find the URLs on our [Facilities Speedtest](https://www.linode.com/speedtest) page. - -For example: - -```command -curl -O http://speedtest.dallas.linode.com/100MB-dallas.bin -wget http://speedtest.dallas.linode.com/100MB-dallas.bin -``` - -Below you can see that each time `cURL` is run, a different average download speed is reported and each takes a slightly different amount of time to complete. This is to be expected, and you should analyze multiple data sets to get a real feel for how fast a certain DC will behave for you. - -```output - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed -100 100M 100 100M 0 0 11.4M 0 0:00:08 0:00:08 --:--:-- 12.0M -``` - -```output - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed -100 100M 100 100M 0 0 10.8M 0 0:00:09 0:00:09 --:--:-- 9.9M -``` - -```output - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed -100 100M 100 100M 0 0 9189k 0 0:00:11 0:00:11 --:--:-- 10.0M -``` - -## Pricing - -Price may also be a factor when selecting your region. In general, Linode plans and services are billed at the same, flat rate across data centers. However, due to higher infrastructure costs in various global markets, pricing for some services varies from data center to data center. Regions with data center-specific pricing include: - -- Jakarta, Indonesia -- São Paulo, Brazil - -See our [Pricing](https://www.linode.com/pricing/) page for a complete list of plans and pricing. diff --git a/docs/products/platform/get-started/guides/developer-access/index.md b/docs/products/platform/get-started/guides/developer-access/index.md deleted file mode 100644 index 394e1f04720..00000000000 --- a/docs/products/platform/get-started/guides/developer-access/index.md +++ /dev/null @@ -1,363 +0,0 @@ ---- -title: Grant a Developer Access a Compute Instance or Linode Account -description: Shows how to create an account with access restrictions for developers and maintainers. -published: 2018-07-26 -modified: 2024-03-11 -keywords: ["accounts", "passwords", "linode manager", "manager", "security"] -tags: ["ssh","linode platform","drupal","security","mysql","wordpress"] -aliases: ['/platform/create-limited-developer-account/','/guides/create-limited-developer-account/'] ---- - -One of the most powerful features of Linode's unmanaged service is the amount of control Linode users have over their account and the software installed on their systems. If you're a business owner that does not have expertise with installing or maintaining software on Linux, or if you do have experience with Linux but don't have the time to set up a new server, then contracting with a developer or administrator is a popular way to get your services up and running. - -## What to Keep Track of when Hiring a Developer - -When you hire someone to work on your Linode, there are a variety of ways to grant access to your Linode account, the Compute Instances on it, and the system and applications on those instances. Recording which of these credentials you've shared is important if you need to end your contract with your developer. - -This guide explains and answers some of the most frequently asked questions about account access. The sections are separated in order of granularity, starting with service-level access at the top, and working towards application-specific access. - -For security and privacy, [Linode Support](/docs/products/platform/get-started/guides/support/) is not able to troubleshoot issues related to users and application access. Instead, Linode offers an in-house Professional Services team that can be hired to help with projects. You can reach out to that team through the [Contact Sales](https://www.linode.com/company/contact/) form. - -{{< note >}} -The following sections include commands that show how to manipulate credentials on your Compute Instances, and these commands use `exampleUser` in place of your users' names. Replace `exampleUser` with whatever you would like to name your users. -{{< /note >}} - -## Cloud Manager Access - -Access to Cloud Manager provides high-level methods for controlling your Compute Instances and Linode billing, including but not limited to: powering Compute Instances down, powering them on, removing services, and adding services. Cloud Manager does not have interfaces for manipulating the files and software on your systems--instead, that access is governed by service-specific credentials outlined in the next sections. - -### Who Has Access to My Linode Account? - -Log in to Cloud Manager and navigate to the [**Users and Permissions**](https://cloud.linode.com/account/users) section of the **Account** tab. You may be prompted to reauthenticate your password. This section will display all of your Linode account's users. - -If you're not sure whether you're logged in as the account administrator, look for a `No` in the **Restricted** column of your username's row in the User Manager. - -### Add a User to the Linode Account - -Keep your account administrator credentials secret. When hiring an external individual or agency to work on your site or application, create a *restricted* user and assign specific access to the account. Learn more about how to manage users and permissions and how to recover a lost username in our [Accounts and Passwords](/docs/products/platform/accounts/guides/manage-users/#recover-a-lost-username) guide. - -Useful *Global Grants* for a limited access user might include the ability to: - -- Add a [NodeBalancer](/docs/products/networking/nodebalancers/). -- Add [Longview](/docs/products/tools/longview/get-started/) clients. -- Use the [DNS Manager](/docs/products/networking/dns-manager/) to add domains. -- Create [StackScripts](/docs/products/tools/stackscripts/). -- Create [Images](/docs/products/tools/images/). -- Add [Block Storage Volumes](/docs/products/storage/block-storage/). - -### Revoke a User's Access to the Linode Account - -1. If you suspect that the user may have access to their Cloud Manager password, [change that first](/docs/products/platform/accounts/guides/reset-user-password/). - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and click [**Users and Permissions**](https://cloud.linode.com/account/users) in the **Account** tab. You may be prompted to reauthenticate your password. - -1. Locate the user in the Username column, and click the three dots and select **Delete** to remove the user. Click **Delete** to confirm deletion. - -## SSH Logins - -The primary method for directly administering files and software on a Compute Instance is through SSH. SSH is a service that runs on a system and listens for and accepts remote terminal connections. Once an SSH connection is opened, a user can issue commands to your server. **Your Compute Instance's SSH users are not the same as your Cloud Manager users.** - -For the steps in this section, [connect to your Compute Instance via SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) to log in to the system as `root`, which is the primary administrative (and most powerful) user on every Linux system. Alternatively, you can login as non-root user with *sudo* (i.e. administrative) permissions. - -{{< note >}} -If you don't remember your root password, [reset it through the Manager](/docs/products/platform/accounts/guides/reset-user-password/). -{{< /note >}} - -### Who Has SSH Access to Your Compute Instance? - -Use `getent` to display the list of users. Keep in mind that some applications create Linux users as part of their normal operation, and those users will be listed here too. - -```command -getent passwd -``` - -### Add an SSH User - -[Create a limited Linux user account](/docs/products/compute/compute-instances/guides/set-up-and-secure/#add-a-limited-user-account) on your Compute Instance. Set a unique and secure password for this user. - -### Create a User Group with Specific Permissions - -As an optional alternative to setting permissions for each user, create a limited privilege user group that can be reused and combined with other groups if needed. - -1. Add the group. Replace `devGroup` in these examples to a group name you'll remember: - - ```command - groupadd devGroup - ``` - -1. Add the user to the group and specify a new home directory for the user: - - ```command - usermod -g devGroup -d /var/www/html/example.com exampleUser - ``` - -### Restrict a User to a Specific Directory - -If your user should only have access to a specific directory and its subdirectories, for example `/var/www/html/example.com/`, use `chroot` *jails*, as described in the [Advanced SSH Security](/docs/guides/advanced-ssh-server-security/#chroot-users) guide. - -### Restrict a User to SFTP Only - -For some applications, a user may only need to transfer files to or from the server. In this case, create a user that can transfer files through SFTP but that can't access the server with SSH. - -{{< note type="alert" >}} -The steps in this section disable a user's SSH access. Do not follow the steps in this section for any user who needs SSH access. -{{< /note >}} - -Consult our guide to configure this using [SFTP jails on Debian or Ubuntu](/docs/guides/limiting-access-with-sftp-jails-on-debian-and-ubuntu/). - -1. Change the `sftp` subsystem line and add a `Match Group sftpOnly` section in `sshd_config`: - - ```file {title="/etc/ssh/sshd_config"} - ... - Subsystem sftp internal-sftp - ... - Match Group sftpOnly - ChrootDirectory %h - X11Forwarding no - AllowTcpForwarding no - ForceCommand internal-sftp - ``` - -1. Create an `sftpOnly` group that will only have SFTP access: - - ```command - groupadd sftpOnly - ``` - -1. Add a user to the group and disable their SSH access. Change both the user name and home directory: - - ```command - usermod -g sftpOnly -d /home/exampleUser -s /sbin/nologin exampleUser - ``` - -1. Restart the SSH service: - - ```command - systemctl restart ssh - ``` - -1. Change the ownership of the directory the user should have access to: - - ```command - chown -R exampleUser:sftpOnly /var/www/html/example.com - ``` - -The user can now `sftp` to the system and transfer files to and from the specified directory. - -### Revoke Access for an SSH User - -To revoke access to an SSH user, change the password for that user: - -```command -passwd exampleUser -``` - -In addition to password authentication, a user may rely on [public key authentication](/docs/products/compute/compute-instances/guides/set-up-and-secure/#harden-ssh-access) to connect via SSH. For any users that you would like to revoke access on, you should also check for the presence of a public key. - -These public keys are listed as line in a text file in the user's home directory named `/home/exampleUser/.ssh/authorized_keys`. To see which keys are present, run: - -```command -cat /home/exampleUser/.ssh/authorized_keys -``` - -The output will resemble the following: - -```output -ssh-rsa MIIEpQIBAAKCAQEAqOT7+bo5YUnzmBJYifL5b/VrLhHNjI0Sjm0miyZ4HocvSjIJ+Kx1nWP1LjDG0wt6gimXjRrfPCykHFyJwdZO69dK/gJ0GdcejWtC1sJBCSvI9TISXISLBNXr5rLHedhR2wFOJTRkKTquHP5dw2o5UNBBMyuM0wfkv5ggw8ShecIuO6xCw7yYQIg66BIe2G5toL6uasVOBjvJv5iKWKQNx1sf5ICfDJdVjQojtfHiPAyufidAjm4qO4/jOyfTTncu5+IEJCk12YpO66H3COJwbjPcRXlAcHM4CrBdTb8TmYmmStetY5Lmso++OaD4QjlO2TrhIXjoXDccU7/1BpkdpnPiapPuGKlWYa1vLEeUoIYV6NC9rxJCiYd/V//rBupYt4hkbSAbKl3o24gl1qOw/U7p+yelAZmDVWQCqOOdz3RttXyO/MoET9v0z2+1/57/gxLpHdsrPli7SeyrWMax18GM8DyfjVG5DFxYb/V0uTeew3xVzwXL+OnRdfnIsliSPXkmv15Yqbh10AEarK0EjfHR/VOMEgozrRoL8g9t4Yt5xhiWpbG9wk/EKfj3eaVg2AssQcw6IhzsaS5Kj4qr6aj3I6nx4fhTGUdfvmGqRETR8Hcyg7cDZId9qXve5PVxtxE2ROoszpTLkls+rL7L6+e2y9qfO4Np1ssTWz8495QPojjoMUnMIm6ZTVALjudn+eQ== user@example.com -``` - -Each SSH public key entry will begin with `ssh-rsa` and end with a corresponding email address (e.g. `user@example.com`). - -To remove a public key, edit the `authorized_keys` file and remove the corresponding line. `nano` is a simple text editor in Linux that can be used to do this: - -```command -nano /home/exampleUser/.ssh/authorized_keys -``` - -Use the cursor keys to navigate the file, enter `CTRL-O` to save the file, and enter `CTRL-X` to exit the editor. - -If you instead want to fully remove the file, run: - -```command -rm /home/exampleUser/.ssh/authorized_keys -``` - -{{< note type="alert" >}} -Files removed in this way can't be easily restored. -{{< /note >}} - -## Add or Remove WordPress Users - -If your site runs WordPress, add a user with the appropriate permissions. - -WordPress user roles are useful for authors and content contributors, but might not be enough for a developer to work on the site. If you don't feel comfortable sharing the existing administrator account credentials, create an administrator account. - -1. Log in to your WordPress admin, typically through `www.example.com/wp-admin` (where `example.com` is your site). - -1. Click **Users**, then **All users** to view a list of current users. - -1. To add a user: - - 1. Click **Add New**, enter the information, and for *Role*, select **Administrator**. - 1. Click **Add New User** - - To revoke privileges or delete a user: - - 1. Click the check box next to the user's thumbnail. - 1. To change the role: - - * Select a different role in **Change role to...**, then click **Change**. - - To delete the user: - - * Click **Bulk Actions**, select **Delete**, then click **Apply**. Click **Confirm Deletion** to delete the user. - -## Add and Manage Drupal Users - -Drupal's main administrator account is the **User 1** account. This account serves as the *root* user and can create other users with different *permissions* and *roles*. - -Create a new user with administrative-level permissions to grant someone the necessary access to maintain your Drupal site. - -1. Log in to the Drupal admin (this may be through your site's `www.example.com/admin`), and click **Manage**, then **People** in the Admin menu. - -1. To create a user with administrative privileges, click **Add user** and fill out the information on the page that follows. Select the **Administrator** role when prompted. - -To view a list of permissions allowed to the Administrator role, return to the **People** page and click **Permissions**. - -### Configure Drupal Roles - -If you don't feel comfortable granting the full list of administrative privileges, create a new Role that can be reused and applied to many users. - -1. Select the **Roles** tab, then click **Add role** and give the role an appropriate name on the next page. Click **Save** to return to the Roles list. - -1. To assign permissions to the new role, click the **Permissions** tab and locate the new role's column on the right. - -1. Create a new user as shown above and select the new role when prompted in Step 2. - -### Remove a Drupal User or Revoke User Permissions - -1. Log in to the site's Drupal admin (this may be through your site's `www.example.com/admin`), and click **Manage**, then **People** in the Admin menu. - -1. Click **Edit** in the *Operations* column of the user's name. - -1. Change the role, or click **Cancel account** and then choose what should happen with the user's content of the page that follows. - - Once cancelled, the user will appear in the User List with a *Blocked* status. - -## MySQL/MariaDB Database Access - -In the background of most web servers is a database that keeps track of users, pages, and other information. The database is configured before a content management system (CMS) like WordPress or Drupal is installed. - -While some systems allow the Linux root user to circumvent root database login, you may need to know the SQL root user's password for these steps. - -### Log in to MySQL - -1. [SSH to your Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) as a user with sudo privileges. - -1. Connect to MySQL with `sudo`: - - ```command - sudo mysql -u root - ``` - -### View Existing MySQL Database Users - -To display users and their passwords: - -```command -SELECT User, Host, Password FROM mysql.user; -``` - -### View Existing MySQL Databases - -While logged in to MySQL: - -```command -SELECT DATABASE(); -``` - -### Change a MySQL or MariaDB User's Password - -While logged in to MySQL: - -1. Use `FLUSH PRIVILEGES` before making changes: - - ```command - FLUSH PRIVILEGES; - ``` - -1. Set a new password for the user: - - ```command - ALTER USER 'exampleUser'@'localhost' IDENTIFIED BY 'newPassword'; - ``` - - If using MariaDB, use the `SET PASSWORD` command: - - ```command - SET PASSWORD FOR 'exampleUser' = PASSWORD('newPassword'); - ``` - -### Remove a MySQL User - -While logged in to MySQL: - -```command -DROP USER 'exampleUser'@'localhost'; -``` - -If using MariaDB: - -```command -DROP USER exampleUser; -``` - -### Add a New MySQL User - -Add a new user and grant them access to a specific database. If you are using a CMS and are concerned about access, update SSH login information. You do not need to create a new user, but it might help to update the database password. See the [Change WordPress Database Password in MySQL](#change-the-wordpress-database-password-in-mysql) section for more information. - -While logged in to MySQL: - -```command -CREATE USER 'exampleUser'@'localhost' IDENTIFIED BY 'password'; -GRANT ALL PRIVILEGES ON databaseName.* TO 'exampleUser'; -``` - -### Change the WordPress Database Password in MySQL - -{{< note type="alert" >}} -This section changes the WordPress database password itself; not any WordPress user. This may affect your WordPress installation. -{{< /note >}} - -If you are only trying to change a WordPress user's login information, see the [WordPress Users](#wordpress-users) section. It is rare that anyone should need to modify the database password except in the case of a WordPress migration. Otherwise, it is not likely that you need to follow this section. - -1. Use the previous sections to log in to MySQL and find the WordPress database name and user. Replace `wordpress` and `wpuser` in this example with the appropriate names, and `newPassword` with a new secure password: - - ```command - ALTER USER 'wpuser'@'localhost' IDENTIFIED BY 'newPassword'; - FLUSH PRIVILEGES; - quit - ``` - - If using MariaDB, use the `SET PASSWORD` command: - - ```command - SET PASSWORD FOR 'wpuser' = PASSWORD('newPassword'); - ``` - -1. Edit your site's `wp-config.php` to reflect the changes: - -```file {title="/var/www/html/example.com/public_html/wp-config.php" lang=php} -// ** MySQL settings - You can get this info from your web host ** // -/** The name of the database for WordPress */ -define('DB_NAME', 'wordpress'); - -/** MySQL database username */ -define('DB_USER', 'wpuser'); - -/** MySQL database password */ -define('DB_PASSWORD', 'newPassword'); - -/** MySQL hostname */ -define('DB_HOST', 'localhost'); -``` \ No newline at end of file diff --git a/docs/products/platform/get-started/guides/network-transfer/cloud-manage-compute-network-transfer-usage.png b/docs/products/platform/get-started/guides/network-transfer/cloud-manage-compute-network-transfer-usage.png deleted file mode 100644 index 580c186497d..00000000000 Binary files a/docs/products/platform/get-started/guides/network-transfer/cloud-manage-compute-network-transfer-usage.png and /dev/null differ diff --git a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-compute-network-transfer-usage.jpg b/docs/products/platform/get-started/guides/network-transfer/cloud-manager-compute-network-transfer-usage.jpg deleted file mode 100644 index 45759e3bf67..00000000000 Binary files a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-compute-network-transfer-usage.jpg and /dev/null differ diff --git a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-monthly-network-transfer-pool.jpeg b/docs/products/platform/get-started/guides/network-transfer/cloud-manager-monthly-network-transfer-pool.jpeg deleted file mode 100644 index 3ebca7e4aa7..00000000000 Binary files a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-monthly-network-transfer-pool.jpeg and /dev/null differ diff --git a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-monthly-network-transfer-pool.png b/docs/products/platform/get-started/guides/network-transfer/cloud-manager-monthly-network-transfer-pool.png deleted file mode 100644 index 26d80e40d9c..00000000000 Binary files a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-monthly-network-transfer-pool.png and /dev/null differ diff --git a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-network-transfer-notice.jpeg b/docs/products/platform/get-started/guides/network-transfer/cloud-manager-network-transfer-notice.jpeg deleted file mode 100644 index 1e1d28aca29..00000000000 Binary files a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-network-transfer-notice.jpeg and /dev/null differ diff --git a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-network-transfer-notice.png b/docs/products/platform/get-started/guides/network-transfer/cloud-manager-network-transfer-notice.png deleted file mode 100644 index 1791f5a970d..00000000000 Binary files a/docs/products/platform/get-started/guides/network-transfer/cloud-manager-network-transfer-notice.png and /dev/null differ diff --git a/docs/products/platform/get-started/guides/network-transfer/index.md b/docs/products/platform/get-started/guides/network-transfer/index.md deleted file mode 100644 index 1bc64990215..00000000000 --- a/docs/products/platform/get-started/guides/network-transfer/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "Network Transfer Usage and Costs" -description: "Learn how your Linode account's network transfer pool is calculated and billed." -published: 2018-08-21 -modified: 2023-10-25 -keywords: ["network","billing","account","transfer", "overage"] -tags: ["linode platform"] -aliases: ['/platform/billing-and-support/network-transfer-quota/', '/guides/network-transfer-quota/','/guides/network-transfer/'] ---- - -## Overview - -**Network transfer** is the exchange of data between two computers over the public internet or a private network. Other providers and publications may also refer to this as data transfer, ingress/egress, and bandwidth. - -This traffic is broken down into inbound (ingress) and outbound (egress) network transfer. *Inbound network transfer* is data sent *to* your service, such as a file upload. *Outbound network transfer* is data sent *from* your service, such as a web page and its images, stylesheets, and JavaScript files. - -## Transfer Allowance - -The following Linode services consume network transfer and, in most cases, include a set amount of outbound network transfer allowance per month. The amount of transfer is displayed along with the pricing and plan details for each service. See Linode's [pricing page](https://www.linode.com/pricing) for exact amounts. - -- **Compute Instances:** Consume network transfer and include 1-20 TB of transfer allowance per month, depending on plan size. - -- **NodeBalancers:** Consume network transfer but do not include a monthly transfer allowance. - -- **Object Storage:** Consumes network transfer and adds 1 TB of transfer allowance per month to your global network transfer pool. - -- **Managed Databases:** Does not consume network transfer or include a monthly transfer allowance. - -Most data centers have their transfer allowance and usage tracked in a **global network transfer pool**. Some newer data centers may have their network transfer usage tracked separately in a *specific network transfer pool for that region*. Your global and region-specific pools can be viewed and [monitored](#monitoring-network-transfer-usage) from your account's **Monthly Network Transfer Pool**. - -When a service is deployed on an account, that service’s prorated transfer allowance is added to its corresponding network transfer pool. Whenever a service consumes network transfer, it is counted towards that pool (not the individual transfer allowance for the service). In most cases, this is the global pool. However, if the service is deployed in a region that has its own specific transfer pool, the network allowances and usage is tracked in that pool (not the global pool). - -{{< note >}} -If a service is not active for the entire month, the amount of network transfer allowance is prorated based on the number of hours the service is active. -{{< /note >}} - -## Usage Costs - -Costs associated with network transfer can often be unexpected or confusing in a cloud hosting environment. Linode keeps these costs simple and transparent so that you can easily anticipate your monthly charges. - -**Free unmetered network transfer:** - -- All inbound network transfer - -- Outbound network transfer sent from Compute Instances and NodeBalancers to any Linode service within the same data center, provided the traffic occurs over an IPv6 address, a private VLAN network, or on the private IPv4 address of those services. Public IPv4 addresses, due to the way traffic is routed, is not included in this. - -**Metered network transfer:** - -- Outbound transfer sent from Compute Instances and NodeBalancers to destinations outside of the origin data center (over both IPv6 and IPv4) and within the same data center if a public IPv4 address is used. - -- Outbound transfer from Object Storage (over both public IPv6 and public IPv4), even to other Linode services within the same data center. - -All metered network transfer consumed by a service is counted toward either the global network transfer pool or its data center-specific pool (if that region tracks network transfer separately from the global pool). Any additional transfer usage that exceeds this monthly allotment starts at $0.005/GB (or $5/TB) depending on the service’s region (see the table below). Additional transfer usage is charged at the end of the billing period. - -{{< table >}} -| Data Center | Network Transfer overage cost per GB | -| :-- | -- | -| All data centers (except those listed below) | $0.005/GB | -| Jakarta, Indonesia | $0.015/GB | -| São Paulo, Brazil | $ 0.007/GB | -{{< /table >}} - -{{< note >}} -The combined monthly network transfer pools are typically enough to cover *most* common use cases for our services. You are only billed for additional network transfer if your usage exceeds the global or data center-specific pools during a billing period. - -If traffic for an individual service exceeds the network transfer amount specified by its plan, but the total transfer used between the rest of your services is still less than your monthly global or region-specific pools, then you are *not* charged additional fees. -{{< /note >}} - -## Monitoring Network Transfer Usage - -We recommend that you monitor your network transfer usage throughout the month to ensure that your services aren't consuming more network transfer than expected. You can check your network usage for your current billing cycle via Cloud Manager or the Linode CLI. - -### Cloud Manager - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Under the list of the Linode Compute Instances, NodeBalancers, or Object Storage Buckets, a short notice is displayed with the percentage of monthly network transfer pool that has been used. - - ![Screenshot of Monthly Network Transfer Pool Percentage Used](cloud-manager-network-transfer-notice.jpeg) - -1. Click the *Monthly Network Transfer Pool* link to display a modal pop-up with more details, including: your active pools, the amount of transfer used, the size of your pools, and when the network transfer usage will reset. - - ![Screenshot of Monthly Network Transfer Pool Overview](cloud-manager-monthly-network-transfer-pool.jpeg) - - {{< note >}} - Unless you have services deployed in a region that tracks data center-specific network transfer separately, you will only see the global network transfer pool displayed. - {{< /note >}} - -1. Lastly, you can view more details regarding a Compute Instance's network transfer usage (including historical charts) directly on the instance's page in Cloud Manager. To do so, click **Linodes** on the left navigation menu, select your Compute Instance from the list, and navigate to the **Network** tab. - - ![Screenshot of a Compute Instance's Monthly Network Transfer Usage](cloud-manager-compute-network-transfer-usage.jpg) - - The **Monthly Network Transfer** section includes usage details for the current billing period. The **Network Transfer History** section shows a chart with usage details over the selected period. - -### Linode CLI - -To view your network utilization (in GB) for the current month, issue the following command: - -```command -linode-cli account transfer -``` - -{{< note >}} -You need to generate a Personal Access Token and install the Linode CLI before being able to use the CLI. See the [Linode CLI](/docs/products/tools/cli/get-started/) guide for more information. -{{< /note >}} - -### Email Alerts - -Linode automatically sends an email notification to [your account's email address](/docs/products/platform/accounts/guides/change-user-email/) when you have used 80%, 90%, and 100% of your transfer pool size. - -## More Information - -Read the [Billing and Payments](/docs/products/platform/billing/) guide for an overview of Linode billing. \ No newline at end of file diff --git a/docs/products/platform/get-started/guides/resell-services/how-to-resell-linode-services.png b/docs/products/platform/get-started/guides/resell-services/how-to-resell-linode-services.png deleted file mode 100644 index d082b5aeb65..00000000000 Binary files a/docs/products/platform/get-started/guides/resell-services/how-to-resell-linode-services.png and /dev/null differ diff --git a/docs/products/platform/get-started/guides/resell-services/index.md b/docs/products/platform/get-started/guides/resell-services/index.md deleted file mode 100644 index 55a699f6f64..00000000000 --- a/docs/products/platform/get-started/guides/resell-services/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "Resell Linode Services" -title_meta: "How to Resell Linode Services" -description: 'How to resell Linode services using the Linode API, and how to get started with the Linode referral program.' -published: 2019-01-31 -modified: 2023-07-24 -keywords: ['resell','linode','services','reseller','referral','code'] -tags: ["linode platform"] -aliases: ['/platform/how-to-resell-linode-services/','/guides/how-to-resell-linode-services/'] -image: how-to-resell-linode-services.png ---- - -Linode welcomes partners and encourages the reselling of our services to third-party customers. Anyone can resell Linode services and discounted pricing is offered to resellers. If you are interested in becoming a reseller and learning more about discounted pricing, please contact our team through the [Partner form](https://www.linode.com/partners/apply/) or by emailing partners@linode.com. This guide provides more information about our partner program and outlines the process of becoming a reseller. - -## What is a Reseller - -A reseller is any person or entity that charges a third party for Linode services, acting as a kind of middleman. Resellers are free to charge clients for full or partial access to Linode services, either through the use of the [Linode API](#linode-api), or by giving a client access to Linode services provisioned on their behalf. - -There are a variety of reasons one might want to resell Linode services. One of the most common reasons developers and engineers become resellers is that they use Linode to test, develop, and/or host their client's websites and apps, and in doing so need to bill those clients for charges accrued by the Linode services that power this business. Specific examples of this pattern include: - -- An agency that creates custom WordPress installations for their customers on Linode. - -- An app developer that uses Linode to host their customer's database. - -- A business which operates a fully-fledged hosting platform based on Linode services, using tools like the [Linode API](#linode-api). One such example is Cloudnet Sweden, a platform-as-a-service (PaaS) that uses Linode as a cloud host for their managed platform. Read our [case study on Cloudnet Sweden](https://www.linode.com/content/cloudnet/) for an in-depth look at why they chose to partner with Linode. - -## Referral Program - -As an alternative to reselling our services, you can participate in our referral program. See the [Referral Program](https://www.linode.com/referral-program/) page on our website or the [Referral Program](/docs/products/platform/billing/guides/referral-program/) section within our billing guide for more details. - -Advertising your referral code to others is not the same as reselling Linode services. When someone else uses your referral code, they create an entirely separate Linode account with their own billing. - -## Things Resellers Should Keep in Mind - -There are a few stipulations that resellers should keep in mind: - -- All resellers, and the customers of resellers, are bound to [Linode's Terms of Service](https://www.linode.com/tos) (ToS). If for any reason a customer of a Linode reseller breaks Linode's ToS, it is the reseller who will be held accountable. If you are planning on becoming a reseller it is a good idea to carefully craft a ToS of your own that is in accordance with Linode's ToS. - -- All resellers, and the customers of resellers, are bound to [Linode's Acceptable Use Policy](https://www.linode.com/aup) (AUP). If for any reason a customer of a Linode reseller breaks Linode's AUP, it is the reseller who will be held accountable. - -- Payments are to be made directly to Linode by the reseller. If a customer of a reseller fails to pay the reseller for their services, the reseller is still responsible for their monthly payment to Linode. - -- Linode Support can help with issues related to the physical operation of your Linode services, but issues related to your software configuration are outside of the [scope of Linode Support](/docs/products/platform/get-started/guides/support/#scope-of-support). Linode offers a number of [resources](/docs/products/platform/get-started/guides/support/#types-of-questions-and-issues) to help with configuration questions. Linode Support is only available to people with access to a [Cloud Manager user](#limited-cloud-manager-user). If your customers do not have their own Linode users, they will not be able to contact Linode Support. - -## How to Resell Linode Service - -### Linode API - -The best way to resell Linode services is through the use of the Linode API. The Linode API provides robust, programmatic access to the full suite of Linode services. Using the API, a reseller could set up a custom user interface to only allow the select features they want available for their customers. For example, it's possible to create a UI that only enables 4GB Compute Instances and that automatically provisions those instances with a StackScript. For a tutorial on how to use the Linode API, check out our [Getting Started with the Linode API](/docs/products/tools/api/get-started/) guide. For a comprehensive view of the Linode API, see Linode's [API documentation](/docs/api/). For a list of Linode API libraries and tools, head over to our [developer portal](https://developers.linode.com/libraries-tools/). - -### Limited Cloud Manager Users - -If a reseller wants to be able to give reseller customers access to parts of Cloud Manager without developing a new user interface, they can create a limited Manager *user* in Cloud Manager. A user is a set of credentials that can access your Linode account, and your Linode account can have multiple users. A user can be restricted to have a limited set of permissions, such as only being able to access certain Linodes and not having access to your billing information. To create a limited user in Cloud Manager, review the [Users and Permissions](/docs/products/platform/accounts/guides/manage-users/#add-a-user) section of the Accounts and Passwords guide. - -{{< note >}} -Cloud Manager users are not related to the Linux users you may separately configure on Compute Instances. If you need to revoke a customer's account access, you should remove access to both their Cloud Manager users and their Linux users. Read the [Linux Users and Groups](/docs/guides/linux-users-and-groups/) guide for more information on this subject. -{{< /note >}} - -### Limited Linux User Accounts - -A reseller might provide a customer with limited access to a Compute Instance by creating an account for them at the operating system level. This provides the customer with access to their server, without access to the features of the Linode API or Cloud Manager. For a hosting reseller that offers access to a pre-defined Linux environment, this is often a good solution. Read the [Linux Users and Groups](/docs/guides/linux-users-and-groups/) guide for more information on this subject. You may also want to limit users' access to the filesystem with [SFTP jails](/docs/guides/limiting-access-with-sftp-jails-on-debian-and-ubuntu/). - -## Frequently Asked Questions - -### Can I Show Linode's Logos on My Site? - -Yes. Please use the official [Linode logo assets](https://www.linode.com/logos). - -### What Payment Methods are Available? - -Automatic payments can be made with a credit card. All Linode accounts are required to have a credit card on file. Manual PayPal payments can also be made, so you can add credit to your Linode account with PayPal. For more information on Linode's billing, review the [Payment Methods](/docs/products/platform/billing/guides/payment-methods/) guide. - -### Does Linode Have a White-Label Interface? - -Linode does not offer a white-label interface, but you could create one via the [Linode API](https://developers.linode.com). - -### Can I Model my Terms of Service on Linode's ToS? - -Yes, you can refer to Linode's [ToS](https://www.linode.com/tos) and [AUP](https://www.linode.com/aup) when authoring your own, and your business and your customers need to comply with Linode's ToS and AUP. diff --git a/docs/products/platform/get-started/guides/send-email/index.md b/docs/products/platform/get-started/guides/send-email/index.md deleted file mode 100644 index f0e69718740..00000000000 --- a/docs/products/platform/get-started/guides/send-email/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "Send Email on the Linode Platform" -description: "Learn about Linode's email policy, how to lift email restrictions, and best practices to implement when sending email." -published: 2023-05-02 -keywords: ["SMTP", "SMTP restrictions", "email restrictions"] ---- - -Linode services, such as Compute Instances and LKE clusters, can be used to send and receive email --- though there may be restrictions in place on new accounts (see [Email Policy and Restrictions](#email-policy-and-restrictions)). This guide covers our email policies and details how to lift email restrictions from your account. It also includes best practices for both ensuring your email is compliant with regulations and decreasing the likelihood of having email marked as spam. - -{{< note >}} -Managing an email server is complicated and can result in email deliverability issues if anything is misconfigured. Many organizations choose to instead use dedicated external mail servers, such as those provided by [Fastmail](https://www.fastmail.com/), [Gmail for Google Workspace](https://workspace.google.com/products/gmail/), and [Outlook for Microsoft 365](https://www.microsoft.com/en-us/microsoft-365/business/compare-all-microsoft-365-business-products?&activetab=tab:primaryr2). There are also email delivery services for marketing and transactional email, including [Postmark](https://postmarkapp.com/), [SendGrid](https://sendgrid.com/), and [Mailchimp](https://mailchimp.com/). If you are using one of these services, you may not need to configure your Compute Instances to send email. Consult with those on your team that use email to determine if an external service better suits your needs. -{{< /note >}} - -## Email Policy and Restrictions - -Email can be sent on the Linode Platform for any purpose (including marketing and transactional), provided that your use conforms to our [Acceptable Use Policy (AUP)](https://www.linode.com/legal-aup/) and any government policies that are applicable to you, including the [CAN-SPAM Act](https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business). - -In an effort to fight spam, Linode restricts outbound connections over ports 25, 465, and 587 on Compute Instances for *some* new accounts created after November 5th, 2019. These restrictions, if applied to your account, prevent your Compute Instance from sending email over the standard SMTP ports. - -## Request to Lift Restrictions - -If you would like to send email on a Compute Instance and notice that these restrictions are in place, contact the [Support](https://www.linode.com/support/) team and request that the restrictions are lifted. Please include the following information in your request. - -- **First and last name** *(required)*: If you are not the account owner, please include their name and confirm that you're acting on their behalf. - -- **Organization name:** If an organization owns the account, provide the name of that entity. - -- **Use case and email sending practices** *(required)*: A clear and detailed description of your email use case, including how you intend to avoid sending unwanted emails. - -- **Domain name(s)** *(required)*: The domain name from which you intend to send email. If you plan on using multiple domain names, please provide each one. - -- **Links to public business information**: Links to public information about your organization or application. This could be a website, GitHub repository, social media profile, or another type of link. - -Our Support team reviews each request and will respond back with their decision or ask for additional information to help process this request. - -## Best Practices to Follow When Sending Email - -When sending email to your users or mailing lists, you should keep the following best practices and requirements in mind. All marketing emails should also comply with any additional requirements described in the [CAN-SPAM Act](https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business). - -- **Configure rDNS on the Compute Instance to match the system's hostname.** For instructions, reference the [Configure rDNS (Reverse DNS) on a Compute Instance](/docs/products/compute/compute-instances/guides/configure-rdns/) guide. If you have not yet configured a hostname, see [Configure a Custom Hostname](/docs/products/compute/compute-instances/guides/set-up-and-secure/#configure-a-custom-hostname). This hostname is different than the domains that will be used when sending email. - -- **Set up SPF, DKIM, and DMARC authentication methods for each sending domain name.** These authentication methods help identify which mail servers are able to send email from a domain (and what to do if that fails). - -- **Use TLS to encrypt your emails while in transit.** When sending email over SMTP, configure implicit TLS over port 465 and STARTTLS over port 587. See [RFC 8314 Section 3.3](https://datatracker.ietf.org/doc/html/rfc8314#section-3.3) for more details. - -- **All recipients must opt-in to receive emails.** At minimum, implement a single opt-in process, which means a recipient needs to manually subscribe to receive your emails. You should also consider implementing a double opt-in process, which means that the recipient needs to confirm their subscription, typically through an email link. It is much less likely for users to mark your email as spam if a person with access to that email has confirmed their subscription. Never purchase or obtain email lists from third parties without explicit consent from all email owners on that list. - -- **Clear, accessible, and quick opt-out process.** All forms of marketing or automated email communication should have a clearly visible link for the recipient to unsubscribe or adjust their email preferences. You should honor their preferences as quickly as possible. - -## Configure a Mail Server - -Once your restrictions are lifted, you can begin to use your Compute Instance to send email. To do so, you will likely need to install a mail server. Follow our [Running a Mail Server](/docs/guides/running-a-mail-server/) guide for general information on setting up a mail server on Linode. This guide discusses your software options, the DNS records you may need, virus protection, and popular email clients. - -For more detailed step-by-step instructions on installing a mail server, review one of our [email server](/docs/guides/email/) guides, including: - -- [Create an Email Server using Mail-in-a-Box](/docs/guides/mail-in-a-box-email-server/) -- [Configure an Email Server with Postfix, Dovecot, and MySQL](/docs/guides/email-with-postfix-dovecot-and-mysql/) \ No newline at end of file diff --git a/docs/products/platform/get-started/guides/status-page/index.md b/docs/products/platform/get-started/guides/status-page/index.md deleted file mode 100644 index e4a2ef297cc..00000000000 --- a/docs/products/platform/get-started/guides/status-page/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Subscribe to Linode Status Updates" -description: 'Learn how to subscribe to Linode system status and maintenance updates.' -published: 2018-08-20 -modified: 2023-04-23 -keywords: ['linode','maintenance','incident','system', 'status'] -tags: ["linode platform"] -aliases: ['/platform/linode-status-page/','/guides/linode-status-page/'] ---- - -The [Status Page](https://status.linode.com/) provides real-time system status and maintenance updates via email. All customers are encouraged to subscribe to status notifications to stay up-to-date with any events that may impact our services. When you sign up for status updates, you can fine-tune which service updates you receive. These different topic areas are referred to as *components*. If, for example, all your services are restricted to the Newark data center, you may only wish to subscribe to the Newark component. - -You can also subscribe to individual incident notifications. In this case, you can be notified of new updates to an incident via email or SMS. - -## Subscribe to Email Updates - -To subscribe to system status and maintenance updates, follow the instructions below. - -1. Navigate to the [Linode Status Page](https://status.linode.com/). - -1. Click on the **Subscribe to Updates** button. - - ![Subscribe to Linode status updates.](status-page-subscribe.png) - -1. In the form that appears, enter your email address and click the **Subscribe via email** button. - -1. You are brought to another web page with a list of components. Select which components you'd like to receive status updates for and then click the **Save** button. - -1. You will receive a confirmation email shortly. In that email, click the **Confirm subscription** button. - -## Subscribe to RSS Updates - -Within your RSS aggregator, go through the process of adding a new RSS feed. When prompted, use the following URL for a raw XML list of recent incidents: `https://status.linode.com/history.rss`. - -## Subscribe to an Incident - -To subscribe to updates for a specific incident: - -1. Navigate to the [Linode Status Page](https://status.linode.com/). - -1. Find the incident you would like to follow and click on its heading. You are brought to that incident's page. - -1. Click on the **Subscribe to Updates** button and provide your Email and/or telephone number. - -## Update Notification Preferences or Unsubscribe - -You can update your component preferences or cancel your subscription to Linode status and maintenance updates at any time. To update your preferences or to unsubscribe: - -1. Navigate to the [Linode Status Page](https://status.linode.com/). - -1. Click on the **Subscribe to Updates** button and enter your email address. - -1. You are brought to your Notification Subscription page. Update your preferences, as needed, and click on the **Update Preferences** button. - -1. If you would like to unsubscribe, click on the **Cancel Subscription** link in the Subscriber section of the page and follow the prompt. - -{{< note >}} -You can unsubscribe from SMS notifications by replying to any text message notification with the word "STOP". -{{< /note >}} \ No newline at end of file diff --git a/docs/products/platform/get-started/guides/status-page/status-page-subscribe.png b/docs/products/platform/get-started/guides/status-page/status-page-subscribe.png deleted file mode 100644 index 762d8d303a0..00000000000 Binary files a/docs/products/platform/get-started/guides/status-page/status-page-subscribe.png and /dev/null differ diff --git a/docs/products/platform/get-started/guides/support/index.md b/docs/products/platform/get-started/guides/support/index.md deleted file mode 100644 index 86ab9c3c7b8..00000000000 --- a/docs/products/platform/get-started/guides/support/index.md +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: "Help & Support" -description: "Information about Linode support, including the scope of support and how to get help." -published: 2023-03-14 -modified: 2024-03-11 -keywords: ["support", "tech support", "tickets", "help desk"] -tags: ["linode platform"] -aliases: ['/platform/billing-and-support/support/','/support/','/platform/support/','/platform/billing-and-support/support-classic-manager/','/platform/billing-and-support/support-new-manager/','/guides/support/'] ---- - -Linode provides a variety of support options so that you get the answers you need, in the timeframe you need them, and in the way that works best for you -- all at no cost. Linode users have access to all of our support resources, including our extensive documentation library, our community questions site, and our award-winning Customer Support team - offering *self-service* and *live support* whenever you need it. This guide aims to point you in the right direction for whichever issue you may need assistance resolving. - -## Types of Questions and Issues - -- [Billing questions](#billing) -- [Account access and login issues](#account-access-and-login-issues) -- [Platform or service related questions](#linode-platform) -- [Application and server configuration issues](#application-and-server-configuration-issues) -- [Infrastructure deployment and configuration](#infrastructure-deployment-and-configuration) -- [Legal and compliance information](#legal-and-compliance-information) -- [Infrastructure status inquiries](#infrastructure-status-inquiries) -- [Report abuse on our platform](#report-abuse-on-our-platform) -- [Large deployments](#large-deployments-sales) - -### Billing - -To better understand how our billing works, what payment methods we accept, tax information, and more, review the [Billing guides](/docs/products/platform/billing/) section. You can also use our billing tools to help calculate, compare, and understand costs. - -- [Cloud Estimator](https://www.linode.com/estimator/): Compare both cost per month, as well as save with our predictable and transparent pricing. Explore bundled compute, storage, and transfer packages against AWS, GCP, and Azure. - -- [Cloud Pricing Calculator](https://www.linode.com/cloud-pricing-calculator/): Perfect for anyone moving a workload from on-prem to the cloud, switching from one cloud provider to another, or setting up a hybrid or multi-cloud architecture. With this tool, you can receive a full cost breakdown and technical recommendations for your workload. - -### Account Access and Login Issues - -For issues logging in to your account and other common account-related questions, see [Accounts > FAQs](/docs/products/platform/accounts/faqs/). If you are encountering issues with two-factor authentication and need to recover access to your account, review the [Recovery Procedure](/docs/products/platform/accounts/guides/2fa/#recovery-procedure) on the [Manage Two-Factor Authentication (2FA) on a User Account](/docs/products/platform/accounts/guides/2fa/) guide. For other login-related issues, please use the [Can't sign in to your account?](https://www.linode.com/support/contact/) form. - -### Linode Platform - -To get help using the Linode Platform or to resolve issues related to Linode products and services, use any of our [self-service resources](#self-service-and-community-based-resources) or [contact support](#contact-customer-support) for assistance. - -### Application and Server Configuration Issues - -Whenever you need assistance with software that's installed on your Compute Instances, consider reviewing any official documentation and community resources maintained by that software's developers. Alternatively, you can seek out answers through any of the [Self-Service and Community-based Resources](#self-service-and-community-based-resources) we offer. The Customer Support Team does not provide support regarding the installation or configuration of third-party applications. - -### Infrastructure Deployment and Configuration. - -For guidance on your architecture, migrations, and software deployments, consider working with our Professional Services team. You can reach out to that team through the [Contact Sales](https://www.linode.com/company/contact/) form. - -If you're looking for a partner to help guide your transition to the Cloud or help build your platform, our [Partner Directory](https://partner-directory.linode.com/s/) offers a list of trusted partners. - -### Legal and Compliance Information - -Security, privacy, and compliance are important to us. To help you find answers on these pertinent topics, we've created the [Legal & Compliance Center](https://www.linode.com/legal/). Here, you will find all documentation regarding our policies relating to infrastructure use and privacy, available certifications for each data center, and our own security and vulnerability management posture. - -### Infrastructure Status Inquiries - -For all emergent issues and planned maintenance within our infrastructure, our team will post to (and regularly update) the [Linode status page](https://status.linode.com/) until the issue has been resolved or maintenance completed. If you are experiencing a connectivity issue, or having troubles accessing one of our services, check this page for any system-wide outages. You can also subscribe to receive updates via email/SMS by clicking Subscribe To Updates in the top right corner of the page. - -### Report Abuse On Our Platform - -Use our [Abuse Portal](https://www.linode.com/legal-abuse/) to report network abuse, unauthorized access attempts, or spam originating from the Linode platform. Please forward spam with the full headers intact, and include logs documenting unauthorized access. - -### Large Deployments (Sales) - -[Contact our Sales Team](https://www.linode.com/company/contact/) to help you with migration planning, large volume pricing, partner recommendations, and more. - -## Self-Service and Community-based Resources - -For general questions and issues that are [outside the Scope of Support](#scope-of-support), consider using following resources. These resources may already provide an answer to your question or can help you get an answer and resolve your issues. - -- [**Linode Documentation**](/docs/): The Linode Docs Site contains documentation for all of our products as well as a wide variety of other topics, like using Linux, developing a web application, managing databases, and working with configuration management tools. This is a great resource for learning how to use our products and finding tutorials for installing and configuring third-party software on the Linode platform. - - [Product Docs](/docs/products/): Detailed information and guides for each of our products, features, and services. - - [Troubleshooting Overview](/docs/guides/troubleshooting-overview/): A quick start guide that provides answers for common server connectivity and management issues. - - [FAQs for Compute Instances](/docs/products/compute/compute-instances/faqs/): A curated list of the most frequently asked questions regarding Compute Instances. - -- [**Linode Community Site**](https://www.linode.com/community/questions/): The Community Site enables you to ask questions and get help from other community members. There are thousands of posts that can provide you with in-depth information, but if you can't find what you need, post your own question and let the community help. This is an excellent place to post questions that are [outside the Scope of Support](#scope-of-support). - -- **IRC channel**: Join #linode on irc.oftc.net to access our community IRC channel, which provides a space for anyone to discuss the Linode platform. - -{{< note type="warning" >}} -When posting questions or sharing details of your issues on self-service or community-based resources, do not include any personal information or account details. You should also never share usernames and passwords or otherwise provide access to your system to someone you do not know. -{{< /note >}} - -## Scope of Support - -Our Customer Support Team is available to provide support related to the physical operation of the products and services we offer. This includes resolving potential hardware issues within our infrastructure, helping you understand and use our products, helping you understand and pay your bill, ensuring that your network traffic is properly routed, and helping with base system performance issues that may be related to our infrastructure. - -Our team does not provide support regarding the installation or configuration of third-party applications, such as mail and web server software, nor do we provide support regarding the Linux configuration on your Compute Instances. For these issues, please consult the various other [resources](#self-service-and-community-based-resources) we have available or contact your system administrator or developer. Additionally, if you are providing a service to your customers, we do not offer technical support for those customers. Here is an excerpt from our [Master Services Agreement](https://www.linode.com/legal-msa/) (v1.4.0): - -> Linode does not offer or provide support: (i) for application-specific issues such as application configuration, CGI programming, web server, mail server, database configuration, or any other such issue; (ii) for issues related to the development, maintenance, operation, or other administration of Covered User Data; and/or (iii) to any End User Support. - -## Contact Customer Support - -Live support from our dedicated Customer Support Team is available 24 hours a day. You can reach us through a support ticket, by phone, or by e-mail. - -{{< note type="warning" title="Account Authentication" >}} -When contacting the Customer Support Team through a support ticket, you are automatically authenticated to your user account. If you instead send an inquiry through an email or call the dedicated support line, you will need to authenticate to an account before the support representative is able to disclose any account-specific information. -{{< /note >}} - -- **Support ticket:** Support tickets are the primary method for contacting the Customer Support Team. Tickets can be created, viewed, and managed through Cloud Manager, though you can also use the [Linode CLI](/docs/products/tools/cli/guides/support-tickets/) and [Linode API](/docs/api/support/) if preferred. For help creating a ticket, see the [Create and Manage Support Tickets](#create-and-manage-support-tickets) section below. - -- **Phone call:** The dedicated support phone line can provide real-time support to English language speakers. If your inquiry concerns a specific account, please be prepared to authenticate to that account through a support ticket, a one-time passcode (sent to the account's phone number or email address), or alternative means. If your call is diverted to voicemail, please leave a detailed message explaining your problem. Your call will be returned as quickly as possible. - - +1 (609) 380-7100 - - +1 (855) 454-6633 (North America toll-free) - -- **E-mail:** Whenever possible, it is recommended to create a support ticket. However, general questions that are *not account-specific* can be sent to *support@linode.com*. If your inquiry is account-specific and you are not able to log in to Cloud Manager, fill out the [can't log in form](https://www.linode.com/support/contact/). - -To help us give you the best possible answer when contacting the Support Team, consider the following advice. - -- **Be specific and detailed.** We need to know what is happening. Providing error logs and outputs from commands will go a long way to getting you a faster and more accurate answer. -- **Be clear.** Giving us context and sharing any troubleshooting steps you have already taken or resources you have looked at will help clarify what is going on and what additional steps we need to take on our end. - -## Create and Manage Support Tickets - -All Tickets can be created, viewed, and managed on the [Support Tickets](https://cloud.linode.com/support/tickets) page in Cloud Manager. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and select **Help & Support** from the sidebar menu. - -1. Under the **Other Ways to Get Help** section, select **Customer Support**. - -![Screenshot of the Support Tickets page in Cloud Manager](support-tickets.png) - -This screen lists all open tickets by default. For a list of past tickets, navigate to the **Closed Tickets** tab. Click on a specific ticket to open that ticket, view the history, and to reply. - -To open a new support ticket, click the **Open New Ticket** button. Enter a summary of the issue into the **Title** field. Then, select the product or service that is affected by the issue. In the **Description** field, enter in a clear description of the issue you are experiencing. - -When creating a ticket or replying to a ticket, keep in mind that you can attach files and use Markdown formatting. - -- **File attachmets:** Up to 5 files can be attached to each ticket. Accepted file types and extensions include: - - Images: `.gif`, `.jpg`, `.jpeg`, `.pjpg`, `.pjpeg`, `.tif`, `.tiff` - - Documents: `.pdf` or `.txt` - -- **Markdown Formatting.** Proper formatting and structure can make your questions or issues easier to identify and understand. Use inline code to wrap commands, code blocks for output (or logs), and headings to create separate sections. You can also bold or italicize text, format items or steps as lists, and add block quotes. For help with Markdown formatting, use this [cheat sheet](http://demo.showdownjs.com/). \ No newline at end of file diff --git a/docs/products/platform/get-started/guides/support/support-tickets.png b/docs/products/platform/get-started/guides/support/support-tickets.png deleted file mode 100644 index c0950584ef7..00000000000 Binary files a/docs/products/platform/get-started/guides/support/support-tickets.png and /dev/null differ diff --git a/docs/products/services/_index.md b/docs/products/services/_index.md deleted file mode 100644 index 99af9adab31..00000000000 --- a/docs/products/services/_index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Services -description: "Linode offers responsive, hands-on expertise from professionals who care." ---- diff --git a/docs/products/services/feature.png b/docs/products/services/feature.png deleted file mode 100644 index 587e624cc62..00000000000 Binary files a/docs/products/services/feature.png and /dev/null differ diff --git a/docs/products/services/feature.svg b/docs/products/services/feature.svg deleted file mode 100644 index 16d319837df..00000000000 --- a/docs/products/services/feature.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/products/services/managed/_index.md b/docs/products/services/managed/_index.md deleted file mode 100644 index 681a2dc36e6..00000000000 --- a/docs/products/services/managed/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Managed -title_meta: "Linode Managed Service Product Documentation" -description: "Linode Managed is a service that offers incident response, backups, and monitoring." -published: 2023-04-11 -modified: 2024-03-11 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "A suite of services that includes a robust monitoring system, 24/7 incident response, backups, and cPanel licenses." -aliases: ['/guides/platform/managed/'] ---- - -Downtime is expensive and puts your company’s reputation at risk. [Linode Managed](https://www.linode.com/products/managed/) helps minimize this risk through a suite of services and products aimed at monitoring your Compute Instances, minimizing downtime, protecting your data, and migrating to the Linode Platform. - -{{< note >}} -Linode Managed applies to all Compute Instances on an account **except** for nodes created and implemented by the [Linode Kubernetes Engine (LKE)](https://www.linode.com/products/kubernetes/). All eligible nodes are billed at a rate of $100 per month for each Linode. If this service is not needed for all instances, a second account can be created to separate Managed Compute Instances from non-Managed ones. To move instances between accounts, review the [Transfer Services to a Different Account](/docs/products/platform/accounts/guides/service-transfers/) guide. -{{< /note >}} - -## Benefits - -- **24/7 Monitoring and Incident Response:** The core benefit of Linode Managed is 24/7 monitoring and incident response. You can configure monitors for URLs, IP addresses, or TCP ports. This monitor periodically makes a TCP or HTTP request to that property. If a check fails, our experts take immediate steps to get your systems back online as quickly as possible. If they are not able to fix the issue, our experts will share their findings and the steps they've taken so far. Managed services does not include assistance with maintenance, updates, or the configuration of software on your Compute Instances. - -- **Included Services and Software:** The following services and software applications are included at no additional charge to Linode Managed customers - - - [cPanel](https://cpanel.net/): A cPanel license is included for each Compute Instance on your Linode account. Each license automatically scales to accommodate the number of [cPanel accounts](https://support.cpanel.net/hc/en-us/articles/1500004931582-What-is-an-Account/) you've configured within the cPanel installation. - - [Backups](/docs/products/storage/backups/): The Backup service is added to each Compute Instance on your account for no extra charge. This service automatically backs up the Compute Instance each day and lets you restore from the most recent daily backup, weekly backup, and biweekly backup. See [Get Started with Backups](/docs/products/storage/backups/get-started/) for more information on backup restore points. - - [Longview Pro](/docs/products/tools/longview/): Longview is our own metric service designed to help you keep track of your Compute Instances' performance. Whereas the free version of Longview is limited to collecting data at 5 minute intervals and storing only 12 hours worth of historical data, Longview Pro dramatically increases the data collection intervals and retains this data for longer: - - 1 minute resolution for the past 24 hours - - 5 minute resolution for the past week - - 2 hour resolution for the past month - - 1 day resolution for the past year - -## Pricing - -The cost for Linode Managed is $100 per Linode Compute Instance per month. For example, if there are 10 Compute Instances on your account, your total monthly cost will be $1,000. - -{{< note >}} -Worker nodes created by the [Linode Kubernetes Engine (LKE)](https://www.linode.com/products/kubernetes/) are not considered Linode Compute Instances for Managed billing purposes. These instances are not billed when enrolling in the Managed service. -{{< /note >}} - -## Availability - -Managed Services can be added to any account and can be used to monitor services across [all regions](https://www.linode.com/global-infrastructure/). - -## Technical Specifications - -- Monitors can be configured to send TCP or HTTP requests to an IP address or URL on any TCP port (default port is 80). - - **TCP:** Periodically initiates a TCP handshake to the specified property. - - **HTTP:** Periodically sends an HTTP/S request to the specified property and either looks for a `200 OK` response header or a specified string in the response body. -- Credentials can be added to allow our experts access to your system when troubleshooting. These credentials are encrypted and can be revoked by you at any time. \ No newline at end of file diff --git a/docs/products/services/managed/developers/index.md b/docs/products/services/managed/developers/index.md deleted file mode 100644 index f8815217c66..00000000000 --- a/docs/products/services/managed/developers/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for the Linode Managed Service" -description: "Use the Linode API and CLI to enabled and configure the Linode Managed Service." -published: 2023-04-04 -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [Enable Linode Managed](/docs/api/account/#linode-managed-enable) - -- [Managed Endpoint Collection](/docs/api/managed) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. \ No newline at end of file diff --git a/docs/products/services/managed/feature.png b/docs/products/services/managed/feature.png deleted file mode 100644 index d45872a8ef0..00000000000 Binary files a/docs/products/services/managed/feature.png and /dev/null differ diff --git a/docs/products/services/managed/feature.svg b/docs/products/services/managed/feature.svg deleted file mode 100644 index e900a8f83f3..00000000000 --- a/docs/products/services/managed/feature.svg +++ /dev/null @@ -1,17 +0,0 @@ - - Managed - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/products/services/managed/get-started/index.md b/docs/products/services/managed/get-started/index.md deleted file mode 100644 index 0e4a02df60a..00000000000 --- a/docs/products/services/managed/get-started/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with the Linode Managed Service" -description: "Learn how to get up and running with Linode Managed and start monitoring your Compute Instances." -published: 2023-04-11 -tab_group_main: - weight: 20 -keywords: ["managed", "managed services", "linode managed"] -aliases: ['/products/services/managed/guides/sign-up/','/linode-managed/','/uptime/linode-managed/','/platform/linode-managed-classic-manager/','/platform/linode-managed/','/guides/linode-managed/'] ---- - -[Linode Managed](https://www.linode.com/products/managed/) is a 24/7 incident response service coupled with Longview Pro, the Backup service, cPanel, additional dashboard metrics, and free site migrations. This robust, multi-homed monitoring system sends out monitoring checks to ensure that your monitored services remain online and available at all times. Managed Services can monitor any service or software stack reachable over TCP or HTTP. - -## Enable Managed Services - -Follow the instructions below to sign up for Managed Services. - -{{< note type="warning" >}} -This is an account-wide setting. Enabling Managed Services will result in additional charges *for each* Compute Instance on your account. If you would like to only enable this for some instances and not others, you will need to create a separate account and transfer any services you do (or do not) want to have managed. See [Transferring Ownership of Linode Services with Service Transfers](/docs/products/platform/accounts/guides/service-transfers/). -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Account** link in the sidebar. - -1. Navigate to the **Settings** tab and click the **Add Linode Managed** button at the bottom of this page. - -1. A confirmation dialog appears that outlines the total cost of the service for your account. Click the **Add Linode Managed** button in this confirmation dialog to enable Managed Services. - -## Initial Setup - -After signing up for Managed Services, the next steps are to configure which services or resources you'd like to monitor on your Compute Instances, allow the Support team to log in to the Compute Instances and access these services, and then let the Support team know who to contact in case of a failure. - -1. **Provide access to the Support team:** In order to investigate any issues with your Compute Instances, our Support team requires access to those instances. Because of this requirement, you should install your unique Managed Services public key on any instances you intend for us to monitor. You may also need to add any credentials that are specific to the applications or services you are running. For example, if you run a WordPress site that communicates with a MySQL database, you should provide the MySQL username and password if you would like us to troubleshoot it in the event of outage for your site. See the following guides: - - - [Configure SSH Access](/docs/products/services/managed/guides/ssh-access/) - - [Manage Credentials](/docs/products/services/managed/guides/credentials/) - - [Configure Firewall Rules to Allow Access from Linode Infrastructure](/docs/products/services/managed/guides/allow-access-from-linode-infrastructure/) - -1. **Configure contacts:** If a service monitor fails a check, all associated contacts are notified. Contacts may also be contacted by the Support team if additional information is needed when troubleshooting. See [Manage Contacts](/docs/products/services/managed/guides/contacts/). - -1. **Create service monitors:** Next, configure the actual monitors that are responsible for watching a particular website or service and checking for issues. You can even add checks to make sure specific strings of text appear on your monitored website or in the response body of your service. See [Create and Manage Service Monitors](/docs/products/services/managed/guides/service-monitors/). - -## Optional: Install cPanel - -Each Compute Instance on a Managed account is eligible to receive a [cPanel](https://cpanel.net/) license at no additional charge. - -1. **Installing cPanel:** The easiest method to quickly get cPanel up and running is to deploy a new Linode using the [cPanel Marketplace App](https://www.linode.com/marketplace/apps/cpanel/cpanel/). Review the [How to Deploy cPanel with Marketplace Apps](/docs/marketplace-docs/guides/cpanel/) guide for additional instructions. If the cPanel Marketplace App does not support your desired Linux distribution, you can also follow the instructions within the [Install cPanel on CentOS](/docs/guides/install-cpanel-on-centos/) guide or the [Installation Guide](https://docs.cpanel.net/installation-guide/) on cPanel's documentation site. At this time, cPanel supports the following Linode-provided distribution images: CentOS 7, AlmaLinux 8, Rocky Linux 8, and Ubuntu 20.04 LTS. See [What operating systems are supported by cPanel](https://support.cpanel.net/hc/en-us/articles/1500001216582-What-operating-systems-are-supported-by-cPanel-) for a full list. - -1. **Obtaining a License:** Contact the Support team to obtain a cPanel license for your Linode. If you do not subscribe to Linode Managed, you will need to obtain your license directly from cPanel. cPanel is typically licensed by the number of accounts within the cPanel installation, each account typically corresponding to a single website or group of similar websites. The license we provide will automatically scale based on the number of cPanel accounts you've configured. \ No newline at end of file diff --git a/docs/products/services/managed/guides/_index.md b/docs/products/services/managed/guides/_index.md deleted file mode 100644 index 4108873562d..00000000000 --- a/docs/products/services/managed/guides/_index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for the Linode Managed Service" -description: "A collection of guides to help you learn how to sign up for Linode Managed, add new services, disable service monitoring, and more." -published: 2023-04-11 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Getting Started](/docs/products/services/managed/get-started/): Enable Managed Services and start configuring monitors. - -- [Create and Manage Service Monitors](/docs/products/services/managed/guides/service-monitors/): Service monitors form the basis of Managed Service's monitoring and incident response. Use them to monitor a resource and notify both your team and the Support team in the event of a failure. - -- [Configure SSH Access](/docs/products/services/managed/guides/ssh-access/): Instructions on viewing your unique public key, adding it to your system, and editing the settings that the Support team uses to log in. - -- [Manage Credentials](/docs/products/services/managed/guides/credentials/): Credentials provide the Support team with log in details to any services they may need to access when troubleshooting an issue. - -- [Manage Contacts](/docs/products/services/managed/guides/contacts/): Contact groups, which contain one or more contacts, can be attached to a service monitor and are notified if a check fails. - -- [Configure Firewall Rules to Allow Access from Linode Infrastructure](/docs/products/services/managed/guides/allow-access-from-linode-infrastructure/): Learn which hostnames and IP addresses are used by Managed Services so that you can allow them within your firewall rules. - -- [Cancel Managed Services](/docs/products/services/managed/guides/cancel/): Learn how to cancel Linode's Managed Services offering. \ No newline at end of file diff --git a/docs/products/services/managed/guides/allow-access-from-linode-infrastructure/index.md b/docs/products/services/managed/guides/allow-access-from-linode-infrastructure/index.md deleted file mode 100644 index 09a173a3df6..00000000000 --- a/docs/products/services/managed/guides/allow-access-from-linode-infrastructure/index.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Configure Firewall Rules to Allow Access from Linode Infrastructure (for Managed Services Customers) -title_meta: Configure Firewall Rules to Allow Access from Linode Infrastructure -description: "Learn how to configure your firewall rules so that the Managed Service's team of experts are able to access your Compute Instances and troubleshoot issues." -published: 2023-04-11 -linkTitle: Configure Firewall Rules ---- - -As a Managed Services customer, you may need to add or modify your firewall rules to allow access from our infrastructure. When done alongside [configuring SSH access for Managed Services](/docs/products/services/managed/guides/ssh-access/), this enables the Support team to log in to your system and troubleshoot issues. It also enables our infrastructure to perform the checks configured on your monitors. The exact procedure varies based on the firewall software in use. See the following guides for help configuring firewalls: - -- Linode Cloud Firewall: [Manage Cloud Firewall Rules](/docs/products/networking/cloud-firewall/guides/manage-firewall-rules/) -- UFW: [How to Configure a Firewall with UFW](/docs/guides/configure-firewall-with-ufw/) -- FirewallD: [Introduction to FirewallD on CentOS](/docs/guides/introduction-to-firewalld-on-centos/) -- iptables: [Controlling Network Traffic with iptables - A Tutorial](/docs/guides/control-network-traffic-with-iptables/) - -### Incident Response Infrastructure - -Allow the following hostnames and IP addresses so that our incident response team can access your server. - -```command -blackbox1-dallas.linode.com 50.116.31.27 -blackbox1-newark.linode.com 66.175.214.213 -``` - -### Monitor Infrastructure - -Allow the following hostnames and IP addresses so that our infrastructure can perform the checks configured on your monitors. - -- **Atlanta:** - - ```command - monitor1-atlanta.linode.com 2600:3c02::f03c:91ff:feae:8540 66.228.57.137 - monitor2-atlanta.linode.com 2600:3c02::f03c:91ff:feae:69d5 50.116.38.168 - ``` - -- **Dallas:** - - ```command - monitor1-dallas.linode.com 2600:3c00::f03c:91ff:feae:8351 50.116.25.212 - monitor2-dallas.linode.com 2600:3c00::f03c:91ff:feae:47d9 198.58.98.236 - ``` - -- **Frankfurt:** - - ```command - monitor1-frankfurt.linode.com 2a01:7e01::f03c:91ff:fe26:e120 139.162.128.25 - monitor2-frankfurt.linode.com 2a01:7e01::f03c:91ff:fe26:8a6a 139.162.128.26 - ``` - -- **Fremont:** - - ```command - monitor1-fremont.linode.com 2600:3c01::f03c:91ff:feae:85e2 50.116.11.198 - monitor2-fremont.linode.com 2600:3c01::f03c:91ff:feae:47d3 66.175.221.50 - ``` - -- **London:** - - ```command - monitor1-london.linode.com 2a01:7e00::f03c:91ff:feae:6965 176.58.113.114 - monitor2-london.linode.com 2a01:7e00::f03c:91ff:feae:6924 178.79.189.96 - ``` - -- **Mumbai:** - - ```command - monitor1-mum1.linode.com 2400:8904::f03c:91ff:fe5d:25b5 172.105.41.4 - monitor2-mum1.linode.com 2400:8904::f03c:91ff:fe5d:2595 172.105.42.4 - ``` - -- **Newark:** - - ```command - monitor1-newark.linode.com 2600:3c03::f03c:91ff:feae:832c 198.74.56.5 - monitor2-newark.linode.com 2600:3c03::f03c:91ff:feae:4766 198.74.59.104 - ``` - -- **Singapore:** - - ```command - monitor1-singapore.linode.com 2400:8901::f03c:91ff:fe33:54f2 103.3.60.25 - monitor2-singapore.linode.com 2400:8901::f03c:91ff:fe33:5401 103.3.60.26 - ``` - -- **Sydney:** - - ```command - monitor1-syd1.linode.com 2400:8907::f03c:92ff:fe67:b794 172.105.176.9 - monitor2-syd1.linode.com 2400:8907::f03c:92ff:fe67:b74f 172.105.162.10 - ``` - -- **Tokyo:** - - ```command - monitor1-shg1.linode.com 2400:8902::f03c:91ff:fe2c:ff57 139.162.65.25 - monitor2-shg1.linode.com 2400:8902::f03c:91ff:fe2c:6eda 139.162.65.26 - ``` - -- **Toronto:** - - ```command - monitor1-tor1.linode.com 2600:3c04::f03c:91ff:fe82:1151 172.105.0.13 - monitor2-tor1.linode.com 2600:3c04::f03c:91ff:fe82:de74 172.105.14.4 - ``` \ No newline at end of file diff --git a/docs/products/services/managed/guides/cancel/index.md b/docs/products/services/managed/guides/cancel/index.md deleted file mode 100644 index 2a793dd4429..00000000000 --- a/docs/products/services/managed/guides/cancel/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Cancel Managed Services -description: "Learn how to cancel Managed Services on your account." -published: 2023-04-11 ---- - -If you no longer need Linode's Managed Services offering, you can cancel it by [contacting the Support team](https://www.linode.com/support/). This removes all service monitors and any other data (such as saved credentials and contacts) that is stored as part of Managed Services. In addition to this, the following services are also affected: - -- **Backup Service:** By default, the Backup service for each Compute Instance remains active. This means that all of your backups are retained and that you will be billed for this service going forward. If desired, you can make a note in your request to cancel Managed Services that you also wish to remove all Backup services. Otherwise, you can remove backups for individual Compute Instances by following the [Cancel Backups](/docs/products/storage/backups/guides/cancel/) guide. - -- **Longview Pro:** If any Longview Pro clients have been configured, the Longview Pro service remains on your account as a paid service. Your Longview clients will continue to work as expected. If desired, you can make a note in your request to cancel Managed Services that you also wish to cancel Longview Pro. If you do so, your Longview clients will be migrated to the free plan (which supports up to 10 clients). See [Longview Pricing and Plans](/docs/products/tools/longview/). - -- **cPanel:** When the service is cancelled, any cPanel licenses acquired through Managed Services are also revoked. If you still wish to use cPanel, you can purchase licenses directly through the [cPanel website](https://cpanel.net/pricing/). - -{{< note >}} -There is not currently a self-service option for cancelling Managed Services in Cloud Manager, Linode CLI, or Linode API. You will need to contact the Support team to do so. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/services/managed/guides/contacts/index.md b/docs/products/services/managed/guides/contacts/index.md deleted file mode 100644 index 4e65c81ae04..00000000000 --- a/docs/products/services/managed/guides/contacts/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Manage Contacts for Managed Services -description: "Learn how to add contacts and contact groups to Linode Managed Services." -published: 2023-04-11 -linkTitle: Manage Contacts ---- - -Service Monitors can be configured to email your team members in the event of an issue with your system. Team member contact information is stored as a *Contact* in Managed Services. Each Service Monitor can be attached to a *Contact Group*, each of which can contain one or more individual *Contacts*. Separate groups can be created for each different system or service. - -For example, you might add all of your database administrators to a group named *DBAs* and then link that group to a Service Monitor monitoring the state of your MySQL server. When an issue is detected, all of your database administrators are notified at the same time. - -You can optionally attach up to two phone numbers to your contacts, a primary number and a secondary number. These are used by our Support team to call a point of contact on your side to obtain more information when troubleshooting an issue. - -## Add or Edit a Contact - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Managed** link in the sidebar. - -1. Navigate to the **Contacts** tab. Click on the **Add a Contact** link to add a new contact. If you wish to edit an existing contact instead, locate that contact in the list and click the corresponding **Edit** button. - - ![Screenshot of the Managed Services Contacts page in Cloud Manager](managed-contacts.png) - -1. In the form that appears, enter the details for this contact. - - - **Name** (required): The name of the contact. This is likely the first and last name of the associated person. - - - **Email** (required): The email address to use for this contact. This email is sent an email notification if any attached Service Monitor detects an issue. - - - **Primary Phone** and **Secondary Phone**: The first and second phone number that the Support team should call if more information is needed during an investigation. - - - **Group:** The name of the group that this contact belongs to. Select an existing group from the dropdown menu or type in a name to create a new group. - - {{< note >}} - A Managed service can only be linked to a contact group and not to individual contacts, so you should create at least one group, even if it only contains one contact. - {{< /note >}} - -1. Once the contact details have been entered, click the **Add Contact** or **Save Contact** button to save the changes. - -## Attach a Contact Group to a Service Monitor - -A contact group needs to be assigned to a Service Monitor so that members of that group can be alerted when an issue is detected. To do this, follow the instructions for editing a service monitor and select the desired group under the **Contact Group** field. See [Edit a Service Monitor](/docs/products/services/managed/guides/service-monitors/#edit-a-service-monitor). \ No newline at end of file diff --git a/docs/products/services/managed/guides/contacts/managed-add-contact.png b/docs/products/services/managed/guides/contacts/managed-add-contact.png deleted file mode 100644 index 2ec22bef98d..00000000000 Binary files a/docs/products/services/managed/guides/contacts/managed-add-contact.png and /dev/null differ diff --git a/docs/products/services/managed/guides/contacts/managed-contacts.png b/docs/products/services/managed/guides/contacts/managed-contacts.png deleted file mode 100644 index 40ee4bc7df3..00000000000 Binary files a/docs/products/services/managed/guides/contacts/managed-contacts.png and /dev/null differ diff --git a/docs/products/services/managed/guides/credentials/index.md b/docs/products/services/managed/guides/credentials/index.md deleted file mode 100644 index 77fa8fc5c76..00000000000 --- a/docs/products/services/managed/guides/credentials/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Configure Credentials for Managed Services -description: "Learn how to view, add, and edit credentials that the Support team can use when investigating an issue related to Linode Managed Services." -published: 2023-04-11 -linkTitle: Configure Credentials ---- - -Many of the applications running on your servers can only be accessed with the appropriate username and password combination. To provide Linode's staff with access to those applications, you should upload *credentials* for them to the Linode Cloud Manager. Once uploaded, you can also link credentials to specific Managed services to communicate which ones Linode Support should use when troubleshooting the service. - -{{< note >}} -All credentials are securely stored in our encrypted database. -{{< /note >}} - -## View Credentials - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Managed** link in the sidebar. - -1. Navigate to the **Credentials** tab. A list of all your current credentials is displayed. From here, you can add new credentials or edit existing credentials. - - ![Screenshot of credentials for Managed Services in Cloud Manager](managed-credentials.png) - - Alongside each credential is a *Last Decrypted* field. This displays the timestamp for when the credential was last decrypted by our Support team. - -## Add a Credential - -1. Navigate to the **Credentials** tab for Managed Services in Cloud Manager. See [View Credentials](#view-credentials). - -1. Click the **Add Credentials** button. - -1. In the form that appears, enter the details for your credential. The following fields are available: - - - **Label** (required): A descriptive name for the credential that explains to the Linode Support Team how the credential should be used. For example, if you are entering the MySQL `root` password, you might label it as `MySQL Root`. - - - **Username:** The username to supply when authenticating with the application. - - - **Password** (required): The password or passphrase to supply when authenticating with the application. - -1. Once the form is complete, click the **Add Credential** button. - -## Edit a Credential - -1. Navigate to the **Credentials** tab for Managed Services in Cloud Manager. See [View Credentials](#view-credentials). - -1. Locate the credential you wish to edit and click the corresponding **Edit** button. - -1. To update the label, enter the new label and click the **Update Label** button. - -1. To modify the credentials, enter the new username or password and click the **Update Credentials** button. \ No newline at end of file diff --git a/docs/products/services/managed/guides/credentials/managed-credentials.png b/docs/products/services/managed/guides/credentials/managed-credentials.png deleted file mode 100644 index c059ba3796c..00000000000 Binary files a/docs/products/services/managed/guides/credentials/managed-credentials.png and /dev/null differ diff --git a/docs/products/services/managed/guides/service-monitors/index.md b/docs/products/services/managed/guides/service-monitors/index.md deleted file mode 100644 index 754a3580e59..00000000000 --- a/docs/products/services/managed/guides/service-monitors/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Create and Edit Service Monitors for Managed Services -description: "Learn how to view, edit, and remove Service Monitors, which are used to monitor services on Compute Instances." -published: 2023-04-11 -linkTitle: Manage Service Monitors -aliases: ['/products/services/managed/guides/add-services/','/products/services/managed/guides/disable-a-service-monitor/','/products/services/managed/guides/reenable-a-service-monitor/','/products/services/managed/guides/remove-services/'] ---- - -Managed Services monitors the *services* running on your Compute Instances. Setting up services is an essential step in the configuration process. - -## View Service Monitors - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Managed** link in the sidebar. - -1. Navigate to the **Monitors** tab. A list of all your current monitors is displayed. From here, you can add new monitors or edit existing ones. - - ![Screenshot of the Monitors tab under Managed Services in Cloud Manager](managed-monitors-list.png) - - Each monitor is listed along side its status and the resource it is checking. - -## Configuration Options - -Each monitor can be configured with the following settings, which are available when creating a new service monitor or editing an existing monitor. - -- **Monitor Label** (required): A label for the service that's being monitored. If an issue arises, a clear and descriptive label helps the Support team quickly identify the service that may need troubleshooting. - -- **Contact Group:** Select a contact group, which contains one or more contacts on your team. This is the group that is notified of any failed checks. It is also the group that the Support team may contact if more information is needed when investigating an issue with the service. To add or modify contacts, see [Manage Contacts](/docs/products/services/managed/guides/contacts/). - -- **Monitor Type** (required): Select **URL** to monitor a website or **TCP Connection** to monitor any other service running on your Compute Instance. - -- **Response Timeout** (required): The time (in seconds) for a montitor's requests to timeout if a response is not received. - -- **URL** (required): If you selected **URL** for the **Monitor Type** field, enter a URL for a web page that you'd like to monitor. If you selected **TCP Connection**, enter the domain or IP address and, optionally, a port number (separated by a colon) in the **TCP** field. - -- **Response Body Match:** A string that should appear in the HTTP or TCP response body. If not present, then an alert is generated for the service. - -- **Instructions / Notes:** Any notes or additional information about this service. This information is used by the Support team to learn more about the service, it's configuration, and the way it should respond to failed checks. - -- **Credentials:** Any credentials that may need to be used to troubleshoot the service. You can select and save more than one credential for a service. To add or modify credentials, see [Manage Credentials](/docs/products/services/managed/guides/credentials/). - -## Add a Service Monitor - -1. Navigate to the **Monitors** tab for Managed Services in Cloud Manager. See [View Service Monitors](#view-service-monitors). - -1. Click the **Add Monitor** button. - -1. In the form that appears, enter your desired settings. For an explanation of each field, see [Configuration Options](#configuration-options). - -1. Once you're ready, click the **Add Monitor** button to create the new service monitor. - -## Edit a Service Monitor - -1. Navigate to the **Monitors** tab for Managed Services in Cloud Manager. See [View Service Monitors](#view-service-monitors). - -1. Locate the service monitor you wish to modify and click the corresponding **Edit** button. - -1. The form that appears is similar to the *Add Monitor* form. Modify any field that you wish and click the **Save Changes** button once you are finished. - -## Enable or Disable a Service Monitor - -When a service monitor is created, it is automatically enabled. However, you may need to temporarily disable the monitor. For instance, when you are performing maintenance on the monitored resource or on the entire Compute Instance, you likely do not want the service monitor performing checks as it will alert your team (and the Support team) when the check fails. In this event, follow the instructions below to disable the monitor and then re-enable it once the maintenance is complete. - -1. Navigate to the **Monitors** tab for Managed Services in Cloud Manager. See [View Service Monitors](#view-service-monitors). - -1. Locate the service monitor you wish to modify and click the corresponding **Enable** or **Disable** button. This button may be within the expandable **more options ellipsis menu**. - -1. Once the change takes effect, the new status should appear under the **Status** column of the service monitor. - -## Remove a Service Monitor - -If you decide to remove or stop using a monitored service on your Compute Instance, you should also remove the service monitor from your account. If you do not, you will continue to receive notifications when the service fails to contact the specified resource. - -1. Navigate to the **Monitors** tab for Managed Services in Cloud Manager. See [View Service Monitors](#view-service-monitors). - -1. Locate the service monitor you wish to modify and click the corresponding **Delete** button. This button may be within the expandable **more options ellipsis menu**. - -1. A confirmation dialog appears. Follow the instructions and click the **Delete Monitor** button to remove the monitor from your account. \ No newline at end of file diff --git a/docs/products/services/managed/guides/service-monitors/managed-monitors-list.png b/docs/products/services/managed/guides/service-monitors/managed-monitors-list.png deleted file mode 100644 index c0d42e09a2e..00000000000 Binary files a/docs/products/services/managed/guides/service-monitors/managed-monitors-list.png and /dev/null differ diff --git a/docs/products/services/managed/guides/ssh-access/index.md b/docs/products/services/managed/guides/ssh-access/index.md deleted file mode 100644 index 2fb55c8a9d3..00000000000 --- a/docs/products/services/managed/guides/ssh-access/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Configure SSH Access for Managed Services -description: "Learn how to configure SSH so that our team can access your system when troubleshooting." -published: 2023-04-11 -linkTitle: Configure SSH Access ---- - -To troubleshoot an issue with a failed monitor check, the Support Team needs access to your system. This access can be provided by using the unique public key generated for your account. You can upload this key to any system user and then configure the SSH access settings for each Compute Instance so that our team is aware of how they should log in. To start using your public key, follow the steps below *for each Compute Instance* on your account. - -1. View your account's public key. -1. Install the public key on your preferred system user. -1. Edit the SSH access settings for the Compute Instance. - -{{< note >}} -If you do not wish to use this public key, you can also configure credentials in the form of usernames and passwords. See the [Configure Credentials]() guide. -{{< /note >}} - -## View Your Public Key - -Linode generates a unique public/private keypair for your account when Managed Services is enabled. The public key is accessible on your account so that you can add it to each Compute Instance. The private key is then used by the Support Team to access your system whenever an issue requires investigation. You can locate your public key through the following steps: - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Managed** link in the sidebar. - -1. Navigate to the **SSH Access** tab. Your public key is displayed at the top of this tab. - - ![A screenshot of an account's public key in Cloud Manager](managed-public-key.png) - -1. Hover over the public key box to view the full public key. To copy it, click the **Copy to clipboard** button. - -## Add the Public Key to Your Compute Instance(s) - -Installing the public SSH key for the `root` user is the easiest way to add Linode's public key to your server. However, if your server's SSH configuration doesn't allow [root login](/docs/products/compute/compute-instances/guides/set-up-and-secure/#ssh-daemon-options), you may want to skip to the next section to add the public key to another user's account. - -1. Log in to your Compute Instance through [LISH](/docs/products/compute/compute-instances/guides/lish/) or [SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance). - -1. Edit the SSH authorized keys file for whichever user account you want the Support Team to use when logging in. - - - For the root user: - - ```command - sudo nano /root/.ssh/authorized_keys - ``` - - {{< note title="Note for using the root user" isCollapsible=true >}} - If you followed the instructions in the [Securing Your Server](/docs/products/compute/compute-instances/guides/set-up-and-secure/) guide to disable root login via SSH, you need to re-enable that feature. Follow the relevant instructions within the [Set Up and Secure](/docs/products/compute/compute-instances/guides/set-up-and-secure/#ssh-daemon-options) guide to edit the `sshd_config` file and re-enable root login via SSH. - {{< /note >}} - - - For a limited user (editing the home directory as needed): - - ```command - sudo nano /home/example_user/.ssh/authorized_keys - ``` - - {{< note title="Note for using a limited user" isCollapsible=true >}} - In general, [sudo privileges](/docs/guides/linux-users-and-groups/#understanding-the-sudo-linux-group-and-user) are needed to run many of the troubleshooting commands our Support Team might use. Whenever possible, you should grant the limited user sudo privileges. The [Adding a New User](/docs/products/compute/compute-instances/guides/set-up-and-secure/#add-a-limited-user-account) guide shows how to add your user to the `sudo` group (or `wheel` or `admin` group, depending on your distribution). - - After adding the limited user account to the sudo group, you need to either provide the user's password to the Support Team (see [Add Credentials](#adding-service-credentials)) or enable passwordless sudo by following the instructions below. - - 1. Edit the `sudoers` file. The following command opens the file using the [Vim](https://en.wikipedia.org/wiki/Vim_(text_editor)) text editor. - - ```command - sudo visudo - ``` - - 1. Type `i` to enter *insert mode* in Vim. - - 1. In the *User privilege specification* section of the file, add the following line, replacing `example_user` with your user name: - - ```output - example_user ALL=(ALL) NOPASSWD: ALL - ``` - - 1. Press **Esc** to exit *insert mode*. - - 1. Make sure this user is not in any other groups listed in `/etc/sudoers`, as this may override the passwordless sudo setting. - - 1. Type `:wq` and press **Enter** to save and quit the file. - {{< /note >}} - - If the `.ssh` directory does not exist for your user or the root user, you can create it with the following command, replacing *[directory]* with `/home/example_user/.ssh/` or `/root/.ssh/`, adjusting the path as needed for your user. - - ```command - mkdir [directory] - ``` - -1. Paste your public key to a new line in the file. - -1. Save the changes to the file and exit your text editor. In the `nano` editor, enter Ctrl-X and then Y to confirm. - -Once you've added the public key to your preferred user, you may need to allow access from our infrastructure (see [Configuring Firewall Rules](#configuring-firewall-rules)). If you wish to confirm that everything is properly configured, [open a support ticket](/docs/products/platform/get-started/guides/support/#contact-customer-support) to have the Support team confirm that they have access. Repeat this process on every Compute Instance you want to monitor. - -## Edit SSH Access Settings for Each Compute Instance - -After adding your public key to each Compute Instance you want to monitor, make sure to edit the SSH access settings for those instances (and any other instance on your account). These settings are used by the Support team so that they know if SSH access has been enabled and, if so, on which user and port. The following settings can be specified: - -- **SSH Access:** Specifies if SSH access is enabled for the instance (default: *Enabled*). -- **User:** The user account that the Support team should use (default: *root*). -- **IP:** The IP address that the support team should use (default: *Any*). This is only needed if your Compute Instance has multiple IP addresses and only certain ones allow SSH connections. -- **Port:** The SSH port on the system (default: *22*). Only change this if your system is using a non-standard port for SSH connections. - -{{< note >}} -Modifying these SSH access settings for a Compute Instance **does not change** anything internally on your system. These settings are only used to communicate access details to the Support team. -{{< /note >}} - -Follow the steps below to edit the SSH access settings for each Compute Instance. - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Managed** link in the sidebar. - -1. Navigate to the **SSH Access** tab and scroll down to view a list of Compute Instances on your account. - -1. Locate the Compute Instance for which you wish to modify the SSH settings and click the corresponding **Edit** button. - - ![Screenshot of SSH Access settings for each Compute Instance](managed-ssh-access-list.png) - - If you instead with to enable or disable access, click the corresponding **Enable** or **Disable** button. - -1. Update the SSH access details with the appropriate values for your system. Once you're done, click the **Save Changes** button. \ No newline at end of file diff --git a/docs/products/services/managed/guides/ssh-access/managed-public-key.png b/docs/products/services/managed/guides/ssh-access/managed-public-key.png deleted file mode 100644 index e4dba079fc4..00000000000 Binary files a/docs/products/services/managed/guides/ssh-access/managed-public-key.png and /dev/null differ diff --git a/docs/products/services/managed/guides/ssh-access/managed-ssh-access-list.png b/docs/products/services/managed/guides/ssh-access/managed-ssh-access-list.png deleted file mode 100644 index 7d20a6876b8..00000000000 Binary files a/docs/products/services/managed/guides/ssh-access/managed-ssh-access-list.png and /dev/null differ diff --git a/docs/products/services/managed/resources/index.md b/docs/products/services/managed/resources/index.md deleted file mode 100644 index 6290966ed2d..00000000000 --- a/docs/products/services/managed/resources/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Resources -title_meta: "Resources for the Linode Managed Service" -description: "Resources and other information related to the Linode Managed Service including blog posts, community posts, customer stories, and press releases." -published: 2023-04-04 -tab_group_main: - weight: 40 ---- - -## Blog Posts - -- [Linode Managed is even better than before!](https://www.linode.com/blog/linode/linode-managed-is-even-better-than-before/) - -- [Introducing Linode Managed](https://www.linode.com/blog/linode/introducing-linode-managed/) - -## Community Posts - -- [Linode Managed Beta](https://www.linode.com/community/questions/8299/linode-managed-beta) - -- [Does Linode offer Managed Services](https://www.linode.com/community/questions/341/does-linode-offer-managed-services) - -- [What is Linode Managed?](https://www.linode.com/community/questions/17902/what-is-linode-managed) - -- [Does Linode Managed include system updates?](https://www.linode.com/community/questions/18607/does-linode-managed-include-system-updates) - -- [Can I chose which Linodes have Managed Services?](https://www.linode.com/community/questions/18607/does-linode-managed-include-system-updates) - -- [Need to edit Managed monitor](https://www.linode.com/community/questions/19514/need-to-edit-managed-monitor) - -- [Linode Managed and CloudFlare](https://www.linode.com/community/questions/19998/linode-managed-and-cloudflare) - -- [How do I access cPanel](https://www.linode.com/community/questions/19072/how-do-i-access-cpanel-one-click-app) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=managed). - -## Customer Stories - -- [Craft of Code Savvii](https://www.linode.com/spotlight/savvii/) - -## eBooks - -- [2020 Trends in Managed Services & Hosting](https://www.linode.com/content/2020-trends-in-managed-services-and-hosting/) - -- [An Introduction to High-Availability Design for WordPress](https://www.linode.com/content/an-introduction-to-high-availability-design-for-wordpress/) - -## Press Releases - -- [Linode Celebrates 12th Birthday by Adopting KVM & Boosting Cloud Server Performance by 300%](https://www.linode.com/press-release/linode-celebrates-12th-birthday-by-adopting-kvm-and-boosting-cloud-server-performance-by-300/) \ No newline at end of file diff --git a/docs/products/storage/_index.md b/docs/products/storage/_index.md deleted file mode 100644 index 3ba60aba988..00000000000 --- a/docs/products/storage/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Storage -title_meta: Storage Products and Services -description: "Linode offers dependable, easily-accessible storage and management." ---- diff --git a/docs/products/storage/backups/_index.md b/docs/products/storage/backups/_index.md deleted file mode 100644 index e3bedb28703..00000000000 --- a/docs/products/storage/backups/_index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Backups -title_meta: "Linode Backup Service Product Documentation" -description: "Linode Backup service is a fully managed and easy to use backup service that's fully integrated into the Linode Platform." -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "Fully managed automatic daily, weekly, and biweekly backups of your Linode Compute Instances." -toc: true -aliases: ['/security/backups/linode-backup-service/','/platform/disk-images/linode-backup-service-classic-manager/','/platform/backup-service/','/platform/linode-backup-service/','/platform/disk-images/linode-backup-service/','/platform/disk-images/linode-backup-service-new-manager/','/backup-service/','/guides/linode-backup-service/'] ---- - -Safeguard your data with Linode's Backups service, enabling automatic backups of the disks on your Compute Instances. Up to four backups are stored as part of this service, including automated daily, weekly, and biweekly backups in addition to a manual backup snapshot. Each backup is a full file-based snapshot of your disks taken during your preferred scheduled time slot while the Linode Compute Instance is still running. This means that the Backups service is not disruptive and provides you with several complete recovery options. - -## Fully Managed - -Linode Backups is a managed service that automatically backs up your Linode disks at regular intervals. Use full-system backups to guard against accidental deletions or misconfigurations. - -## Convenient & Configurable - -Enable the Backup Service with a single click. It activates instantly, and your first backups are automatically scheduled. There is no software to install or configure. You can choose when your Linode backups are generated. Select a two-hour window that suits you. - -## Availability - -Backups are available across [all regions](https://www.linode.com/global-infrastructure/). - -## Plans and Pricing - -The Backup service is available as a paid add-on for Compute Instances. Pricing starts at $2/month for a 1 GB Shared CPU Compute Instance. Review the [Pricing page](https://www.linode.com/pricing/#row--storage) for additional rates based on other Compute Instance plans. - -On all plans, the Backup service can store up to four backups, three of which are automatically generated on the date and time range you specify: - -- **Daily** *(Less than 24 hours old)* -- **Weekly** *(Less than 7 days old)* -- **Biweekly** *(Between 8 and 14 days old)* -- **Manual Snapshot** *(A user-initiated snapshot that stays the same until another snapshot is initiated)* - -The Backup service does not keep automated backups older than 14 days, though there are no restrictions on the age of a manual snapshot. - -## Additional Technical Specifications - -- Compatible with all Linode Compute Instances, provided their disks contain unencrypted ext3 or ext4 file systems -- File-based backup solution, meaning it operates at the file level and not the block level -- Backups are stored on separate dedicated hardware within the same data center -- Can be managed through [Cloud Manager](https://cloud.linode.com/), the [Linode CLI](https://www.linode.com/products/cli/), or programmatically through the [Linode API](https://www.linode.com/products/linode-api/) - -## Part of a Multi-Tiered Backup Strategy - -Linode's Backup service is one part of a well rounded backup strategy. On-site backups provide a quick and convenient recovery option. While the backups are stored on different hardware, that hardware is located within the same data center as the Compute Instance. It's also recommended to regularly backup your data off-site, such as on a local machine or using a third-party cloud-based service. - -## Limits and Considerations - -- **Disks are backed up, but not Linode-specific settings such as those stored within Configuration Profiles.** - -- **Disks must be unencrypted and able to be mounted.** The Backup service is not compatible with full disk encryption or changes that prevent us from mounting the disk as a file system, such as creating partitions. This is because our service operates at the file level, not at the block level. Also, the disk must be formatted and an EXT3 or EXT4 file system should be assigned to it. - -- All disks will be restored as an ext4 file system and their UUIDs will be different than the original disks. - -- **A large number of files will prolong the backup process and may cause failures.** Because the Backup Service is file-based, the number of files stored on disk impacts both the time it takes for backups and restores to complete, and your ability to successfully take and restore backups. Customers who need to permanently store a large number of files may want to archive bundles of smaller files into a single file, or consider other backup services. - - {{< note >}} - The percentage of customers who may run into this limitation is low. If you are not sure if this limitation applies to you, please [contact Linode Support](/docs/products/platform/get-started/guides/support/#contact-customer-support). - {{< /note >}} - -- Files that have been modified but have the same size and modify time are not be considered "changed" during a subsequent backup. ACLs and extended attributes are *not* tracked. - -- The Backup Service uses a snapshot of your disks to take consistent backups while your Linode is running. This method is very reliable, but can fail to properly back up the data files for database services like MySQL. If the snapshot occurs during a transaction, the database's files may be backed up in an unclean state. We recommend scheduling routine dumps of your database to a file on the filesystem. The resulting file is then included in the daily backup, allowing you to restore the contents of the database if you need to restore from a backup. - -- **Volumes attached to a Compute Instance are not backed up as part of the Backup service**. \ No newline at end of file diff --git a/docs/products/storage/backups/developers/index.md b/docs/products/storage/backups/developers/index.md deleted file mode 100644 index 8999f2b95e1..00000000000 --- a/docs/products/storage/backups/developers/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for the Linode Backup Service" -description: "The Linode Backup Service is managed easily with developer tools like the Linode API or CLI." -published: 2021-11-12 -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [List Backups](/docs/api/linode-instances/#backups-list) - -- [Create Snapshot](/docs/api/linode-instances/#snapshot-create) - -- [Cancel Backups](/docs/api/linode-instances/#backups-cancel) - -- [Enable Backups](/docs/api/linode-instances/#backups-enable) - -- [View Backup](/docs/api/linode-instances/#backup-view) - -- [Restore Backup](/docs/api/linode-instances/#backup-restore) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. diff --git a/docs/products/storage/backups/faqs/_index.md b/docs/products/storage/backups/faqs/_index.md deleted file mode 100644 index 37b40e128c8..00000000000 --- a/docs/products/storage/backups/faqs/_index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "FAQs" -title_meta: "FAQs for the Backup Service" -description: "Find quick answers to some of the most commonly asked questions for Linode's Backup Service." -published: 2023-07-07 -tab_group_main: - weight: 60 ---- - -## Can I create more than one manual backup? - -The Backup service allows for one manual snapshot in addition to the three automatically generated scheduled backups. There are no additional manual snapshot slots available. If you have an existing snapshot and you attempt to create a new one, the new snapshot will replace the old one. - -If you require additional manual backups of your data, consider using [alternative methods of backing up your data](/docs/guides/backing-up-your-data/) or use our Images service to [capture an image](/docs/products/tools/images/guides/capture-an-image/) of your Compute Instance's disk. - -## Can I use the Backup service to backup Block Storage Volumes? - -No, the Backup service does not take backups of Block Storage volumes, even if a volume is attached to a Compute Instance. If you wish to create a backup of your volume, consider cloning your volume or using [alternative methods of backing up your data](/docs/guides/backing-up-your-data/). Cloning a volume creates a new Block Storage volume of the same size and copies over all existing data. To clone your volume, navigate to the Volumes page in Cloud Manager, open the ellipsis menu of the corresponding Volume you wish to clone, and select the **Clone** link. - -![Screenshot of the Clone link for a Block Storage volume](clone-volume.png) - -## Where are backups physically stored? - -Backups created by the Backup service are stored on separate dedicated hardware located in the same data center as the associated Compute Instance. This means that existing backups are not affected by isolated incidents with the Compute Instance or the underlying hardware of that instance. - -## How do I download a backup to my local computer? - -Existing backups are not able to be downloaded directly, though you can restore a backup to a Compute Instance and download any files or disks you require. - -- If you need a local backup of your Compute Instance as it exists in that moment, you do not need to restore from a backup. Instead, you can use tools like [rsync](/docs/guides/backing-up-your-data/#manual-backup-via-rsync), FTP, and SCP to download files directly from your instance. For more details, see [Download Files from Your Compute Instance](/docs/guides/download-files-from-a-compute-instance/). - -- If you wish to download files as they were on a previous backup, you can restore that backup to a Compute Instance and then access that instance to download files. For instructions, see [Download a Local Copy of your Linode Backup](/docs/products/storage/backups/guides/download-backups-locally/). - -## Is the Backup service compatible with an encrypted or partitioned disk? - -No. Our Backup service must be able to mount your disk. This is not currently possible if your disk is encrypted or if it has multiple partitions. See [Limits and Considerations](/docs/products/storage/backups/#limits-and-considerations) for more details about this and other requirements. - -## Why does it take such a long time to create a backup or restore from a backup? - -In many cases, slow backup operations (including creating a new backup and restoring from a backup) are due to a large number of files stored on your Compute Instance. The more files on your system, the longer it takes to perform backup operations and the greater the chance for a backup failure. - -If your system generates a large number of files (such as log files), consider configuring your system to automatically archive (or delete) these files. Alternatively, you can also store these files on a disk that is *not* subscribed to our Backup service or store them on a [Block Storage](https://www.linode.com/products/block-storage/) volume. If any of these solutions do not work for you, review the [Backing Up Your Data](/docs/guides/backing-up-your-data/) guide for to learn about other backup tools and strategies. - -## What do I do if my backup restoration fails? - -When restoring a backup to a Compute Instance, you may see a message that your backup restoration has failed. If you receive this message, we first recommend that you attempt to boot that Compute Instance. It's possible that only a small number of files failed to be properly restored (such as socket files and other temporary files). In this case, it's likely that your Compute Instance will still successfully boot and contain all of the data you required. If booting the instance does not work, review the [Troubleshooting Backups](/docs/products/storage/backups/guides/troubleshooting/) guide. - -## Why do I keep receiving "Backup Failure" tickets? - -This ticket is to alert you when our Backup service isn't able to successfully backup one of your Compute Instances. These issues are often resolved automatically and, in many cases, no action is required on your end. If you have received more than one of these tickets in a short period of time, we recommend reviewing the [Troubleshooting Backups](/docs/products/storage/backups/guides/troubleshooting/) guide so that you can diagnose the issue yourself or replying to one of the tickets so that our Support team can investigate further. \ No newline at end of file diff --git a/docs/products/storage/backups/faqs/clone-volume.png b/docs/products/storage/backups/faqs/clone-volume.png deleted file mode 100644 index f4b2045ba89..00000000000 Binary files a/docs/products/storage/backups/faqs/clone-volume.png and /dev/null differ diff --git a/docs/products/storage/backups/faqs/tab.svg b/docs/products/storage/backups/faqs/tab.svg deleted file mode 100644 index 24b2df1f82a..00000000000 --- a/docs/products/storage/backups/faqs/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/storage/backups/feature.png b/docs/products/storage/backups/feature.png deleted file mode 100644 index e40f05efd0c..00000000000 Binary files a/docs/products/storage/backups/feature.png and /dev/null differ diff --git a/docs/products/storage/backups/feature.svg b/docs/products/storage/backups/feature.svg deleted file mode 100644 index 81fb9a534b1..00000000000 --- a/docs/products/storage/backups/feature.svg +++ /dev/null @@ -1,8 +0,0 @@ - - Backups - - - - - - \ No newline at end of file diff --git a/docs/products/storage/backups/get-started/index.md b/docs/products/storage/backups/get-started/index.md deleted file mode 100644 index d78df239ffb..00000000000 --- a/docs/products/storage/backups/get-started/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Get Started" -title_meta: "Getting Started with the Linode Backup Service" -description: "Get Started with the Linode Backup Service. Learn how to enable the Backup Service and manage your backups." -published: 2021-11-12 -tab_group_main: - weight: 20 -aliases: ['/products/storage/backups/guides/manage/'] ---- - -## Enabling the Backup Service - -The Backup service can be enabled on existing Compute Instances by following the instructions below: - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. From the **Linodes** page, select the Linode you want to back up. - -1. Click the **Backups** tab. - -1. Click **Enable Backups**. - -For further instructions, including details on enabling the Backup service for new Linodes, see [Enable Backups](/docs/products/storage/backups/guides/enable/). - -## Managing Backups - -Once enabled, the Backup service will store up to four backups, three of which are automatically generated on the date and time range you specify: - -- **Daily** *(Less than 24 hours old)* -- **Weekly** *(Less than 7 days old)* -- **Biweekly** *(Between 8 and 14 days old)* -- **Manual Snapshot** *(A user-initiated snapshot that stays the same until another snapshot is initiated)* - -These backups can be managed in Cloud Manager under the **Backups** tab for your Compute Instance. - -![The list of Backups in Cloud Manager](manage-backups.png) - -This page also provides a few other options, detailed below: - -- **Manual Snapshot:** Creates a new manual snapshot, overwriting any existing one. See [Take a Manual Snapshot](/docs/products/storage/backups/guides/take-a-snapshot/). - -- **Settings:** Allows you to schedule when automatic backups are generated. See [Schedule Backups](/docs/products/storage/backups/guides/schedule/). - -- **Cancel Backups:** Removes the Backup service and deletes all existing backups. See [Cancel the Backup Service](/docs/products/storage/backups/guides/cancel/). - -## Restoring from a Backup - -To restore from a backup, locate the backup within the **Backups** tab of the Compute Instance and click the corresponding **ellipsis** menu. From here, there are a few options that can be selected: - -- **Restore to Existing Linode:** Restore the backup disks to an existing Compute Instance. [Restore a Backup to an Existing Linode](/docs/products/storage/backups/guides/restore-to-an-existing-instance/) - -- **Deploy New Linode:** Restore the backup disks to a new Compute Instance. See [Restore a Backup to a New Linode](/docs/products/storage/backups/guides/restore-to-a-new-instance/). \ No newline at end of file diff --git a/docs/products/storage/backups/get-started/manage-backups.png b/docs/products/storage/backups/get-started/manage-backups.png deleted file mode 100644 index 483a0423cff..00000000000 Binary files a/docs/products/storage/backups/get-started/manage-backups.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/_index.md b/docs/products/storage/backups/guides/_index.md deleted file mode 100644 index e8a5d16ca97..00000000000 --- a/docs/products/storage/backups/guides/_index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for the Linode Backup Service" -description: "A collection of guides to help you learn how to get up and running with Linode's Backup Service, including enabling and scheduling backups." -published: 2021-11-12 -modified: 2023-07-07 -tab_group_main: - weight: 30 ---- - -## Basics - -These introductory guides help get you up and running with Linode's Backup Service. - -- [Enable the Backup Service](/docs/products/storage/backups/guides/enable/): Use Cloud Manager to enable the Backup Service. - -- [Schedule Backups](/docs/products/storage/backups/guides/schedule/): Configure when automatic backups are initiated. - -- [Take a Manual Snapshot](/docs/products/storage/backups/guides/take-a-snapshot/): Learn how to make manual backups (snapshots) of your Compute Instance. - -- [Restore a Backup to a New Compute Instance](/docs/products/storage/backups/guides/restore-to-a-new-instance/): Restore a backup to a new Compute Instance. - -- [Restore a Backup to an Existing Compute Instance](/docs/products/storage/backups/guides/restore-to-an-existing-instance/): Restore a backup to an existing Compute Instance. - -- [Cancel the Backup Service](/docs/products/storage/backups/guides/cancel/): Cancel the Backups Service through Cloud Manager. - -## Going Further - -- [Troubleshooting Backups](/docs/products/storage/backups/guides/troubleshooting/): Get solutions for issues you may encounter when using our Backup service. - -- [Download a Local Copy of your Linode Backup](/docs/products/storage/backups/guides/download-backups-locally/) diff --git a/docs/products/storage/backups/guides/cancel/index.md b/docs/products/storage/backups/guides/cancel/index.md deleted file mode 100644 index 8f5c1f61c45..00000000000 --- a/docs/products/storage/backups/guides/cancel/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Cancel Backups -description: "How to cancel the Linode Backup Service." -published: 2021-11-12 ---- - -You can cancel the Backup Service at any time, which prevents any new backups from being created using the service and deletes any previously generated backups that may have been stored. - -{{< note type="alert" >}} -Cancelling your Backup Service irretrievably deletes all of your Linode's Backups, including its manual Snapshot. - -To preserve this data, you need to back up your data independently from the Backup Service before cancelling it. You may consult the suggestions in [Backing Up Your Data](/docs/guides/backing-up-your-data/) for more information on how to do this. -{{< /note >}} - -1. From the **Linodes** page, select the Linode. - -1. Click the **Backups** tab. - -1. Click the **Cancel Backups** button at the bottom of the page. \ No newline at end of file diff --git a/docs/products/storage/backups/guides/download-backups-locally/download-a-local-copy-of-your-linode-backup.png b/docs/products/storage/backups/guides/download-backups-locally/download-a-local-copy-of-your-linode-backup.png deleted file mode 100644 index f9bf93ff5f8..00000000000 Binary files a/docs/products/storage/backups/guides/download-backups-locally/download-a-local-copy-of-your-linode-backup.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/download-backups-locally/index.md b/docs/products/storage/backups/guides/download-backups-locally/index.md deleted file mode 100644 index 7cf1160fb90..00000000000 --- a/docs/products/storage/backups/guides/download-backups-locally/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -slug: download-backups-locally -title: Download a Local Copy of a Backup -description: "This guide provides you with step-by-step instructions for downloading files (or entire disks) from backups stored within Backup service." -published: 2021-11-12 -modified: 2023-07-07 -keywords: ["backup", "backups", "rsync", "restore", "local"] -license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' -tags: ["security"] -aliases: ['/security/data-portability/download-backups-locally/','/guides/download-backups-locally/'] -image: download-a-local-copy-of-your-linode-backup.png ---- - -The [Linode Backups](/docs/products/storage/backups/) service is used to create automatic and manual snapshots of your Compute Instances. A completed backup can be directly restored to the origin Compute Instance or to a new instance in the same data center. These workflows make it easy to revert to a working configuration if you run into any unexpected issues with your software. - -Backups generated by the Backup service are not able to be directly downloaded and are intended only for restoring that backup to a Compute Instance. A common question for the service is how you can download the content from your Linode Backups to another storage location, like your home computer. This can be accomplished through the following steps covered in this guide: - -1. [Restore a backup](#restore-a-backup) to a new or existing Compute Instance. -2. [Download any files](#download-files) you need from instance or download the entire disk image. - -## Restore a Backup - -To access the data stored in a backup generated by our Backup service, you must first restore that backup to a Compute Instance. For instructions, see one of the guides below: - -- [Restore a Backup to a New Compute Instance](/docs/products/storage/backups/guides/restore-to-a-new-instance/) -- [Restore a Backup to an Existing Compute Instance](/docs/products/storage/backups/guides/restore-to-an-existing-instance/) - -{{< note type="warning" >}} -Restoring a backup to a new Compute Instance will result in service charges for the time that instance is active. -{{< /note >}} - -## Download Files - -If you wish to retain specific files or directories from your restored backup, you can download them using SFTP or SCP. - -- **SFTP (Secure File Transfer Protocol):** An FTP desktop client provides a graphical interface so that you can access, download, and upload the files on your remote system. Download your preferred FTP client (like FileZilla), connect using your SSH credentials, and download the files you need. Review the [Transfer Files with FileZilla](/docs/guides/filezilla/) guide for additional instructions. - -- **SCP (Secure Copy Protocol):** A command-line utility available on most modern operating systems. With scp, you can download and upload files or entire directories between two systems. On your local system, run the following command. Replace *[user]* with your Linux username, *[ip-address]* with the IP address or FQDN of your Compute Instance, *[remote-file]* with the name and path of the file (or directory) on your remote system, and *[local-path]* with location to which you wish to save the file locally. When prompted, enter your user's password. - - ```command - scp [user]@[ip-address]:[remote-file] [local-path] - ``` - - For more information, see the [Transfer Files With the scp Command on Linux](/docs/guides/how-to-use-scp/) guide. - -See [Download Files from Your Compute Instance](/docs/guides/download-files-from-a-compute-instance/) for more detailed overview.. - -## Download a Disk - -You can also download and retain a copy of your entire disk if needed. This saves a disk image file (`.img`) on your local system that contains all of the data on your Compute Instance's disk. This disk image can later be re-uploaded to a Compute Instance. This is useful if you wish to temporarily remove your Compute Instance and stop further billing. Follow our [Copy a Disk over SSH](/docs/products/compute/compute-instances/guides/copy-a-disk-image-over-ssh/) guide for further instructions. - -Alternatively, you may wish to [capture an image](/docs/products/tools/images/guides/capture-an-image/) using our paid Image service. This is generally much easier, though it results in a nominal service charge. - -## Delete Services That Are No Longer Needed - -After you've finished downloading your files or disks, you should consider deleting the Compute Instance (if you restored to a new instance) or [delete the restored disks](/docs/products/compute/compute-instances/guides/disks-and-storage/#delete-a-disk) (if you restored to an existing instance). \ No newline at end of file diff --git a/docs/products/storage/backups/guides/enable/auto-enroll-in-backups.png b/docs/products/storage/backups/guides/enable/auto-enroll-in-backups.png deleted file mode 100644 index dc7acf28343..00000000000 Binary files a/docs/products/storage/backups/guides/enable/auto-enroll-in-backups.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/enable/enable-backups.png b/docs/products/storage/backups/guides/enable/enable-backups.png deleted file mode 100644 index 6ec42b2e494..00000000000 Binary files a/docs/products/storage/backups/guides/enable/enable-backups.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/enable/index.md b/docs/products/storage/backups/guides/enable/index.md deleted file mode 100644 index a03cde9f4fb..00000000000 --- a/docs/products/storage/backups/guides/enable/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Enable Backups" -description: "How to enable the Linode Backup Service." -published: 2021-11-12 -aliases: ['/quick-answers/linode-platform/enable-backups-on-a-linode/', '/guides/enable-backups-on-a-linode/'] ---- - -The Backups service can be individually enabled on an existing Compute Instances and auto-enabled on all new Instances. - -## Enable the Backups Service on an Existing Compute Instance - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. From the **Linodes** page, select the Linode you want to back up. - -1. Click the **Backups** tab. - -1. Click **Enable Backups**. - - ![Enable Linode Backups by navigating to the individual Linode's backup menu](enable-backups.png) - -1. A pop-up box is displayed confirming that you intend to enable backups for the specified monthly cost. Click **Enable Backups** to confirm. - -The Linode Backup Service is now enabled for the selected Linode. - -## Auto Enroll New Compute Instances in the Backup Service - -You can automatically enroll all new Linodes in the Backup Service. - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Click the **Account** link in the sidebar, then select the **Settings** tab. - -1. In the **Backup Auto Enrollment** panel, click on the switch to enable backups on all new Linodes. - - ![Auto enroll all new Linodes in the Backup Service by navigating to the Global Settings tab in the Account settings and enabling Backups.](auto-enroll-in-backups.png) - -{{< note >}} -Enabling this setting does not retroactively enroll any previously created Linodes in the Backup Service. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/backups/guides/restore-to-a-new-instance/index.md b/docs/products/storage/backups/guides/restore-to-a-new-instance/index.md deleted file mode 100644 index 7e39e64d3ed..00000000000 --- a/docs/products/storage/backups/guides/restore-to-a-new-instance/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Restore a Backup to a New Compute Instance -description: "Learn how to to restore a backup generated by Linode's Backup service to a new Compute Instance." -published: 2021-11-12 -modified: 2023-08-10 -aliases: ['/products/storage/backups/guides/restore-to-a-new-linode/'] ---- - -These steps cover how to restore a backup to a new Linode Compute Instance. The new Compute Instance will be deployed to the same data center, though you can [migrate](/docs/products/compute/compute-instances/guides/migrate-to-different-dc/) it to any data center you'd like after the restore is complete. - -The size of the disk(s) created by the restore process will be equal to the amount of space allocated to the disk when the backup was created. In some cases, this means you may want to reallocate disk space once the restore is complete. For more information regarding this process, see [Resizing a Disk](/docs/products/compute/compute-instances/guides/disks-and-storage/#resize-a-disk). - -{{< note >}} -This process restores all data that was stored on the disk at the time the backup was taken. It does not restore just a single files or directory. If you just need a single file or group of files, complete the normal restore, log in to the server, and then copy those needed files to your local system or any other Linode Compute Instance. -{{< /note >}} - -1. From the **Linodes** page, select the Compute Instance whose backups you intend to restore. - -1. Click the **Backups** tab. - -1. Click the **more options ellipsis** dropdown menu next to the backup you would like to restore and then select **Deploy New Linode**. - - ![Click on the ellipsis menu icon to restore to a new Linode](restore-backup-new-compute-instance.png) - -1. You will be taken to the **Create New Linode** screen. The **Create from Backup** tab will already be selected for you, as will the fields corresponding to the Compute Instance and backup that you are restoring from. Choose a plan, enter a label for the new instance, select any other options you prefer, and click **Create**. The new Compute Instance will be created with the same password and SSH keys (if any) as the original. - -The backup disks and configuration profiles will be restored to the new instance. Watch the notifications area for updates on the process. Restoring from a backup can take several minutes depending on the size of your instance and the amount of data you have stored on it. \ No newline at end of file diff --git a/docs/products/storage/backups/guides/restore-to-a-new-instance/restore-backup-new-compute-instance.png b/docs/products/storage/backups/guides/restore-to-a-new-instance/restore-backup-new-compute-instance.png deleted file mode 100644 index 83aab2107ab..00000000000 Binary files a/docs/products/storage/backups/guides/restore-to-a-new-instance/restore-backup-new-compute-instance.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/restore-to-an-existing-instance/index.md b/docs/products/storage/backups/guides/restore-to-an-existing-instance/index.md deleted file mode 100644 index 0ee50ce94f2..00000000000 --- a/docs/products/storage/backups/guides/restore-to-an-existing-instance/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Restore a Backup to an Existing Compute Instance -description: "Learn how to to restore a backup generated by Linode's Backup service to a disk on an existing Compute Instance." -published: 2021-11-12 -modified: 2023-09-12 -aliases: ['/products/storage/backups/guides/restore-to-an-existing-linode/','/products/storage/backups/guides/boot-from-a-backup/'] ---- - -These steps cover how to restore a backup to an existing Linode Compute Instance, either by adding the restored disks alongside the existing disks or overwriting the existing disks. The target Compute Instance needs to be in the same data center that the backup is stored within, though you can [migrate](/docs/products/compute/compute-instances/guides/migrate-to-different-dc/) it to any data center you'd like after the restore is complete. The target also needs to have enough free storage space to accommodate the restored disks. - -Restoring a backup creates a new [configuration profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) and a new set of [disks](/docs/products/compute/compute-instances/guides/disks-and-storage/) on the existing Compute Instance. The size of the disk(s) created by the restore process will be equal to the amount of space allocated to the disk when the backup was created. In some cases, this means you may want to reallocate disk space once the restore is complete. For more information regarding this process, see our [Resizing a Disk](/docs/products/compute/compute-instances/guides/disks-and-storage/#resize-a-disk) guide. - -{{< note >}} -This process restores *all data* that was stored on the disk at the time the backup was taken. It does not restore just a single files or directory. If you just need a single file or group of files, complete the normal restore, log in to the server, and then copy those needed files to your local system or any other Linode Compute Instance. -{{< /note >}} - -1. From the **Linodes** page, select the Compute Instance whose backups you intend to restore. - -1. Click the **Backups** tab. - -1. Find the backup you'd like to restore and observe the disk space that's required, which is visible in the **Space Required** column. You will need at least this amount of unallocated disk space on the target instance to complete the restore. - -1. Click the **more options ellipsis** dropdown menu next to the backup you would like to restore and then select **Restore to Existing Linode**. - - ![Click on the ellipsis menu icon to restore to an existing Linode](restore-backup-existing-compute-instance.png) - -1. A menu will open with the Compute Instances that you can restore to. Select an instance and click **Restore**. - - ![Select the Compute Instance you would like to restore your backup to](restore-backup.png) - - You will be notified if you do not have enough space on your instance to restore your backup. Optionally, you can choose to overwrite the instance you are restoring to. - -1. If the amount of unallocated space available is greater than the size of the backup, you can proceed with restoring. If the amount of unallocated space is less than the size of the backup, you can stop the restoration workflow, [resize your existing disks](/docs/products/compute/compute-instances/guides/disks-and-storage/#resize-a-disk) on the target instance to make room for it, and then come back to the restore page after the disk resize operation has finished. - - Depending on your available disk space, you may not be able to shrink your disks enough to fit the restored backup. As an alternative, you can [change your Compute Instance's plan](/docs/products/compute/compute-instances/guides/resize/) to a higher tier that offers more disk space. - -1. From the **Restore to Existing Linode** menu, click **Restore**. Your backup will begin restoring to your Compute Instance, and you can monitor its progress in the notifications area. Note that the time it takes to restore your backup will vary depending upon the restore size and the number of files being restored. - - {{< note >}} - If you are attempting to restore a disk to the same Compute Instance the backup was created from, the restoration process will not delete the original disk for you. Manually delete the original disk to make room for the backup, if desired. - {{< /note >}} - -1. Once your backup has been restored, you can optionally power up or restart your Compute Instance using that backup. To do so, navigate to the target Compute Instance in Cloud Manager, go to the **Configurations** tab, locate the configuration profile created during the restore process, and click the corresponding **Boot** button. For full instructions, review [Manage Configuration Profiles on a Compute Instance > Boot from a Configuration Profile](/docs/products/compute/compute-instances/guides/configuration-profiles/#boot-from-a-configuration-profile). - - {{< note type="warning" title="Warning: UUID Collisions">}} - When you restore a backup, the restored disk is assigned the same [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) as the original disk. In most cases, this is acceptable and does not cause issues. However, if you attempt to mount both the original disk and the corresponding restore disk at the same time (by assigning them both to devices in your Configuration Profile's **Block Device Assignment**), you will encounter a UUID "collision". - - When this happens, the system selects, and mounts, only one of the disks at random. This is due to both disks sharing the same UUID. Upon successfully booting, you will not see any immediate indication if you are booted into the restored disk or the original disk, and you will be unable to access both disks at the same time. - - To avoid this, we recommend only restoring a backup to the same Compute Instance if you do not intend on mounting them at the same time or are comfortable modifying UUIDs. If you need access to files on both the original disk and the restored disk simultaneously (such as needing to copy files between them), we suggest [restoring the backup to a new Compute Instance](/docs/products/storage/backups/guides/restore-to-a-new-instance/). - - To learn more about block device assignments and viewing your disks' UUIDs, see [Configuration Profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/#block-device-assignment). - {{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/backups/guides/restore-to-an-existing-instance/restore-backup-existing-compute-instance.png b/docs/products/storage/backups/guides/restore-to-an-existing-instance/restore-backup-existing-compute-instance.png deleted file mode 100644 index 5438d4ef307..00000000000 Binary files a/docs/products/storage/backups/guides/restore-to-an-existing-instance/restore-backup-existing-compute-instance.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/restore-to-an-existing-instance/restore-backup.png b/docs/products/storage/backups/guides/restore-to-an-existing-instance/restore-backup.png deleted file mode 100644 index b57b2b184d4..00000000000 Binary files a/docs/products/storage/backups/guides/restore-to-an-existing-instance/restore-backup.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/schedule/backups-schedule.png b/docs/products/storage/backups/guides/schedule/backups-schedule.png deleted file mode 100644 index 5e3ec62e9c0..00000000000 Binary files a/docs/products/storage/backups/guides/schedule/backups-schedule.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/schedule/index.md b/docs/products/storage/backups/guides/schedule/index.md deleted file mode 100644 index 0fcc7fcfa8a..00000000000 --- a/docs/products/storage/backups/guides/schedule/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Schedule Backups -description: "How to schedule backups with the Linode Backup Service." -published: 2021-11-12 ---- - -The Backup service will generate automatic backups according to the schedule that you specify. - -1. From the **Linodes** page, select the Linode. - -1. Click the **Backups** tab. - -1. Under **Settings**, select a time interval from the **Time of Day** dropdown menu. The Backup Service will prioritize *starting* the automated daily backup between these hours. - -1. Select a day from the **Day of Week** menu. On this day, the daily backup will also be saved to the weekly backup slot and the weekly backup will be promoted to the biweekly slot. - -1. Click **Save Schedule** to make any changes. - -![](backups-schedule.png) \ No newline at end of file diff --git a/docs/products/storage/backups/guides/take-a-snapshot/backups-manual-snapshot.png b/docs/products/storage/backups/guides/take-a-snapshot/backups-manual-snapshot.png deleted file mode 100644 index 1165e8e0fad..00000000000 Binary files a/docs/products/storage/backups/guides/take-a-snapshot/backups-manual-snapshot.png and /dev/null differ diff --git a/docs/products/storage/backups/guides/take-a-snapshot/index.md b/docs/products/storage/backups/guides/take-a-snapshot/index.md deleted file mode 100644 index c6a7aeac9ef..00000000000 --- a/docs/products/storage/backups/guides/take-a-snapshot/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Take a Manual Snapshot -description: "How to use the Backups Service to take a manual backup of a Linode Compute Instance." -published: 2021-11-12 ---- - -As part of the Backups service, you can store a manual backup of your Compute Instance through the *manual snapshot* feature. This can be useful to save a restore point before a major system upgrade or before significant changes to software or configuration within your Compute Instance. - -{{< note >}} -The manual snapshot feature is part of the paid Backups service and, as such, the Backups service must be enabled. See [Enable Backups](/docs/products/storage/backups/guides/enable/). -{{< /note >}} - -{{< note type="alert" >}} -Only a *single* manual snapshot can be stored for a Compute Instance. Taking a new snapshot overwrites any previously saved manual snapshot. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com) and click the **Linodes** link in the left navigation menu. - -1. On the **Linodes** page, select the Linode Compute Instance from the list. - -1. Navigate to the **Backups** tab. - -1. Under **Manual Snapshot**, enter a label for this new snapshot and click **Take Snapshot**. - - ![Screenshot of the Manual Snapshot section within Cloud Manager](backups-manual-snapshot.png) - -1. A pop-up box is displayed confirming that you intend to take a new manual snapshot and that any previous snapshot will be overwritten. Click **Take Snapshot** to proceed. - -Creating the manual snapshot can take several minutes, depending on the size of your Linode and the amount of data you have stored on it. Other Cloud Manager jobs for this Linode will not run until the snapshot job has been completed. diff --git a/docs/products/storage/backups/guides/troubleshooting/index.md b/docs/products/storage/backups/guides/troubleshooting/index.md deleted file mode 100644 index d084de8482e..00000000000 --- a/docs/products/storage/backups/guides/troubleshooting/index.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: "Troubleshooting Backups" -title_meta: "Troubleshooting Issues with the Backup Service" -description: "Get help diagnosing and solving issues related to the Linode Backup service, including backup failures and restore failures." -published: 2021-11-12 -modified: 2023-07-07 ---- - -## Backup Failure - -If the Linode Backup service ever fails to create a backup from your Compute Instance, you should receive a ticket or alert notifying you of the failure. In some cases, the underlying issue can resolve itself. However, there may be an issue on your Compute Instance that needs to be addressed before the Backup service can be successfully used. Here are common reasons why a backup failure might occur: - -- **Disk can't be mounted:** If your disk is encrypted, formatted using an unsupported file system, or contains multiple partitions, the Backup service will not be able to mount your disk and perform a backup. We recommend reviewing our [Backup Limits and Considerations](/docs/products/storage/backups/#limits-and-considerations) and making sure your disk is compatible. - -- **Large number of files:** The Backup service is file-based. Due to this, the overall number of files on your disk affects both the time needed for the backup and the success of that backup. There isn't a specific maximum number of files supported by the service. If you do notice that your backups are failing or taking a long time to run, we recommend auditing the number of files on your disk and considering ways to reduce the number of files. For more assistance, refer to the [Too many files](#too-many-files) section below. - -If you need help determining why your backups are failing, [contact our Support](https://www.linode.com/support/) team. - -## Disk Won't Boot After Restoring from a Backup - -If you are restoring a single backup disk to your Compute Instance, then the new disk will have a different UUID than the original. When this happens, configuration files on the instance may still be referencing the old UUID of the original disk, instead of the new one, causing boot issues. If this is the case, you will likely see errors related to the UUID in your console when booting in [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#boot-into-rescue-mode): - -```output -ALERT! UUID=xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx does not exist. Dropping to a shell! -``` - -To fix this error, you will need to boot into [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#boot-into-rescue-mode) and edit your `/etc/fstab` file to account for the new UUID. This can be done in the following steps: - -1. Follow the instructions for [Booting Into Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#boot-into-rescue-mode) using our Rescue and Rebuild guide. Once you have successfully completed step 4 in the section to [Change Root](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#change-root), proceed to the next step. - -1. Enter the following command to obtain the UUID of your current disk: - - ```command - blkid - ``` - - Output will resemble the following: - - ```output - /dev/sda: UUID="ecfd4955-9ce6-44ad-a8e4-275d5ac13ffc" TYPE="ext4" - ``` - - Copy _only_ the string surrounded by the quotation marks defining the `UUID` field in the output to use in the next step. - -1. You should now have access to your disk's contents in the recovery environment. Check the contents of your `/etc/fstab` file for any entries pertaining to the UUID. This line may appear as follows: - - ```output - UUID=41c22818-fbad-4da6-8196-c816df0b7aa8 /disk2p2 ext3 defaults,errors=remount-ro 0 1 - ``` - -1. Replace the string defining the UUID in the `/etc/fstab` file with the UUID of the disk you copied from the output of the `blkid` command. - -1. After following all of the above steps, you should now be able to reboot your Compute Instance normally. - -## Too Many Files - -The amount of files on your system impacts the time it takes for the Backup service to generate a backup. In some cases, having a large number of files can contribute to backup failures. If you are experiencing multiple consecutive backup failures that do not resolve on their own, you may wish to audit the number of files on your system. While there isn't a specific limit to the number of files supported by our Backup service, it may be time to consider ways of reducing or consolidating your files if your system has a few million or more files. - -To investigate the number of files and learn which directories contain the largest share of these files, log in to your instance and run the command below. - -```command -sudo find / -type f | perl -aF/ -lne 'for (my $i=0; $i < @F-1; ++$i) { print join("/",@F[0...$i]); }' | sort | uniq -c | sort -nr | head -30 -``` - -This outputs a list of the 30 directories with the highest file count, beginning with the total file count on your system. Each subsequent line contains the number of files followed by the absolute path of the directory. You can adjust the total number of directories that are displayed by changing the `head -30` portion of the command above. - -```output - 294960 - 92890 /sys - 75872 /sys/kernel - 74449 /usr - 63057 /proc - 56255 /opt - 50504 /opt/psa - 50096 /sys/kernel/slab - 45838 /opt/psa/admin - 35528 /opt/psa/admin/plib - 25405 /usr/share - 24952 /usr/lib - 24607 /opt/psa/admin/plib/modules - 22695 /usr/src - ... -``` - -If the file count is high (which is not the case for the example above), examine the directory paths. If any directories with large file counts contain session data or application logs, you may want to optimize the related applications so that they generate or store less files. To reduce the number of files that have already been generated, you can remove any files that are not important and create an archive of any files you wish to keep. You can do this manually or create a cron job to delete or archive files automatically at regular intervals. Before removing or archiving any files, consult your developers or system administrator. - -- [Archiving and Compressing files with GNU Tar and GNU Zip](/docs/guides/archiving-and-compressing-files-with-gnu-tar-and-gnu-zip/) -- [Using Cron to Schedule Tasks for Certain Times or Intervals](/docs/guides/schedule-tasks-with-cron/) -- [Linode Backup Failure: Too Many Files](https://www.linode.com/community/questions/20092/linode-backup-failure-too-many-files) Community Site post \ No newline at end of file diff --git a/docs/products/storage/backups/resources/index.md b/docs/products/storage/backups/resources/index.md deleted file mode 100644 index 0b668fffe09..00000000000 --- a/docs/products/storage/backups/resources/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Resources -title_meta: "Resources for the Linode Backup Service" -description: "Resources and other information related to the Linode Backup Service including videos, blog posts, community posts, customer stories, and press releases." -tab_group_main: - weight: 40 ---- - -## Videos - -- [Linode India Overview](https://www.linode.com/content/linode-mumbai-data-center-overview-video/) - -## Blog Posts - -- [How to Keep WordPress Secure: The Basics](https://www.linode.com/blog/cms/how-to-keep-wordpress-secure-the-basics/) - -- [Release Day: Automating the Linux Distro (featuring Ubuntu 20.04)](https://www.linode.com/blog/linux/release-day-automating-the-linux-distro-featuring-ubuntu-20-04/) - -- [Linode Managed is even better than before!](https://www.linode.com/blog/linode/linode-managed-is-even-better-than-before/) - -- [Linode Cloud Asia-Pacific](https://www.linode.com/blog/linode/linode-cloud-asia-pacific/) - -- [Introducing the Linode Backup Service](https://www.linode.com/blog/linode/introducing-the-linode-backup-service/) - -- [Backup Service enters Beta](https://www.linode.com/blog/linode/backup-service-enters-beta/) - -## Community Posts - -- [I have some questions about backups](https://www.linode.com/community/questions/327/i-have-some-questions-about-backups) - -- [My backups aren’t working because the Backups system can’t mount my images -- why is that?](https://www.linode.com/community/questions/17628/my-backups-arent-working-because-the-backups-system-cant-mount-my-images-why-is-) - -- [What do Linode Backups backup and can I rely on it as my only backup solution?](https://www.linode.com/community/questions/18671/what-do-linode-backups-backup-and-can-i-rely-on-it-as-my-only-backup-solution) - -- [Backup service for the new Cloud Manager](https://www.linode.com/community/questions/17750/backup-service-for-the-new-cloud-manager) - -- [Why can’t I create a snapshot backup?](https://www.linode.com/community/questions/18618/why-cant-i-create-a-snapshot-backup) - -- [Linode CLI: Restore a Backup to a new Linode](https://www.linode.com/community/questions/18752/linode-cli-restore-a-backup-to-a-new-linode) - -- [Can I delete my Linode, but keep its backups?](https://www.linode.com/community/questions/19148/can-i-delete-my-linode-but-keep-its-backups) - -- [Restore Individual Files from Backups](https://www.linode.com/community/questions/18808/restore-individual-files-from-backups) - -- [How many backups do I get with Linode Backup Service?](https://www.linode.com/community/questions/18128/how-many-backups-do-i-get-with-linode-backup-service) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=backups). - -## Customer Stories - -- [Craft of Code Alpine Linux](https://www.linode.com/spotlight/alpine-linux/) - -- [Craft of Code Andy Christianwan](https://www.linode.com/spotlight/andy-christiawan/) - -- [Craft of Code Configr](https://www.linode.com/spotlight/configr/https://www.linode.com/spotlight/configr/) - -- [Craft of Code Flowlens](https://www.linode.com/spotlight/flowlens/) - -## Press Releases - -- [Linode Launches Managed Kubernetes Engine](https://www.linode.com/press-release/linode-launches-managed-kubernetes-engine/) - -- [Linode Expands Cloud Solutions For Developers, Launches Dedicated CPU Instances](https://www.linode.com/press-release/linode-expands-cloud-solutions-for-developers-launches-dedicated-cpu-instances/) - -- [Linode Launches Frankfurt Data Center](https://www.linode.com/press-release/linode-launches-frankfurt-datacenter/) - -- [Linode Celebrates 12th Birthday by Adopting KVM & Boosting Cloud Server Performance by 300%](https://www.linode.com/press-release/linode-celebrates-12th-birthday-by-adopting-kvm-and-boosting-cloud-server-performance-by-300/) - -- [Linode Opens New Data Center in Singapore](https://www.linode.com/press-release/linode-opens-new-datacenter-in-singapore/) diff --git a/docs/products/storage/block-storage/_index.md b/docs/products/storage/block-storage/_index.md deleted file mode 100644 index 527c8f2aeab..00000000000 --- a/docs/products/storage/block-storage/_index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Block Storage -title_meta: "Block Storage Product Documentation" -description: "Linode Block Storage is a scalable, high-speed, resilient and fault tolerant storage service." -modified: 2024-04-15 -toc: true -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-06-02 - product_description: "Block Storage is a scalable, high-speed, and fault tolerant storage service used to add additional storage to a Linode Compute Instance." -aliases: ['/platform/block-storage/how-to-use-block-storage-with-your-linode/','/platform/block-storage/how-to-use-block-storage-with-your-linode-new-manager/','/platform/block-storage/how-to-use-block-storage-with-your-linode-classic-manager/','/platform/how-to-use-block-storage-with-your-linode/','/platform/block-storage/','/guides/platform/block-storage/','/guides/how-to-use-block-storage-with-your-linode/'] ---- - -Linode's Block Storage service provides a method of adding additional storage drives to Compute Instances, enabling you to store more data without resizing your Compute Instance to a larger plan. These storage drives, called *Volumes*, can be formatted with any Linux-compatible file system and attached and mounted to a Compute Instance. - -## Scalable - -A Block Storage Volume augments the raw storage capacity of a cloud instance, which can be useful if your storage needs are greater than your computing demands. Because a Volume is scalable, it can adapt as your data grows in size. - -## Resilient and Fault Tolerant - -Block Storage Volumes are configured to be durable and fault tolerant using erasure coding, ensuring that your data is protected from loss. Since Volumes are managed independently of Compute Instances, your data persists even if you delete your attached instance. - -## Ultra-Fast Performance - -Block Storage is powered entirely by NVMe SSD storage devices (except within the Fremont data center). NVMe storage offers dramatically increased performance over standard SATA SSDs, HDDs, or hybrid storage solutions. Additionally, performance is automatically increased in 60 second bursts for even faster real-world speeds. See the table below for both sustained and burst performance limits on NVMe-only Block Storage: - -| Performance Metric | IOPS | Throughput | -| -- | -- | -- | -| **Sustained** | 8,000 | 350 MB/s | -| **Burst** | 12,000 | 525 MB/s | - -Performance may vary based on the workload and Compute Instance type. Plans with dedicated CPU resources (such as Dedicated CPU or High Memory Compute Instances) will not be impacted by resource contention, though a Shared Compute Instance may be impacted. - -## Availability - -Block Storage is available across [all regions](https://www.linode.com/global-infrastructure/). Additionally, the newer NVMe-backed Block Storage has been deployed to all data centers with the exception of Fremont. - -## Plans and Pricing - -Block Storage Volumes start at $0.10/GB per month ($0.00015/GB per hour) and can range from 10 GB to 10 TB in size. [Pricing](https://www.linode.com/pricing/) for Block Storage may vary between data centers. - -## Technical Specifications - -- Minimum size for a Volume is 10 GB and the maximum size is 10,240 GB (10 TB). -- Backed by high speed NVMe storage in *most* data centers, excluding Fremont. -- **Throughput**: Up to 350 MB/s sustained and 525 MB/s in 60 second bursts -- **IOPS**: Up to 8,000 sustained and 12,000 in 60 second bursts -- Built in redundancy maximizes availability and reduces possibility for data loss - -## Limits and Considerations - -- A Compute Instance can have multiple Volumes attached to it, but a Volume can only be attached to one Compute Instance at a time. To attach a Volume, both the Volume and the Compute Instance must be located in the same data center. Migrating a Volume to a different data center is not directly available at this time. See [Transfer Block Storage Data between Data Centers](/docs/products/storage/block-storage/guides/transfer-volume-data-between-data-centers/) for a work-around. - -- A combined total of 8 storage devices can be attached to a Compute Instance at the same time, including local disks and Block Storage Volumes. For example, if your Compute Instance has two main disks, root and swap, you can attach no more than 6 additional volumes to this Compute Instance. - -- The maximum combined capacity limit of all volumes on an account across all regions is 100 TiB. If you plan on exceeding this amount, contact [Support](https://www.linode.com/support/) to request an increase. In your request, please provide the capacity limit you are requesting for each region you plan to use. - -- You can attach Block Storage volumes to a Compute Instance in Full Virtualization mode only after you Power Off the Compute Instance. For further steps, see [Attach a Volume](/docs/products/storage/block-storage/guides/attach-and-detach/). - -- Our Backup Service does not cover Block Storage Volumes. You must manage [your own backups](/docs/guides/backing-up-your-data/) if you wish to backup data stored on your Volumes. diff --git a/docs/products/storage/block-storage/developers/index.md b/docs/products/storage/block-storage/developers/index.md deleted file mode 100644 index b42ec465ac1..00000000000 --- a/docs/products/storage/block-storage/developers/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Block Storage" -description: "Linode Block Storage is managed easily with developer tools like the Linode API or CLI as well as third party tools and integrations." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [Block Storage Endpoint Collection](/docs/api/volumes/) - -- [Manage Block Storage Volumes with the Linode API](/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/). - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to use the Linode CLI to [create and manage Block Storage Volumes](/docs/products/tools/cli/guides/block-storage-volumes/). - -## Linode Tools - -**Linode Block Storage CSI Driver**: The Container Storage Interface (CSI) defines a standard that storage providers can use to expose block and file storage systems to container orchestration systems. [Linode’s Block Storage CSI driver](https://github.com/linode/linode-blockstorage-csi-driver) follows this specification to allow container orchestration systems, like [Kubernetes](https://www.linode.com/products/kubernetes/), to use Block Storage Volumes to persist data despite a Pod’s lifecycle. - -**Docker Volume Driver for Linode**: The [Docker Volume driver](https://github.com/linode/docker-volume-linode) is a plugin that adds the ability to manage Linode Block Storage Volumes as Docker Volumes. Good use cases for Volumes include: - -- Off-node storage, to avoid size constraints - -- Moving a container and the related volume between nodes in a Swarm - -## Third Party Tools & Integrations - -**Terraform**: Terraform is an Infrastructure-as-code tool that includes management features for various types of Linode resources. Use Linode’s [official Terraform Provider](https://www.terraform.io/docs/providers/linode/r/volume.html) to create and manage Block Storage Volumes. To learn more about Terraform see our documentation library’s [Terraform section](/docs/applications/configuration-management/terraform/). - -**Pulumi**: Pulumi is a development tool that lets you write computer programs which deploy cloud resources. With [Pulumi’s Linode integration](https://github.com/pulumi/pulumi-linode), you can manage your Linode resources in several programming languages, like JavaScript, Go, Python, and TypeScript. Pulumi manages your resources in the same way as Linode's API or CLI. See [Pulumi’s documentation](https://www.pulumi.com/docs/intro/cloud-providers/linode/) to get started. diff --git a/docs/products/storage/block-storage/feature.svg b/docs/products/storage/block-storage/feature.svg deleted file mode 100644 index abc01f31312..00000000000 --- a/docs/products/storage/block-storage/feature.svg +++ /dev/null @@ -1,5 +0,0 @@ - - Block Storage - - - \ No newline at end of file diff --git a/docs/products/storage/block-storage/get-started/index.md b/docs/products/storage/block-storage/get-started/index.md deleted file mode 100644 index 5218fb4540d..00000000000 --- a/docs/products/storage/block-storage/get-started/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with Block Storage" -description: "Get started with Linode Block Storage. Learn to add a new Block Storage volume to a Linode, increase the size of an attached volume, and transfer a Block Storage volume to a new Linode." -modified: 2022-08-24 -tab_group_main: - weight: 20 ---- - -Block Storage Volumes are persistent storage devices that can be attached to a Compute Instance and used to store any type of data. They are especially useful for storing website files, databases, media, backups, and *much* more. To get started with Block Storage, create a Volume using the guide below. - -- [View, Create, and Delete Volumes](/docs/products/storage/block-storage/guides/manage-volumes/) - -Once a Block Storage Volume has been created, it can be attached to any Compute Instance in the same region. Since Volumes are external device, they are portable and can be attached and detached to Compute Instances as needed. Once attached, the device is assigned to an available block device (such as `/dev/sdc`) on a Compute Instance's Configuration Profile and has its own path in your instance's file system. When attaching and detaching a Volume, additional internal configuration is needed to create a file system (if one hasn't already been created), mount or unmount the Volume, and automatically mount the Volume at system boot. - -- [Attach and Detach Existing Volumes](/docs/products/storage/block-storage/guides/attach-and-detach/) -- [Configure a Volume on a Compute Instance](/docs/products/storage/block-storage/guides/configure-volume/) - -When a Volume is attached to a Compute Instance, you can [log in to that instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) and access the Volume's data through its mount point. For instance, if the Volume was mounted in `/mnt/volume/`, you can navigate to that directly to view any files stored on that Volume. You can also use that directory when integrating your Volume with any software or tooling you might employ. \ No newline at end of file diff --git a/docs/products/storage/block-storage/guides/_index.md b/docs/products/storage/block-storage/guides/_index.md deleted file mode 100644 index 06cd980e68b..00000000000 --- a/docs/products/storage/block-storage/guides/_index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Block Storage" -description: "A collection of product documentation for Block Storage, including how to manage volumes, attach volumes to Compute Instances, and more." -tab_group_main: - weight: 30 ---- - -## Basics - -- [View, Create, and Delete Volumes](/docs/products/storage/block-storage/guides/manage-volumes/): Learn how to view and manage Block Storage Volumes. - -- [Attach and Detach Existing Volumes](/docs/products/storage/block-storage/guides/attach-and-detach/): Instructions on attaching and *safely* detaching existing Volumes to (and from) Compute Instances - -- [Configure a Volume on a Compute Instance](/docs/products/storage/block-storage/guides/configure-volume/): To use a Volume on a Compute Instance, it needs to first be configured by creating a file system and mounting the device. - -- [Resize a Volume](/docs/products/storage/block-storage/guides/resize-volume/): Increase the size of a Block Storage Volume after it has been created. - -- [Transfer a Volume to a Different Compute Instance](/docs/products/storage/block-storage/guides/transfer-volume/): Move a Block Storage Volume to a different Compute Instance within the same data center. - -- [Transfer Block Storage Data between Data Centers](/docs/products/storage/block-storage/guides/transfer-volume-data-between-data-centers/): Volumes are not able to be migrated between data centers. Instead, you can transfer the data from one Volume into another Volume within a data center. - -## Going Further - -- [Use Cases for Block Storage](/docs/products/storage/block-storage/guides/use-cases/) - -- [Boot a Linode from a Block Storage Volume](/docs/products/storage/block-storage/guides/boot-from-a-volume/) - -- [Manage Block Storage Volumes with the Linode API](/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/) - -### Kubernetes - -- [Deploy Persistent Volume Claims with the Linode Block Storage CSI Driver](/docs/guides/deploy-volumes-with-the-linode-block-storage-csi-driver/) - -### Third-Party Applications - -- [Use a Block Storage Volume with Plex Media Server](/docs/guides/use-block-storage-with-plex-media-server/) - -- [Use a Block Storage Volume with Nextcloud](/docs/guides/use-block-storage-volume-with-nextcloud/) - -- [Install FreeNAS on a Linode with Block Storage](/docs/guides/freenas-blockstorage/) diff --git a/docs/products/storage/block-storage/guides/attach-and-detach/index.md b/docs/products/storage/block-storage/guides/attach-and-detach/index.md deleted file mode 100644 index e5557602730..00000000000 --- a/docs/products/storage/block-storage/guides/attach-and-detach/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Attach and Detach a Volume" -description: "Learn how to attach and detach existing Volumes to or from Compute Instances." -modified: 2022-08-24 -aliases: ['/products/storage/block-storage/guides/attach-volume/','/products/storage/block-storage/guides/detach-volume/'] ---- - -Each Volume can to be attached to a single Compute Instance within the same data center, which enables that instance to read and write data to that Volume. Volumes can also be detached, and its data cannot be accessed until it is again attached to any Compute Instance within the same data center. - -## Attach a Volume - -Learn how to attach an existing Block Storage Volume to a Compute Instance using these steps: - -1. Log in to [Cloud Manager](https://cloud.linode.com/linodes) and click on the **Volumes** link in the sidebar. - -1. Locate the desired Volume within the list, click the **more options ellipsis** dropdown menu, and select **Attach**. - -1. Complete the **Attach Volume** form that appears. - - - **Linode:** Use the dropdown menu to select the Compute Instance you'd like to use. The Volume will be attached to this instance. - - **Config:** If the Compute Instance has multiple Configuration Profiles, select which one the Block Storage Volume should be assigned to. This field will not be displayed if the instance has only a single profile. - - {{< note >}} - The Compute Instance must be located within the same data center as the Block Storage Volume. - {{< /note >}} - - {{< note >}} - If your Compute Instance was deployed before August 24th, 2021 and hasn't been rebooted since your data center was upgraded to NVMe Block Storage, you may need to reboot the instance for it to properly work with a Block Storage Volume. - {{< /note >}} - -1. Click the **Save** button to attach the Volume. - -1. To start using the Volume on the Compute Instance, additional internal configuration is required. This includes creating the file system (if the Volume hasn't been used before), mounting the Volume, and configuring your instance to automatically mount the Volume at boot. To learn more about these configuration steps, see [Configuring and Mounting a Volume](/docs/products/storage/block-storage/guides/configure-volume/). - - {{< note type="alert" >}} - Do not create a new file system if you wish to retain any existing data on the Volume. Creating a new file system will overwrite any existing data and result in data loss. - {{< /note >}} - -## Detach a Volume - -Follow these steps to safely detach a Block Storage Volume from a Compute Instance. A Volume should be detached before it is reattached to a different instance. - -1. Log in to [Cloud Manager](https://cloud.linode.com/linodes) and click on the **Linodes** link in the sidebar. - -1. Select the Compute Instance that the Volume is currently attached to. - -1. It's recommended to power off the instance. To do this, click **Power Off** on the top right of the Compute Instance details page. - -1. If a Volume is currently mounted, detaching it while the instance is powered on could cause data loss or an unexpected reboot. You can unmount the Volume for safe live-detaching by logging in to the Compute Instance over [SSH or Lish](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) and running the `umount` command, such as in the example below. - - umount /dev/disk/by-id/scsi-0Linode_Volume_example-volume-1 - - Replace the device path with the one for your own Volume (which can be viewed from the *Show Config* link). To avoid additional issues with your Compute Instance, remove the detached volume's line from your `/etc/fstab/` configuration. - - FILE_SYSTEM_PATH /mnt/example-volume-1 ext4 defaults 0 2 - -1. Navigate to the **Storage** tab. - -1. Locate the Volume you wish to detach within the *Volumes* list, click the **more options ellipsis** dropdown menu, and select **Detach**. - -1. A confirmation screen appears and explains that the Volume will be detached from the Compute Instance. Click **Detach** to confirm. - -Detached Volumes still exist on your account and, as such, you are still billed for the Volume as normal. It can be viewed and deleted within the **Volumes** listing page in Cloud Manager. See [View, Add, and Delete Volumes](/docs/products/storage/block-storage/guides/manage-volumes/). \ No newline at end of file diff --git a/docs/products/storage/block-storage/guides/boot-from-a-volume/block-storage-title-graphic.png b/docs/products/storage/block-storage/guides/boot-from-a-volume/block-storage-title-graphic.png deleted file mode 100644 index 3a01f27fcec..00000000000 Binary files a/docs/products/storage/block-storage/guides/boot-from-a-volume/block-storage-title-graphic.png and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/boot-from-a-volume/bs-pv-sda-sdc.gif b/docs/products/storage/block-storage/guides/boot-from-a-volume/bs-pv-sda-sdc.gif deleted file mode 100644 index b7a213f42af..00000000000 Binary files a/docs/products/storage/block-storage/guides/boot-from-a-volume/bs-pv-sda-sdc.gif and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/boot-from-a-volume/edit-configuration.png b/docs/products/storage/block-storage/guides/boot-from-a-volume/edit-configuration.png deleted file mode 100644 index 6f85201a87b..00000000000 Binary files a/docs/products/storage/block-storage/guides/boot-from-a-volume/edit-configuration.png and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/boot-from-a-volume/index.md b/docs/products/storage/block-storage/guides/boot-from-a-volume/index.md deleted file mode 100644 index d913575a303..00000000000 --- a/docs/products/storage/block-storage/guides/boot-from-a-volume/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Boot from a Block Storage Volume" -description: "This guide provides you with instructions for booting a Compute Instance from a Block Storage Volume for use in an emergency or disaster recovery situation." -og_description: "This guide shows how to boot a Linode from a Block Storage Volume." -published: 2018-05-04 -modified: 2022-08-24 -keywords: ["block storage","volume","media","storage","disk", "boot", "boot disk"] -tags: ["linode platform"] -aliases: ['/platform/block-storage/boot-from-block-storage-volume/','/guides/boot-from-block-storage-volume/'] -image: block-storage-title-graphic.png ---- - -Linode’s Block Storage service lets you attach additional storage volumes to your Compute Instances. In addition to storing files and media, you can also use a Volume as a boot disk. This can provide a low-cost way to maintain an image that can be quickly attached to a Compute Instance and booted up when needed. - -This guide outlines the steps needed to boot your Compute Instance from a Block Storage Volume. These steps include creating a new Volume, copying the primary disk to that new Volume, and configuring the instance to boot from that Volume. The process may be reversed in order to restore the primary disk from the Volume. - -## Create the Volume - -Create a Block Storage Volume and attach it to the desired target Compute Instance. Verify that the Volume is the same size as (or larger than) the primary disk and is in the same data center as the instance. Review the [View, Create, and Delete Volumes](/docs/products/storage/block-storage/guides/manage-volumes/) for instructions on creating a new Volume. - -## Copy the Primary Disk onto the Volume - -1. Boot the Compute Instance into Rescue Mode and assign the Volume to `/dev/sdc` (shown below). The primary disk should remain assigned to `/dev/sda`. If your device assignments are different, you may need to adjust the commands or steps in this guide accordingly. Review the [Rescue and Rebuild guide](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#boot-into-rescue-mode) for more information on booting into Rescue Mode. - - ![Mount the Block Storage Volume as /dev/sdc and reboot into Rescue Mode](rescue-mode-sdc.png) - -1. Connect to the Linode via [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Run `fdisk -l` to confirm the Compute Instance's primary disk and Block Storage Volume are available as `dev/sda` and `dev/sdc`, respectively. - -1. Run the following `pv` command to copy the contents of the primary disk to the Block Storage Volume. Respectively, the options `-pte` output a progress meter, the elapsed time, and the estimated time remaining. - - pv -pte < /dev/sda > /dev/sdc - -## Set the Block Storage Volume as the Primary Disk and Reboot - -1. Power off the Compute Instance. - -2. Edit the Compute Instance's **Configuration Profile**. Under the **Block Device Assignments** section, assign the `/dev/sda` device to your Block Storage Volume (shown below). Confirm that the root device is set to `/dev/sda` (this is the default setting). If your Volume was previously assigned to any other device, such as `/dev/sdc`, set the device to `None`. Save these changes. Review the [Managing Configuration Profiles on a Linode](/docs/products/compute/compute-instances/guides/configuration-profiles/) guide for more information on editing configuration profiles. - - ![/dev/sda set to Block Storage Volume](edit-configuration.png "Configuration Management Block Device Assignment shows /dev/sda set to the Block Storage Volume") - -3. Power on the Compute Instance. - -The Compute Instance should boot normally from the Block Storage Volume. Keep in mind that Block Storage may not be as fast as the instance's local storage and, as such, performance may be different. \ No newline at end of file diff --git a/docs/products/storage/block-storage/guides/boot-from-a-volume/rescue-mode-sdc.png b/docs/products/storage/block-storage/guides/boot-from-a-volume/rescue-mode-sdc.png deleted file mode 100644 index f7ee1f19724..00000000000 Binary files a/docs/products/storage/block-storage/guides/boot-from-a-volume/rescue-mode-sdc.png and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/configure-volume/index.md b/docs/products/storage/block-storage/guides/configure-volume/index.md deleted file mode 100644 index 10eba78f959..00000000000 --- a/docs/products/storage/block-storage/guides/configure-volume/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Configure and Mount a Volume" -description: "Learn how to create a file system on a Block Storage Volume and mount it to a Compute Instance." -modified: 2022-08-24 ---- - -Once a Block Storage Volume has been attached to a Compute Instance, you need to perform a few additional steps before you can start using it. These steps include creating a file system (if you're configuring a new Volume) and mounting the Volume to your Compute Instance's system. To make configuration easier, all the necessary commands can be viewed directly in Cloud Manager. - -1. Log in to [Cloud Manager](https://cloud.linode.com/linodes) and click on the **Volumes** link in the sidebar. - -1. Locate the desired Volume within the list and click the **Show Config** link, which may appear within the **more options ellipsis** dropdown menu. - -1. The **Volume Configuration** panel appears and contains the commands needed to fully configure the Volume with your Compute Instance. - -1. Login to your Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. Enter each command that's shown in the **Volume Configuration** panel, modifying them if needed. These configuration steps are also listed below: - - 1. **Create a file system.** If your Volume *has not* been used before, create an ext4 file system on the Volume. - - {{< note type="alert" >}} - Skip this step if you wish to retain any data stored on an existing Volume. Creating a new file system will overwrite any existing data and result in data loss. You can view existing file systems on an unmounted volume with the following command: - - blkid FILE_SYSTEM_PATH - - If you do not receive output, there is currently no file system on this volume. - {{< /note >}} - - You can create an ext4 file system by running the following command, where `FILE_SYSTEM_PATH` is your Volume's file system path: - - mkfs.ext4 FILE_SYSTEM_PATH - - 1. **Create a mount point.** This is the directory on your Linux system where the Block Storage files will be located. - - mkdir /mnt/BlockStorage1 - - 1. **Mount the Volume manually.** Mount the Block Storage Volume to the directory you just created. After this is completed, you can access your files from that directory. - - mount FILE_SYSTEM_PATH /mnt/BlockStorage1 - - 1. **Mount the Volume automatically.** If you want to mount the new Volume automatically every time your Compute Instance boots, add the following line to your **/etc/fstab** file: - - FILE_SYSTEM_PATH /mnt/BlockStorage1 ext4 defaults 0 2 - - {{< note >}} - If you plan on detaching the volume regularly or moving it between other Compute Instances, you may want to consider adding the flags `noatime` and `nofail` to the **/etc/fstab** entry. - - * `noatime` - This will save space and time by preventing writes made to the file system for data being read on the volume. - * `nofail` - If the volume is not attached, this will allow your server to boot/reboot normally without hanging at dependency failures if the volume is not attached. - - Example: - - FILE_SYSTEM_PATH /mnt/BlockStorage1 ext4 defaults,noatime,nofail 0 2 - {{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/index.md b/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/index.md deleted file mode 100644 index b5bb1fb577b..00000000000 --- a/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/index.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: "Manage Block Storage Volumes with the Linode API" -description: "This guide demonstrate how to create, attach, clone, and resize Volumes using the Linode API." -published: 2018-05-14 -modified: 2022-12-06 -image: manage-block-storage-volumes-with-the-linode-api.png -external_resources: - - '[API Documentation](/docs/api/)' -keywords: ["linode api", "block storage", "volume"] -tags: ["linode platform"] -aliases: ['/platform/api/create-block-storage-volumes-with-the-linode-api/','/guides/create-block-storage-volumes-with-the-linode-api/','/products/tools/api/guides/block-storage/'] ---- - -The Linode API lets you create, delete, attach, detach, clone, and resize Block Storage Volumes. - -## Before You Begin - -You need a Personal Access Token for the Linode API to complete the steps in this guide. See [Manage Personal Access Tokens](/docs/products/platform/accounts/guides/manage-api-tokens/#create-an-api-token) for more information. - -Store the token as a temporary shell variable to simplify repeated requests. Replace `` in this example with your token: - -```command -export TOKEN= -``` - -## Create a Block Storage Volume - -Create a new Block Storage Volume by making a POST request to the `/volumes` endpoint. You can also automatically attach the new Volume to an existing Compute Instance by passing the instance's ID when creating the Volume. - -1. List the Compute Instances on your account: - - ```command - curl -H "Authorization: Bearer $token" \ - https://api.linode.com/v4/linode/instances - ``` - - Choose a Compute Instance from the returned list and copy its `id` and `region` values. - -1. Create a Volume in the same region as the target instance. Use the ID of the target instance and adjust the size (in GB), region, and label to the desired values: - - ```command - curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $token" \ - -X POST -d '{ - "label": "my-volume", - "region": "us-east", - "size": 100, - "linode_id": 1234567 - }' \ - https://api.linode.com/v4/volumes - ``` - - {{< note >}} - The Volume and Compute Instance must be in the same region. - {{< /note >}} - -1. Examine the response JSON object and copy the values in the `id` and `filesystem_path` fields: - - ```file {lang="json"} - { - "linode_id":1234567, - "label":"my-volume", - "size":100, - "updated":"2018-05-07T14:59:48", - "created":"2018-05-07T14:59:48", - "id":6830, - "status":"creating", - "region":"us-east", - "filesystem_path":"/dev/disk/by-id/scsi-0Linode_Volume_my-volume" - } - ``` - -1. Query the Volume using the `/volumes/$volume_id` endpoint to make sure it was successfully created: - - ```command - curl -H "Authorization: Bearer $token" \ - https://api.linode.com/v4/volumes/$volume_id - ``` - - If the `status` field in the response is `active`, your Volume is ready to use. - -### Mount the Volume - -The API can't directly mount the new Volume after it is attached. SSH into the Linode and mount it manually: - -1. Create a filesystem on the Volume: - - ```command - mkfs.ext4 $volume_path - ``` - -1. Create a mountpoint: - - ```command - mkdir /mnt/my-volume - ``` - -1. Mount the Volume: - - ```command - mount $volume_path /mnt/my-volume - ``` - -1. To automatically mount the Volume every time your Compute Instance boots, add the following line to your `/etc/fstab` file: - - ```file {title="/etc/fstab"} - $volume_path /mnt/my-volume defaults 0 2 - ``` - -## Attach and Detach the Volume - -If you did not specify a Compute Instance when creating the Volume, or would like to attach it to a different instance, use the `/attach` and `/detach` endpoints: - -1. Detach the Volume. Replace `$volume_id` with the Volume ID from the previous section: - - ```command - curl -H "Authorization: Bearer $token" \ - -X POST \ - https://api.linode.com/v4/volumes/$volume_id/detach - ``` - -1. Attach the Volume to the new target Compute Instance: - - ```command - curl -H "Authorization: Bearer $token" \ - -H "Content-Type: application/json" \ - -X POST -d \ - '{ "linode_id": $linode-id }' \ - https://api.linode.com/v4/volumes/$volume_id/attach - ``` - - {{< note >}} - If a Compute Instance is not running and has more than one configuration profile, include a `config_id` parameter in the POST request to specify which profile to use. If you do not specify a profile, the first profile will be used by default. - {{< /note >}} - -## Clone a Volume - -To copy all of the data in a Block Storage Volume to a new Volume: - -```command -curl -H "Authorization: Bearer $token" \ - -X POST -d '{ - "label": "new-volume" - }' \ - https://api.linode.com/v4/volumes/$volume_id/clone -``` - -## Delete a Volume - -Remove a Volume from your account with a DELETE request. If the Volume is attached to a Compute Instance, you will have to detach it before it can be deleted: - -```command -curl -H "Authorization: Bearer $token" \ - -X DELETE \ - https://api.linode.com/v4/volumes/$volume_id -``` - -## Resize a Volume - -If you need additional space, you can increase the size of a Volume through the API. It is not possible to reduce the size of a Volume. - -Pass the desired size (in gigabytes) using the `size` parameter: - -```command -curl -H "Content-Type: application/json" \ - -H "Authorization: Bearer $token" \ - -X POST -d '{ - "size": 200 - }' \ - https://api.linode.com/v4/volumes/$volume_id/resize -``` - -{{< note >}} -After resizing the Volume, you also need to resize the file system to accommodate the additional space. For instructions, see the last few steps on the [Resize a Volume](/docs/products/storage/block-storage/guides/resize-volume/) guide. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/manage-block-storage-volumes-with-the-linode-api.png b/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/manage-block-storage-volumes-with-the-linode-api.png deleted file mode 100644 index e4093e8178f..00000000000 Binary files a/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/manage-block-storage-volumes-with-the-linode-api.png and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/manage-volumes/create-volume-form.png b/docs/products/storage/block-storage/guides/manage-volumes/create-volume-form.png deleted file mode 100644 index e341c55ae8f..00000000000 Binary files a/docs/products/storage/block-storage/guides/manage-volumes/create-volume-form.png and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/manage-volumes/index.md b/docs/products/storage/block-storage/guides/manage-volumes/index.md deleted file mode 100644 index 57215bb5606..00000000000 --- a/docs/products/storage/block-storage/guides/manage-volumes/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "View, Create, and Delete Block Storage Volumes" -description: "Learn how to manage Block Storage Volumes on your Linode account, including viewing, adding, and deleting them." -modified: 2022-08-24 -aliases: ['/products/storage/block-storage/guides/add-volume/','/products/storage/block-storage/guides/delete-volume/'] ---- - -What is block storage? Block Storage is a scalable, high-speed, and fault tolerant network storage service used to add additional storage capacity to a Linode Compute Instance. - -The Block Storage cloud service lets you create Volumes, which can be attached to Compute Instances and used to easily store your data. This guide covers how to view, add, manage, and delete Block Storage Volumes. - - -## View Volumes - -### View All Volumes - -Log in to [Cloud Manager](https://cloud.linode.com/volumes) and click the **Volumes** link in the sidebar. All Block Storage Volumes on your account are listed here, including their region, size, and their attachment status. - -![View all Volumes on an account](view-all-volumes.png) - -### View Block Storage Volumes Attached to a Specific Compute Instance - -1. Log in to [Cloud Manager](https://cloud.linode.com/linodes) and click the **Linodes** link in the sidebar. - -1. Select the Compute Instance for which you'd like to view all attached Volumes. The detail page for that instance should appear. - -1. Navigate to the **Storage** tab and find the *Volumes* section, as shown below. All Volumes that are currently attached to this Compute Instance should appear in a list, along with the region, size, and the file system path. - -![View Volumes that are attached to specific Compute Instances](view-volumes-on-compute-instance.png) - -## Add Volumes - -{{< note >}} -If your Compute Instance was deployed before August 24th, 2021 and hasn't been rebooted since your data center was upgraded to NVMe Block Storage, you may need to reboot the instance for it to properly work with a Block Storage Volume. -{{< /note >}} - -1. Navigate to the **Volumes** page in Cloud Manager. Alternatively, if you know which Compute Instance you wish to attach the new Volume to, navigate to the **Storage** tab for that instance. See [View Volumes](#view-volumes). - -1. Click the **Create Volume** button to open the creation form. This form may have slightly different options, depending on the page you were on in the previous step. If creating a Volume directly from a Compute Instance's Storage tab, select the **Create and Attach Volume** option to create a new Volume. - - ![Volume Creation Form](create-volume-form.png) - -1. Enter the **Label** and **Size** of the Volume. - - - **Label:** A string up to 32 characters long and consisting only of ASCII characters `a-z; 0-9.-_`. - - **Size:** The desired size for the new Volume. See the [Limits and Considerations](/docs/products/storage/block-storage/#limits-and-considerations) section for the minimum and maximum size. - -1. Select the **Region** and **Linode**. These fields only appear when creating a Volume from the main Volume page (not on a specific Compute Instance). If the **Linode** field is left blank, the Volume is created in a *detached* state, meaning it is not attached to any Compute Instance. - -1. If a Compute Instance has been selected, select a Configuration Profile within the **Config** field to attach the Volume to the next available Block Device Assignment (such as `/dev/sdc`). - -1. Click **Create Volume** to create the new Block Storage Volume. - -1. A **Volume Configuration** panel appears, which contains the instructions needed to access the new Volume with your Compute Instance. These instructions include commands for creating the file system, mounting the Volume, and configuring your instance to automatically mount the Volume at boot. For help with these commands, see [Configuring and Mounting a Volume](/docs/products/storage/block-storage/guides/configure-volume/). - -1. Once created, the Volume is listed under the *Volumes* table. - -## Delete Volume - -{{< note type="alert" >}} -Once a Block Storage Volume has been deleted, the data contained on that Volume will be permanently erased. This action cannot be reversed, so it’s always best to verify or backup the data in the block storage volume beforehand. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com/linodes). - -1. If the Volume is attached to a Compute Instance, power off that instance and detach the Volume. To do so, follow the instructions within the [Detach the Volume](/docs/products/storage/block-storage/guides/attach-and-detach/#detach-a-volume) guide. - -1. Click on the **Volumes** link in the sidebar. - -1. Locate the desired Volume within the list, click the **more options ellipsis** dropdown menu, and select **Delete**. - -1. In the configuration dialog, click **Delete** once again. diff --git a/docs/products/storage/block-storage/guides/manage-volumes/view-all-volumes.png b/docs/products/storage/block-storage/guides/manage-volumes/view-all-volumes.png deleted file mode 100644 index be20e422955..00000000000 Binary files a/docs/products/storage/block-storage/guides/manage-volumes/view-all-volumes.png and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/manage-volumes/view-volumes-on-compute-instance.png b/docs/products/storage/block-storage/guides/manage-volumes/view-volumes-on-compute-instance.png deleted file mode 100644 index 34e75e58796..00000000000 Binary files a/docs/products/storage/block-storage/guides/manage-volumes/view-volumes-on-compute-instance.png and /dev/null differ diff --git a/docs/products/storage/block-storage/guides/nvme-upgrade/index.md b/docs/products/storage/block-storage/guides/nvme-upgrade/index.md deleted file mode 100644 index 884f8731803..00000000000 --- a/docs/products/storage/block-storage/guides/nvme-upgrade/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "NVMe Block Storage Upgrade" -description: "Information about the new NVMe Block Storage product and how to upgrade a Volume." -modified: 2023-07-05 ---- - -## What is NVMe-backed Block Storage? - -NVMe (nonvolatile memory express) is the hardware interface for next-generation SSDs (solid-state drives). The technology is a significant improvement over traditional spinning hard disk drives, with a 10-20x increase in throughput and up to 2000x improvement in IOPS. With NVMe-backed Block Storage, you can experience a significant performance upgrade for database storage and other tasks where high storage speeds and consistency are critical. - -To learn more about Block Storage, visit the [Block Storage Overview](/docs/products/storage/block-storage/) page. - -## Availability - -**NVMe Block Storage** has been deployed to all data centers except for Fremont, CA (USA). - -## Upgrading a Volume to NVMe Block Storage - -Existing Volumes can be upgraded to NVMe soon after NVMe Block Storage has been deployed within a data center. Once NVMe upgrades are available, our team will schedule a migration for each eligible Volume on your account. You will receive a notification detailing the Volumes scheduled to be upgraded along with their migration schedule. You can view your scheduled upgrades on the [Account > Maintenance](https://cloud.linode.com/account/maintenance/) page of Cloud Manager under the *Volumes* section. You can also choose to immediately enter the upgrade queue *after* the migration has been scheduled by following the instructions below: - -1. Log in to Cloud Manager and navigate to the [Volumes](https://cloud.linode.com/volumes) page. - -1. Click the **Upgrade to NVMe** button next to the Volume you wish to upgrade. If this button does not appear next to your desired *non-NVMe* Volume, the Volume is not yet eligible for an upgrade. - -1. A confirmation pop-up is displayed notifying you of the upgrade details. Click the **Enter Upgrade Queue** button to continue. The Volume will be upgraded shortly, though the length of time the upgrade process takes depends on the number of other Volumes that are also in the upgrade queue as well as the size of your Volume. - -{{< note >}} -If the Volume is attached to a Linode Compute Instance during the upgrade process, the Compute Instance may be rebooted to complete the upgrade. If this occurs, it will return to its last known power state. -{{< /note >}} - -## Manually Upgrading a Volume to NVMe Block Storage - -If a scheduled upgrade is available for your Volume, follow the steps above in the [Upgrading a Volume to NVMe Block Storage](#upgrading-a-volume-to-nvme-block-storage) section. Otherwise, if this automated upgrade is not yet available for your Volume, you can manually upgrade to NVMe by following the procedure below. - -1. Create a new Volume within the same data center as your existing Volume. Provided that NVMe Block Storage has already launched in your data center, all new Volumes use the new NVMe architecture. Make sure the new Volume is large enough to accommodate your data and that you attach it to the same Compute Instance and configuration profile. See [View, Create, and Delete Block Storage Volumes](/docs/products/storage/block-storage/guides/manage-volumes/). - -1. Log in to your Compute Instance over SSH. See [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/) for assistance. - -1. Perform any configuration steps necessary to create a file system on the new Volume and mount it to your system. See [Configure and Mount a Block Storage Volume](/docs/products/storage/block-storage/guides/configure-volume/). - -1. Run the following command to copy your data, replacing `[path-to-original-volume]` with the file system path to your original Volume and `[path-to-nvme-volume]` with the path to the new Volume you just created. These paths are likely under the `/mnt/` directory. - - ```command - sudo rsync -rah --progress [path-to-original-volume]/* [path-to-nvme-volume]/ - ``` - -1. After the transfer has completed, you can modify any applications using your original Volume to point to the mount directory of the new NVMe Volume. Then, follow the [Attach and Detach a Volume](/docs/products/storage/block-storage/guides/attach-and-detach/#detach-a-volume) guide to unmount and detach your original Volume. - - If you prefer not to modify any applications to use a new directory, you can rename your NVMe Volume to the use the same name as your original Volume (first renaming or deleting your original Volume). Then reboot your Compute Instance. Provided you original Volume was configured to automatically mount upon boot, the new Volume will be mounted instead. - -1. Once your verify that your new Volume is working as expected, you can delete the original Volume by following the [View, Create, and Delete Block Storage Volumes](/docs/products/storage/block-storage/guides/manage-volumes/) guide. If you decide not to delete it, you will be billed for both Volumes going forward. - -## Frequently Asked Questions - -### What are the performance benefits of NVMe Block Storage? - -The table below displays the performance you can expect from NVMe-backed Block Storage. Performance is automatically increased in 60 second bursts for even faster real-world speeds. - -| Performance Metric | IOPS | Throughput | -| -- | -- | -- | -| **Standard** | 8,000 | 350 MB/s | -| **Burst** | 12,000 | 525 MB/s | - -For detailed benchmarks along with comparisons to other Cloud providers, review the [Cloud Block Storage Benchmark Report](https://www.linode.com/content/cloud-block-storage-benchmarks/) prepared by Cloud Spectator. - -### How much extra will NVMe-backed Block Storage cost? - -We were able to provide a tremendous performance boost with NVMe Block Storage at **no additional charge.** Block Storage will remain priced at $0.10/GB per month. - -### How can I determine if my Volume uses NVMe storage? - -All Block Storage Volumes, with the exception of those deployed in the Fremont data center, are stored entirely on NVMe storage drives. \ No newline at end of file diff --git a/docs/products/storage/block-storage/guides/resize-volume/index.md b/docs/products/storage/block-storage/guides/resize-volume/index.md deleted file mode 100644 index fee447b2625..00000000000 --- a/docs/products/storage/block-storage/guides/resize-volume/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Resize a Volume" -description: "Learn how to resize an existing Block Storage Volume on the Linode Platform" -modified: 2024-02-05 ---- - -At any time after the Block Storage Volume has been created, it can be increased to a larger size. - -{{< note type="warning" title="Volume size cannot be decreased" >}} -At this time, the size of Volumes are only able to be increased (not decreased). To decrease the size of your Volume, you will need to create a new Volume at your preferred size, attach it to a Compute Instance, copy over your data, and remove the original Volume. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com/linodes). - -1. If the Volume is attached to a Compute Instance, power off that instance. - -1. Click on the **Volumes** link in the sidebar. - -1. Locate the desired Volume within the list, click the **more options ellipsis** dropdown menu, and select **Resize**. - -1. Enter the new Volume size. The minimum size is the current size of the Volume and maximum is 10,240 GB. Then click **Submit**. - -1. Click **Resize Volume** to start the resize. Once the resize has been completed, you will receive a notification in Cloud Manager. - -1. After the Volume is resized, power back on your Compute Instance. - -1. Once your Compute Instance has fully booted up, you need to run the following commands to resize the file system within your Volume. - - 1. Login to your Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - - 1. Unmount the Volume, making sure to use the unique path for your own Volume: - - ```command - umount /dev/disk/by-id/scsi-0Linode_Volume_BlockStorage1 - ``` - - 1. Assuming you have an ext2, ext3, or ext4 partition, run a file system check: - - ``` - e2fsck -f /dev/disk/by-id/scsi-0Linode_Volume_BlockStorage1 - ``` - - 1. Then resize it to fill the new Volume size: - - ``` - resize2fs /dev/disk/by-id/scsi-0Linode_Volume_BlockStorage1 - ``` - - 1. Mount your Volume back onto the filesystem: - - ``` - mount /dev/disk/by-id/scsi-0Linode_Volume_BlockStorage1 /mnt/BlockStorage1 - ``` diff --git a/docs/products/storage/block-storage/guides/transfer-volume-data-between-data-centers/index.md b/docs/products/storage/block-storage/guides/transfer-volume-data-between-data-centers/index.md deleted file mode 100644 index a736d1efd39..00000000000 --- a/docs/products/storage/block-storage/guides/transfer-volume-data-between-data-centers/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Transfer Block Storage Data between Data Centers" -description: "Learn how to transfer data on a Block Storage Volume to a different data center." -modified: 2022-08-24 ---- - -Block Storage Volumes cannot be directly migrated to a different data center. These steps will outline how to transfer a Volume's data to a different data center via the [SCP](/docs/guides/download-files-from-a-compute-instance/#download-files-with-scp) tool. - -{{< note >}} -Consult our [Network Transfer Usage and Costs](/docs/products/platform/get-started/guides/network-transfer/) guide for information on charges related to outbound traffic when transferring data over the public internet. -{{< /note >}} - -1. [Attach and mount](/docs/products/storage/block-storage/guides/manage-volumes/) your existing Volume to a Compute Instance, if you have not already. - -1. [Create, attach, and mount](/docs/products/storage/block-storage/guides/manage-volumes/) a Volume to a Compute Instance within the new data center you wish to use. - -1. Log in to your new receiving Compute Instance using [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). - -1. [Use the Secure Copy Protocol (SCP)](/docs/guides/download-files-from-a-compute-instance/#download-files-with-scp) to download your Volume's data to the receiving Compute Instance. - - scp [source-user]@[source-ip]:[source-path] [destination-path] - - Replace the above values with your own. In the example below, the user is `root`, the IP of the original Compute Instance is `192.0.2.1`, the path to the Volume's data on the source machine is `/mnt/source-volume/`, and the path to the new Volume on the new Compute Instance in the other data center is `/mnt/destination-volume/`. - - scp root@192.0.2.1:/mnt/source-volume/ /mnt/destination-volume/ - - {{< note >}} - You will need a Volume or device that has enough storage capacity to receive the entirety of your source data. - {{< /note >}} - -1. Once the transfer is complete and you have confirmed the original data is now located on the new Volume in your desired data center, the original Volume can be deleted to avoid further charges for that Volume. \ No newline at end of file diff --git a/docs/products/storage/block-storage/guides/transfer-volume/index.md b/docs/products/storage/block-storage/guides/transfer-volume/index.md deleted file mode 100644 index f50693e08de..00000000000 --- a/docs/products/storage/block-storage/guides/transfer-volume/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Transfer a Volume to a Different Compute Instance" -description: "Learn how to transfer a Block Storage Volume to a different Compute Instance within the same data center." -modified: 2022-08-24 ---- - -Follow these steps to move a Block Storage Volume to a different Compute Instance *within the same data center*. - -{{< note >}} -Volumes can only be attached to Compute Instances located in the same data center. To migrate data to a different data center, see the [Transfer Block Storage Data between Data Centers](/docs/products/storage/block-storage/guides/transfer-volume-data-between-data-centers/) guide. -{{< /note >}} - -1. Detach the Volume from the original Compute Instance. See [Attach and Detach Volumes > Detach a Volume](/docs/products/storage/block-storage/guides/attach-and-detach/#detach-a-volume) for instructions. - -1. Attach the Volume to the desired Compute Instance within the same data center as the Volume. See [Attach and Detach Volumes > Attach a Volume](/docs/products/storage/block-storage/guides/attach-and-detach/#attach-a-volume) for instructions. diff --git a/docs/products/storage/block-storage/guides/use-cases/index.md b/docs/products/storage/block-storage/guides/use-cases/index.md deleted file mode 100644 index a824a756c88..00000000000 --- a/docs/products/storage/block-storage/guides/use-cases/index.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "Common Use Cases for Block Storage" -description: "Learn how people use Block Storage to expand their persistent storage on the Linode Platform." -published: 2019-08-27 -modified: 2022-08-24 -keywords: ['block','storage','use','cases'] -tags: ["linode platform"] -aliases: ['/platform/block-storage/block-storage-use-cases/','/guides/block-storage-use-cases/'] ---- - -## What is Block Storage - -Block Storage is a type of persistent cloud data storage that is similar to a traditional block device, like the hard drive in a PC. With Block Storage, your data is divided into *blocks*, which are the small, discrete units that Block Storage can read from and write to. These blocks are assigned unique identifiers, but these are generally not human-readable, so a filesystem is usually installed which maps your files to the underlying blocks they correspond to. This relationship is also analogous to your PC's filesystem and hard drive. - -A Block Storage *Volume* houses these blocks of data. Volumes can be *attached* to a cloud computing instance, which makes its data and filesystem available to the instance. If your instance is running Linux, then mounting a Volume's filesystem is just like mounting any other filesystem. - -Volumes are stored separately from your cloud instances, but inside the same data center, and they are attached via the data center's private networking. A Volume can be detached from a cloud instance and its data will persist, even if the cloud instance is deleted. The Volume can also be re-attached to a different instance (though only one attachment at a time is possible). Volumes can also be increased in size at any time, independent of an instance's built-in storage. - -### Benefits and Limitations - -A Block Storage Volume augments the raw storage capacity of a cloud instance, which can be useful if your storage needs are greater than your computing demands. Because a Volume is scalable, it can adapt as your data grows in size. Additionally, all data stored with Linode Block Storage is replicated three times, so your Volumes are highly available and fault tolerant. - -{{< note >}} -While the health and uptime of Linode Block Storage is closely monitored by Linode Support, we still recommend [making separate backups](/docs/guides/backing-up-your-data/) of your Volumes. -{{< /note >}} - -Because Volumes are directly connected to an instance, their I/O speeds are much faster than those of an alternative storage solution like Object Storage. As well, the nature of Block Storage lets you read and write small parts of your data, which means that you can incrementally update your files. This is in contrast to Object Storage, which requires a full re-upload of a file to update it. - -Some aspects of Block Storage lead to natural limitations. In particular, a Volume needs to be attached to a cloud instance for its data to be accessible. In comparison, a file stored in Object Storage can be downloaded by any internet connected client at any time. - -Below you will find some of the more popular use cases for Block Storage. - -## Use Cases - -### Persistent Storage - -Block Storage Volumes can be detached from a cloud instance just as easily as they are attached, meaning that it's possible to create hot-swappable drives with Block Storage. This is useful if you need to perform the same kind of tasks across a fleet of instances with the same data. - -{{< note type="alert" >}} -While the Block Storage service has full support for hot swapping, it is important to follow the detachment instructions outlined in our [Attach and Detach a Volume](/docs/products/storage/block-storage/guides/attach-and-detach/#detach-a-volume) guide. If a Volume is not safely detached, there is a risk of data loss for the Volume. -{{< /note >}} - -### Container Storage - -Containers, like those created with Docker or inside Kubernetes Pods, can benefit from having some type of persistent storage. This helps to keep a container's size down and makes it easy to maintain data outside of the normal lifecycle of the container or Pod. - -If you are using Docker, you can use the [Docker Volume Driver for Linode](https://github.com/linode/docker-volume-linode) to create a Docker volume from a Block Storage Volume. Similarly, if you are using Kubernetes you can use the [Container Storage Interface (CSI) Driver for Linode Block Storage](https://github.com/linode/linode-blockstorage-csi-driver) to create a Persistent Volume Claim that's backed by a Block Storage Volume. - -### Database Storage - -With the release of NVMe Block Storage, our Block Storage service is able to meet the demands of the most resource-intensive database applications. Many enterprise database solutions benefit from ultra-fast NVMe storage, as well as the redundancy and fault tolerance provided by Block Storage. - -### Running Cloud Software - -In a climate where ownership over one's data is an important need for many individuals and organizations, hosting your own cloud software is a great use case for Block Storage. Create and mount a Block Storage Volume, [install an application like OwnCloud](/docs/guides/install-and-configure-owncloud-on-ubuntu-16-04/), and point its data folder to a location on your Volume. If you ever run out of space on your Volume you can always increase its size. - -### Storage for Media Library Applications - -There are a few media library applications, most notably [Plex](https://www.plex.tv/), that offer media streaming functionality to internet enabled devices. The media libraries these applications serve can quickly grow in size, depending on the number of movie and audio files they contain. Using a Block Storage Volume can provide you with storage capable of growing with the needs of your library. - -{{< note >}} -For more information on using Plex with a Block Storage Volume, see our [Using a Block Storage Volume with Plex](/docs/guides/use-block-storage-with-plex-media-server/) guide. -{{< /note >}} - -### Ephemeral Storage - -Various stages of the software development lifecycle can create large amounts of temporary data, such as buffers, builds, and cache and session data. While this data might only exist for a short period of time, it requires and uses storage space. Creating a Block Storage Volume just for ephemeral data is a good use case for times when the storage supplied with your instance is not enough, or for when you need extra space for a short period of time. - -### Data Backups - -Having backups of your data is always a good idea, and Block Storage Volumes make for scalable and quickly accessible backup mediums. Store anything that you might need to quickly transfer to another instance, or anything that you might need at a moment's notice. - -### Boot Disks - -You can boot from disk images installed to a Block Storage Volume. This provides a cost effective means of maintaining an image that can be attached to a new Linode. For example, you could save money by creating and removing on-demand Linode instances that boot from a Volume. As well, you can boot from a Volume to access and recover an instance whose normal operating system may not be running as expected. - -{{< note >}} -Linode provides a built-in [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/) feature, but maintaining your own rescue Volume can allow you to include the recovery tools you prefer to use. -{{< /note >}} - -## Next Steps - -For more information on how to use Block Storage, consult our [Block Storage Overview](/docs/products/storage/block-storage/) guide. diff --git a/docs/products/storage/block-storage/resources/index.md b/docs/products/storage/block-storage/resources/index.md deleted file mode 100644 index 1c9d20f7f2e..00000000000 --- a/docs/products/storage/block-storage/resources/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Resources -title_meta: "Resources for Block Storage" -description: "Resources and other information related to Linode Block Storage including blog posts, community posts, and customer stories." -tab_group_main: - weight: 40 ---- - -## Blog Posts - -Some of the blog posts about Linode Block Storage: - -- [Block Storage Now Available in Tokyo 2](https://www.linode.com/blog/cloud-storage/block-storage-now-available-in-tokyo-2/) - -- [Block Storage Now Available in Singapore and London](https://www.linode.com/blog/cloud-storage/block-storage-now-available-in-singapore-and-london/) - -- [Block Storage Now Available in Frankfurt](https://www.linode.com/blog/cloud-storage/block-storage-now-available-in-frankfurt/) - -- [Block Storage Now Available in Newark and Dallas](https://www.linode.com/blog/cloud-storage/block-storage-now-available-in-newark-and-dallas/) - -- [Announcing Linode Block Storage Volumes](https://www.linode.com/blog/cloud-storage/announcing-linode-block-storage-volumes/) - -- [Nextcloud and Percona added to Linode Marketplace](https://www.linode.com/blog/devops/nextcloud-and-percona-added-to-linode-marketplace/) - -- [4 Alternative Ways to Collaborate in the Cloud](https://www.linode.com/blog/cloud-computing/4-alternative-ways-to-collaborate-in-the-cloud/) - -- [2019: A Big Year of Innovation for Linode and a Big Thank You to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [Now Available: Linode Terraform Provider](https://www.linode.com/blog/devops/now-available-linode-terraform-provider/) - -## Community Posts - -Some of the community posts that answer questions related to Linode Block Storage: - -- [How do I move my database files to a Block Storage Volume?](https://www.linode.com/community/questions/18893/how-do-i-move-my-database-files-to-a-block-storage-volume) - -- [How can I copy my Disk to Block Storage?](https://www.linode.com/community/questions/19477/how-can-i-copy-my-disk-to-block-storage) - -- [Can I have one Volume attached to two Linodes?](https://www.linode.com/community/questions/18548/can-i-have-1-volume-attached-to-two-linodes) - -- [Backing up a Block Storage Volume](https://www.linode.com/community/questions/19191/backing-up-a-block-storage-volume) - -- [How can I mount a Block Storage Volume from inside my Docker container?](https://www.linode.com/community/questions/493/how-can-i-mount-a-block-storage-volume-from-inside-my-docker-container) - -- [Can I use Block Storage with Nextcloud?](https://www.linode.com/community/questions/18500/can-i-use-block-storage-with-nextcloud) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=block+storage). - -## Customer Stories - -- [Craft of Code: Chris Alfano](https://www.linode.com/spotlight/chris-alfano/) - -- [Craft of Code: Changelog](https://www.linode.com/spotlight/changelog/) - -- [Craft of Code: Metorik](https://www.linode.com/spotlight/metorik/) - -- [Craft of Code: Configr](https://www.linode.com/spotlight/configr/) - -- [Craft of Code: John Schaeffer](https://www.linode.com/spotlight/john-schaeffer/) diff --git a/docs/products/storage/feature.png b/docs/products/storage/feature.png deleted file mode 100644 index d8e9fd56127..00000000000 Binary files a/docs/products/storage/feature.png and /dev/null differ diff --git a/docs/products/storage/feature.svg b/docs/products/storage/feature.svg deleted file mode 100644 index 7135a664867..00000000000 --- a/docs/products/storage/feature.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/products/storage/object-storage/_index.md b/docs/products/storage/object-storage/_index.md deleted file mode 100644 index 70c6db88b60..00000000000 --- a/docs/products/storage/object-storage/_index.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: Object Storage -title_meta: "Object Storage Product Documentation" -description: "Linode Object Storage is S3-compatible, doesn't require a Linode, and lets you host static sites." -modified: 2024-04-07 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2024-04-07 - product_description: "An S3-compatible object storage solution designed to store, manage, and access unstructured data in the cloud." -aliases: ['/platform/object-storage/pricing-and-limitations/', '/guides/pricing-and-limitations','/products/storage/object-storage/guides/enable/'] ---- - -Linode's Object Storage is a globally-available, S3-compatible method for storing and accessing data. Object Storage differs from traditional hierarchical data storage, such as a traditional filesystem on a physical/virtual disk and [Block Storage Volumes](/docs/products/storage/block-storage/). Under Object Storage, files (also called *objects*) are stored in flat data structures (referred to as *buckets*) alongside their own rich metadata. - -Due to the nature of Object Storage, it does not require the use of a Compute Instance. Instead, Object Storage gives each object a unique URL with which you can access the data. An object can be publicly accessible, or you can set it to be private and only visible to you. This makes Object Storage great for sharing and storing unstructured data like images, documents, archives, streaming media assets, and file backups, and the amount of data you store can range from small collections of files up to massive libraries of information. - -## Features - -### S3 Compatible - -Linode Object Storage is a globally-available, S3 Compatible storage solution, maintaining the same performance as your data grows. - -### No Compute Instance Required - -Object storage does not require the use of a Compute Instance. Instead, Object Storage gives each object a unique URL which you can use to access your data. - -### Host Static Sites - -Using Object Storage to host your static site files means you do not have to worry about maintaining your site’s infrastructure. It is no longer necessary to perform typical server maintenance tasks, like software upgrades, web server configuration, and security upkeep. See [Deploy a Static Site using Hugo and Object Storage](/docs/guides/host-static-site-object-storage/). - -## Availability - -Object Storage is available within the following data centers. For a full list of specifications for each region, review the [Technical Specifications](#specifications). - -{{< table >}} -| Data Center | Cluster ID | -| -- | -- | -| Amsterdam (Netherlands)\* | `nl-ams-1` | -| Atlanta, GA (USA) | `us-southeast-1` | -| Chennai (India)\* | `in-maa-1` | -| Chicago, IL (USA)\* | `us-ord-1` | -| Frankfurt (Germany) | `eu-central-1` | -| Jakarta (Indonesia)\* | `id-cgk-1` | -| Los Angeles, CA (USA)\* | `us-lax-1` | -| Madrid (Spain)\* | `es-mad-1` | -| Miami, FL (USA)\* | `us-mia-1` | -| Milan (Italy)\* | `it-mil-1` | -| Newark, NJ (USA) | `us-east-1` | -| Osaka (Japan)\* | `jp-osa-1` | -| Paris (France)\* | `fr-par-1` | -| São Paulo (Brazil)\* | `br-gru-1` | -| Seattle, WA (USA)\* | `us-sea-1` | -| Singapore | `ap-south-1` | -| Stockholm (Sweden)\* | `se-sto-1` | -| Washington, DC (USA)\* | `us-iad-1` | -{{< /table >}} - -\**Higher capacity regions. These data centers offer increased capacity and are ideal for large enterprise workloads.* - -Object Storage deployments in each data center are assigned a cluster ID. These are used when [formatting URLs](/docs/products/storage/object-storage/guides/urls/) and integrating Object Storage with tools such as the [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/), [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/), [s4cmd](/docs/products/storage/object-storage/guides/s4cmd/), and [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/). - -## Pricing - -Linode Object Storage costs a flat rate of $5 a month, and includes 250 gigabytes of storage. This flat rate is prorated, so if you use Object Storage for a fraction of the month you are charged a fraction of the cost. For example, if you have Object Storage enabled for half of the month and use up to 250 gigabytes of storage you are billed $2.50 at the end of the month. The default cost of storage per gigabyte over the first 250 gigabytes is $0.02, and this usage is also prorated based on usage time. - -Storage and network transfer overages for Object Storage vary by data center due to regional infrastructure costs. The below table includes overage costs for different data centers where Object Storage is available: - -{{< table >}} -| Data Center | Storage overage per GB above 250 GB | Network Transfer overage cost | -| :-- | -- | -- | -| All data centers (except those listed below) | $0.02/GB | $0.005/GB | -| Jakarta, Indonesia | $0.024/GB | $0.015/GB | -| São Paulo, Brazil | $0.028/GB | $0.007/GB | -{{< /table >}} - -{{% content "object-storage-cancellation-shortguide" %}} - -## Technical Specifications and Considerations {#specifications} - -The table below outlines default Object Storage limits. Limits apply **per region, per account**, unless otherwise specified. - -{{< table >}} -| Resource | Limit | -| -- | -- | -| Maximum storage | 100 TB (Up to 1,000 TB by request)* | -| Maximum number of objects | 100 million (Up to 1 billion by request)* | -| Maximum number of buckets | 1,000 buckets | -| Maximum file upload size | 5 GB (5 TB with multipart uploads) | -| Rate limit (per bucket) | 750 requests per second | -{{< /table >}} - -*Limit varies by region. Data centers with exceptions to the default bucket limits are listed in the table below: - -{{< table >}} -| Data Center | Max Storage
per account, per region | Max # of objects
per account, per region | -| -- | -- | -- | -| Atlanta, GA (USA) | 5 TB | 50 million | -| Frankfurt (Germany) | 5 TB | 50 million | -| Newark, NJ (USA) | 5 TB | 50 million | -| Singapore | 5 TB | 50 million | -{{< /table >}} - -If your workloads require additional storage or need to accommodate more objects, [contact the Support team](https://www.linode.com/support/) with your request. Be sure to include any details related to your application and requirements. Among other factors, the total capacity of the region is considered when processing a limit increase request. For larger enterprise workloads, consider using one of the data centers designated as *higher capacity* (see [Availability](#availability)). - -### Network Transfer - -- 40 Gbps inbound network bandwidth -- Free inbound network transfer -- Metered outbound network transfer, including traffic to other Linode services within the same data center (over both public IPv4 and IPv6 addresses) -- When enabling Object Storage on your account, 1 TB (prorated) of transfer allowance per month is added to your **global network transfer pool** - -See the [Network Transfer Usage and Costs](/docs/products/platform/get-started/guides/network-transfer/) guide for additional details, including costs for network transfer overages. - -{{< note >}} -If creating a bucket in our **Jakarta** or **São Paulo** data centers, note that no additional transfer is added to their region-specific transfer pools. -{{< /note >}} - -### Optimizing Applications to Avoid Rate Limiting -The rate limit for the number of Requests Per Second (RPS) applies to a bucket and is evaluated against each bucket once per second. If the duration of any request is greater than one second, any open requests will count against the rate limit in the next one second window. - -For example, assume there are 750 requests for a single bucket with a duration of two seconds each. All of the requests that do not complete within the first second will count against the rate limit in the next second. With a rate limit of 750 requests per second for the bucket, no additional requests can be processed within the two second window until the first 750 requests complete. Any requests that are rate limited will receive a 503 response. - -To help avoid rate limiting you can structure your data across multiple buckets, each of which will have its own rate limit. - -### Additional Limits and Specifications - -- **Upload file size limit:** 5 GB. The maximum upload size of a single object is *5 GB*, though this can easily be overcome by using multi-part uploads. Both [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/) and [cyberduck](/docs/products/storage/object-storage/guides/cyberduck/) will do this for you automatically if a file exceeds this limit as part of the uploading process. -- **Restricted characters:** Objects uploaded to object storage cannot contain the following special characters when using Cloud Manager or the Linode CLI: `" ' < > & + =`. diff --git a/docs/products/storage/object-storage/_shortguides/object-storage-cancellation-shortguide/index.md b/docs/products/storage/object-storage/_shortguides/object-storage-cancellation-shortguide/index.md deleted file mode 100644 index 9434be8eeee..00000000000 --- a/docs/products/storage/object-storage/_shortguides/object-storage-cancellation-shortguide/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: A notice that billing for Object Storage continues until the service is cancelled even if there are no active buckets on the account. - -headless: true -show_on_rss_feed: false ---- - -{{< note type="alert" >}} -Object Storage is similar to a subscription service. **Once enabled, you will be billed at the flat rate regardless of whether or not there are active buckets on your account.** You must [Cancel Object Storage](/docs/products/storage/object-storage/guides/cancel/) to stop billing for this service. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/object-storage/_shortguides/object-storage-character-warning-shortguide/index.md b/docs/products/storage/object-storage/_shortguides/object-storage-character-warning-shortguide/index.md deleted file mode 100644 index 605d44d3007..00000000000 --- a/docs/products/storage/object-storage/_shortguides/object-storage-character-warning-shortguide/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: A warning for adding objects with special characters in their filenames or directories. - -headless: true -show_on_rss_feed: false ---- - -{{< note >}} -Uploading or renaming objects using non-standard special characters and unusual ASCII/Unicode characters may cause issues. This includes the characters: `: " ' < > & + =`. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/object-storage/_shortguides/object-storage-cluster-shortguide/index.md b/docs/products/storage/object-storage/_shortguides/object-storage-cluster-shortguide/index.md deleted file mode 100644 index 8cfe197a153..00000000000 --- a/docs/products/storage/object-storage/_shortguides/object-storage-cluster-shortguide/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: Displays the definition of an Object Storage cluster. - -headless: true -show_on_rss_feed: false ---- - -{{< note >}} -A *cluster* is defined as all buckets hosted by a unique URL; for example: `us-east-1.linodeobjects.com`, `ap-south-1.linodeobjects.com`, or `eu-central-1.linodeobjects.com`. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/object-storage/_shortguides/object-storage-ga-shortguide/index.md b/docs/products/storage/object-storage/_shortguides/object-storage-ga-shortguide/index.md deleted file mode 100644 index b63fea35d7e..00000000000 --- a/docs/products/storage/object-storage/_shortguides/object-storage-ga-shortguide/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: Object Storage General Availability Notice - -headless: true -show_on_rss_feed: false ---- - -{{< note >}} -Linode's Object Storage is available in our Atlanta (USA), Frankfurt (Germany), Newark (USA), and Singapore data centers. For more availability details and billing information, see the [Object Storage Overview](/docs/products/storage/object-storage/) product documentation. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/object-storage/developers/index.md b/docs/products/storage/object-storage/developers/index.md deleted file mode 100644 index f914853beac..00000000000 --- a/docs/products/storage/object-storage/developers/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Object Storage" -description: "Use the Linode API or CLI to manage Linode Object Storage." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [Object Storage Endpoint Collection](/docs/api/object-storage) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. [Learn how to use the Linode CLI](/docs/products/tools/cli/guides/object-storage/). diff --git a/docs/products/storage/object-storage/feature.png b/docs/products/storage/object-storage/feature.png deleted file mode 100644 index 00f3dff4436..00000000000 Binary files a/docs/products/storage/object-storage/feature.png and /dev/null differ diff --git a/docs/products/storage/object-storage/feature.svg b/docs/products/storage/object-storage/feature.svg deleted file mode 100644 index 6fe6751f653..00000000000 --- a/docs/products/storage/object-storage/feature.svg +++ /dev/null @@ -1,5 +0,0 @@ - - Object Storage - - - \ No newline at end of file diff --git a/docs/products/storage/object-storage/get-started/index.md b/docs/products/storage/object-storage/get-started/index.md deleted file mode 100644 index 3bd99bd0f3e..00000000000 --- a/docs/products/storage/object-storage/get-started/index.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with Object Storage" -description: "Get Started with Linode Object Storage. Learn how to enable Object Storage, create an Object Storage key pair, create a bucket, upload an object to a bucket, and cancel Object Storage." -tab_group_main: - weight: 20 -aliases: ['/platform/object-storage/how-to-use-object-storage/','/guides/how-to-use-object-storage/'] ---- - -## Enable Object Storage - -Object Storage is not enabled for a Linode account by default. All that is required to enable Object Storage is to create a bucket or an Object Storage access key. To cancel Object Storage, see the [Cancel Object Storage](/docs/products/storage/object-storage/guides/cancel/) guide. - -{{< note >}} -Billing for Object Storage starts when it is enabled on your account, **regardless of how it is enabled**. For example, if you enable the service by creating an access key, but you have not yet created a bucket, the $5 monthly flat rate (prorated) for Object Storage is charged for your account. [Cancel Object Storage](/docs/products/storage/object-storage/guides/cancel/) to stop further billing. -{{< /note >}} - -## Generate an Access Key - -1. Test - Log into the [Linode Cloud Manager](https://cloud.linode.com). - - {{< note >}} - Object Storage is not available in the Linode Classic Manager. - {{< /note >}} - -1. Click on the **Object Storage** link in the sidebar, click the **Access Keys** tab, and then click the **Create an Access Key** link. - -1. A prompt appears asking you to confirm that you'd like to enable Object Storage. Click **Enable Object Storage**. - -1. The **Create an Access Key** menu appears. - -1. Enter a label for the key pair. This label is how you reference your key pair in the Linode Cloud Manager. Then, click **Submit**. - -1. Select at least one region. You can select multiple regions for your access key. - -2. A window appears that contains your access key and your secret key. Write these down somewhere secure. The access key is visible in the Linode Cloud Manager, but **you are not able to retrieve your secret key again once you close the window.** - -3. You now have the credentials needed to connect to Linode Object Storage. - -## Create a Bucket - -Cloud Manager provides a web interface for creating buckets. To create a bucket: - -1. If you have not already, log in to the [Linode Cloud Manager](https://cloud.linode.com). - -1. Click on the **Object Storage** link in the sidebar, and then click on **Create Bucket**. - - {{< note >}} - If you have not created an access key or a bucket before, you are prompted to enable Object Storage. - {{< /note >}} - -1. The **Create a Bucket** menu appears. - -1. Add a label for your bucket. See the [Bucket Name](/docs/products/storage/object-storage/guides/manage-buckets/#create-a-bucket) section for rules on naming your bucket. - -1. Choose a cluster location for the bucket to reside in. - - {{% content "object-storage-cluster-shortguide" %}} - -1. Click **Submit**. You are now ready to [upload objects to your bucket](#upload-objects-to-a-bucket). - -## Upload an Object to a Bucket - -1. If you have not already, log in to the [Linode Cloud Manager](https://cloud.linode.com). - -1. Click on the **Object Storage** link in the sidebar. A list of all your buckets appears. Click on the bucket you'd like to begin uploading objects to. - -1. Your bucket's **Objects Listing Page** appears. In the example, the *my-example-bucket* does not yet contain any objects. You can use the **Upload Files Pane** to drag and drop a file from your computer to your object storage bucket. - - {{< note >}} - You can drag and drop multiple files to the **Upload Files Pane** at one time. - {{< /note >}} - - You can also click on the **Browse Files** button to bring up your computer's file browser and select a file to upload to your bucket. - -1. When the upload has completed, your object is visible on the **Objects Listing Page**. - - {{< note >}} - Individual object uploads are limited to a size of 5GB each, though larger object uploads can be facilitated with multipart uploads. [s3cmd](#s3cmd) and [cyberduck](#cyberduck) do this for you automatically if a file exceeds this limit as part of the uploading process. - {{< /note >}} - - {{< note >}} - You can add an *AbortIncompleteMultipartUpload* lifecycle policy to the buckets to automatically abort unfinished multipart uploads after a certain amount of time. For more information about adding the *AbortIncompleteMultipartUpload* lifecycle policy, see [Additional Actions] (/docs/guides/how-to-manage-objects-with-lifecycle-policies/#additional-actions). - {{< /note >}} - -## Control Permissions with ACLs and Bucket Policies - -Linode Object Storage allows users to share access to objects and buckets with other Object Storage users. There are two mechanisms for setting up sharing: *Access Control Lists (ACLs)*, and *bucket policies*. These mechanisms perform similar functions: both can be used to restrict and grant access to Object Storage resources. ACLs can also restrict or grant access to *individual objects*, but they don't offer as many fine-grained access modes as bucket policies. - -- [ACLs (Access Control Lists)](/docs/products/storage/object-storage/guides/acls/) - -- [Bucket Policies](/docs/products/storage/object-storage/guides/bucket-policies/) - -If you can organize objects with similar permission needs into their own buckets, then it's strongly suggested that you use bucket policies. However, if you cannot organize your objects in this fashion, ACLs are still a good option. - -ACLs offer permissions with less fine-grained control than the permissions available through bucket policies. If you are looking for more granular permissions beyond read and write access, choose bucket policies over ACLs. - -Additionally, bucket policies are created by applying a written bucket policy file to the bucket. This file cannot exceed 20KB in size. If you have a policy with a lengthy list of policy rules, you may want to look into ACLs instead. - -{{< note >}} -ACLs and bucket policies can be used at the same time. When this happens, any rule that limits access to an Object Storage resource overrides a rule that grants access. For instance, if an ACL allows a user access to a bucket, but a bucket policy denies that user access, the user can not access that bucket. -{{< /note >}} - -## Object Storage Tools - -There are a number of tools that are available to help manage Linode Object Storage. This guide explains how to install and use the following options: - -- The [Linode Cloud Manager](/docs/products/storage/object-storage/guides/) can be used to create buckets, and upload and delete objects, as well as create access keys for use with the S3 compatible clients. - -- The [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/) has an Object Storage plugin and can be used to create and remove buckets, add and remove objects, and convert a bucket into a static site from the command line. - -- [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/) is a powerful command line utility that can be used with any S3-compatible object storage service, including Linode's. s3cmd can be used to create and remove buckets, add and remove objects, convert a bucket into a static site from the command line, plus other functions like syncing entire directories up to a bucket. - -- [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/) is a graphical utility available for Windows and macOS and is a great option if you prefer a GUI tool. diff --git a/docs/products/storage/object-storage/guides/_index.md b/docs/products/storage/object-storage/guides/_index.md deleted file mode 100644 index 592e723cf44..00000000000 --- a/docs/products/storage/object-storage/guides/_index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Object Storage" -description: "Find guides on Linode Object Storage management, hosting a static site on Object Storage, access and permissions, and other related topics." -tab_group_main: - weight: 30 -tags: ["education","media"] ---- - -## Basics - -- [Create and Manage Buckets](/docs/products/storage/object-storage/guides/manage-buckets/): Buckets are the primary containers within Object Storage. Learn how to view, create, and delete buckets through Cloud Manager. - -- [Upload and Manage Files (Objects)](/docs/products/storage/object-storage/guides/manage-files/): Learn how to view, upload, download, and delete objects through Cloud Manager. - -- [Manage Access Keys](/docs/products/storage/object-storage/guides/access-keys/): Access keys enable you to access Object Storage through other tools and your own applications. Learn how to generate and manage these in Cloud Manager. - -- [Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/): Every bucket and file can be accessed by a unique URL. Learn how to obtain these URLs. - -- [Configure a Custom Domain (with a TLS/SSL Certificate)](/docs/products/storage/object-storage/guides/custom-domain/): Linode's Object Storage supports accessing buckets and objects through a custom domain. Learn how to configure a custom domain with a TLS/SSL certificate. - -- [Cancel Object Storage](/docs/products/storage/object-storage/guides/cancel/): Learn how to cancel the Object Storage service from Cloud Manager. - -- [Object Storage Use Cases](/docs/products/storage/object-storage/guides/use-cases/): Information on the benefits and common use cases of Linode's Object Storage service. - -## Set Permissions and Access Controls - -- [ACLs (Access Control Lists)](/docs/products/storage/object-storage/guides/acls/): Information on ACLs and how to use them to set permissions on Object Storage resources. - -- [Bucket Policies](/docs/products/storage/object-storage/guides/bucket-policies/): Information on bucket policies and how to use them to set permissions on Object Storage resources. - -- [Find the Canonical User ID for an Account](/docs/products/storage/object-storage/guides/find-canonical-id/): Learn how to find the canonical user ID for an account. - -## Advanced Management - -- [Versioning (Retain Object Version History)](/docs/products/storage/object-storage/guides/versioning/): Discover how to enable and manage versioning within Object Storage. - -- [Lifecycle Policies](/docs/products/storage/object-storage/guides/lifecycle-policies/): Learn how to define policies to manage the lifecycle and retention history of objects. - -## Clients and Tools - -Guides for using Object Storage with various clients and command-line tools: - -- [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/): An easy to use command-line tool for use with Linode's own services. -- [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/): One of the most common command-line tools for interacting with S3-compatible object storage solutions, including Linode Object Storage. -- [s4cmd](/docs/products/storage/object-storage/guides/s4cmd/): A faster alternative to the s3cmd command-line tool. -- [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/): A cross-platform graphical interface for interacting with various cloud storage services. - -## AWS Tooling - -Guides for using Object Storage with various AWS SDKs: - -- [AWS CLI](/docs/products/storage/object-storage/guides/aws-cli/) -- [AWS SDK for Python (boto3)](/docs/products/storage/object-storage/guides/aws-sdk-for-python/) -- [AWS SDK for PHP](/docs/products/storage/object-storage/guides/aws-sdk-for-php/) - -## Going Further - -These additional guides explore targeted topics like setting up a static site and managing access and permissions for your buckets and objects: - -- [Deploy a Static Site using Hugo and Object Storage](/docs/guides/host-static-site-object-storage/) \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/access-keys/access-keys-display-after-creation.png b/docs/products/storage/object-storage/guides/access-keys/access-keys-display-after-creation.png deleted file mode 100644 index 1a1acad77bf..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/access-keys-display-after-creation.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/access-keys/access-keys-limited-access-switch.png b/docs/products/storage/object-storage/guides/access-keys/access-keys-limited-access-switch.png deleted file mode 100644 index e2de0d92994..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/access-keys-limited-access-switch.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/access-keys/access-keys-list.png b/docs/products/storage/object-storage/guides/access-keys/access-keys-list.png deleted file mode 100644 index 36a27b952d2..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/access-keys-list.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/access-keys/access-keys-revoke.png b/docs/products/storage/object-storage/guides/access-keys/access-keys-revoke.png deleted file mode 100644 index edae55c5f94..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/access-keys-revoke.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/access-keys/create-access-key.jpg b/docs/products/storage/object-storage/guides/access-keys/create-access-key.jpg deleted file mode 100644 index b7aa165e33e..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/create-access-key.jpg and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/access-keys/index.md b/docs/products/storage/object-storage/guides/access-keys/index.md deleted file mode 100644 index 22371cf94cf..00000000000 --- a/docs/products/storage/object-storage/guides/access-keys/index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: "Manage Access Keys" -description: "How to create an Access Key for use with Linode Object Storage." -published: 2021-05-28 -modified: 2024-06-17 -keywords: ['object storage'] -aliases: ['/products/storage/object-storage/guides/generate-key-pair/','/products/storage/object-storage/guides/generate-access-keys/'] ---- - -To start integrating Object Storage with your own applications, you need to create an *access key*. The access key provides access to buckets (and objects stored within those buckets). You can create many access keys, allowing you to create a unique one for each application or user. When an application or user no longer requires access, you can revoke that access key without affecting any other application. - -When an access key is generated, a corresponding *secret key* is also created. This secret key is used in tandem with the access key to authenticate connections. The secret key should not be shared. - -## View Access Keys - -1. Log in to [Cloud Manager](https://cloud.linode.com). - -1. Select the **Object Storage** link in the sidebar and navigate to the **Access Keys** tab. - -![Viewing a list of access keys in Cloud Manager](view-access-keys.jpg) - -This page displays a list of all the access keys added to your Object Storage account. It also shows the S3 endpoint hostname. The S3 endpoint hostname is different for each region and is displayed when the you create an access key. - -From here, you can create a new access key. You can also click the ellipsis to: -- Edit the access key labels and the regions list. -- View the permissions. -- Revoke access (which deletes the access key). - -## Create an Access Key - -To use Object Storage with any compatible client or command-line tool, you'll need to generate an Access Key. This can be done directly in Cloud Manager. - -1. Navigate to the **Access Keys** page in Cloud Manager (see [View Access Keys](#view-access-keys)). - -1. Click the **Create Access Key** button, which displays the **Create Access Key** panel. - -1. Enter a label for the access key. This label is how you reference the access key in Cloud Manager and any S3 compatible client. - -1. Select at least one Region. You can select multiple regions for your access key. - -1. Toggle the **Limited Access** switch if you wish to only provide access to certain buckets. This lets you limit the permissions for the new access key on a per-bucket level. See [Access Key Permissions](#permissions) for more details. - - ![The limited access switch](create-access-key.jpg) - -1. Click the **Create Access Key** button to create the access key. A dialog box appears that displays the new access key and its secret key. While the access key is always visible within Cloud Manager, its corresponding secrete key is only visible once and cannot be retrieved again after this window is closed. Store this secret key somewhere secure, such as a password manager. - - ![The access key and secret key displayed within Cloud Manager](secret-key.jpg) - -You now have the credentials needed to connect to Object Storage. - -## Revoke Access Key - -Revoking an access key removes it from your account and no longer provides access to applications that may have used it. You may wish to do this when decommissioning an application, ending a project with a third party developer, or any other situation where an access key is no longer needed. - -1. Navigate to the **Access Keys** page in Cloud Manager (see [View Access Keys](#view-access-keys)). - -1. Locate the access key you wish to remove and click the corresponding **Revoke** button. - - ![Select the 'Revoke' button](access-keys-revoke.png ) - - -1. A confirmation dialog appears. Click the **Revoke** button to immediately revoke the access key. - -## Permissions - -By default, an Access Key is unrestricted and has full access to all Buckets on an account. When creating an Access Key, you can enable **Limited Access** and set more granular permissions for each Bucket. These permissions include **None**, **Read**, and **Read/Write**: - -{{< note >}} -Regardless of permissions, all access keys can create new buckets and list all buckets. However, after creating a bucket, depending on what you select here, a limited access key may not be able to access those buckets, add items, remove items, and other actions. -{{< /note >}} - -- **None**: Restricts all access to the specified Bucket. This Access Key will still be able to view the Bucket in the list of all Buckets, but will otherwise be unable to access any objects stored within it. - -- **Read** (`read_only`): Access keys with **Read** permissions are able to list and retrieve most information about the specified Bucket and objects stored in that Bucket. Technically, **read** permissions provide access to the following s3 actions (which are used by all s3-compatible clients and tools): - - > *GetBucketAcl, GetBucketCORS, GetBucketLocation, GetBucketLogging, GetBucketNotification, GetBucketPolicy, GetBucketTagging, GetBucketVersioning, GetBucketWebsite, GetLifecycleConfiguration, GetObjectAcl, GetObject, GetObjectTorrent, GetReplicationConfiguration, GetObjectVersionAcl, GetObjectVersion, GetObjectVersionTorrent, ListBucketMultipartUploads, ListBucket, ListBucketVersions, ListMultipartUploadParts* - -- **Read/Write** (`read_write`): Access keys with **Read/Write** permissions can list, retrieve, add, delete, and modify most information and objects stored within the specified Bucket. Technically, **read/write** permissions provide access to all of the same s3 actions as **read** permissions, as well as the following: - - > *AbortMultipartUpload, DeleteBucketWebsite, DeleteObject, DeleteObjectVersion, DeleteReplicationConfiguration, PutBucketCORS, PutBucketLogging, PutBucketNotification, PutBucketTagging, PutBucketVersioning, PutBucketWebsite, PutLifecycleConfiguration, PutObject, PutObjectAcl, PutObjectVersionAcl, PutReplicationConfiguration, RestoreObject* - -A full list of s3 actions is available on [Amazon's S3 API Reference](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_Amazon_Simple_Storage_Service.html) documentation. diff --git a/docs/products/storage/object-storage/guides/access-keys/object-storage-enable-object-storage.png b/docs/products/storage/object-storage/guides/access-keys/object-storage-enable-object-storage.png deleted file mode 100644 index c7003f3c88b..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/object-storage-enable-object-storage.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/access-keys/secret-key.jpg b/docs/products/storage/object-storage/guides/access-keys/secret-key.jpg deleted file mode 100644 index d936a4db0bd..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/secret-key.jpg and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/access-keys/view-access-keys.jpg b/docs/products/storage/object-storage/guides/access-keys/view-access-keys.jpg deleted file mode 100644 index 68024d9382a..00000000000 Binary files a/docs/products/storage/object-storage/guides/access-keys/view-access-keys.jpg and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-bucket-access-menu.png b/docs/products/storage/object-storage/guides/acls/acl-bucket-access-menu.png deleted file mode 100644 index 47084b5bcf5..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-bucket-access-menu.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-bucket-access-page.png b/docs/products/storage/object-storage/guides/acls/acl-bucket-access-page.png deleted file mode 100644 index f741775e9b8..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-bucket-access-page.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-bucket-access-save.png b/docs/products/storage/object-storage/guides/acls/acl-bucket-access-save.png deleted file mode 100644 index 5cdab367771..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-bucket-access-save.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-bucket-detail-page.png b/docs/products/storage/object-storage/guides/acls/acl-bucket-detail-page.png deleted file mode 100644 index b14800b9321..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-bucket-detail-page.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-object-detail-select-menu.png b/docs/products/storage/object-storage/guides/acls/acl-object-detail-select-menu.png deleted file mode 100644 index 018a6fb936d..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-object-detail-select-menu.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-object-menu-options.png b/docs/products/storage/object-storage/guides/acls/acl-object-menu-options.png deleted file mode 100644 index f5a13261105..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-object-menu-options.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-object-panel-save.png b/docs/products/storage/object-storage/guides/acls/acl-object-panel-save.png deleted file mode 100644 index e985832ba2b..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-object-panel-save.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-object-panel.png b/docs/products/storage/object-storage/guides/acls/acl-object-panel.png deleted file mode 100644 index 6a9c20c31ee..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-object-panel.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-s3cmd-custom-setting-cloud-manager.png b/docs/products/storage/object-storage/guides/acls/acl-s3cmd-custom-setting-cloud-manager.png deleted file mode 100644 index d1dd875678a..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-s3cmd-custom-setting-cloud-manager.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/acl-select-bucket.png b/docs/products/storage/object-storage/guides/acls/acl-select-bucket.png deleted file mode 100644 index 9a4f174e3f8..00000000000 Binary files a/docs/products/storage/object-storage/guides/acls/acl-select-bucket.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/acls/index.md b/docs/products/storage/object-storage/guides/acls/index.md deleted file mode 100644 index 5b43c979b9c..00000000000 --- a/docs/products/storage/object-storage/guides/acls/index.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: "Define Access and Permissions using ACLs (Access Control Lists)" -description: "Learn how to use ACLs to set permissions and access controls within Object Storage" -published: 2019-12-16 -modified: 2022-03-11 -aliases: ['/platform/object-storage/how-to-use-object-storage-acls-and-bucket-policies/', '/guides/how-to-use-object-storage-acls-and-bucket-policies/'] ---- - -Access Control Lists (ACLs) are a method of defining access to Object Storage resources. You can apply ACLs to both buckets and objects, giving users access and controlling their permission level. There are two generalized modes of access: setting buckets and/or objects to be private or public. A few other more granular settings are also available; [Cloud Manager](#granular-permissions-for-cloud-manager) and [s3cmd](#granular-permissions-for-s3cmd) sections provide information on these respective settings. - -## ACLs in Cloud Manager - -### Granular Permissions for Cloud Manager - -| Level | Permission | Description | -| ----- | ---------- | ----------- | -| Bucket | Private | Only you can list, create, overwrite, and delete Objects in this Bucket. *Default* | -| Bucket | Authenticated Read | All authenticated Object Storage users can list Objects in this Bucket, but only you can create, overwrite, and delete them. | -| Bucket | Public Read | Everyone can list Objects in this Bucket, but only you can create, overwrite, and delete them. | -| Bucket | Public Read/Write | Everyone can list, create, overwrite, and delete Objects in this Bucket. *This is not recommended.* | -| Object | Private | Only you can download this Object. *Default* | -| Object | Authenticated Read | All authenticated Object Storage users can download this Object. | -| Object | Public Read | Everyone can download this Object. | - -### Bucket Level ACLs in Cloud Manager - -{{< note >}} -Existing buckets and any new bucket created in Cloud Manager have a default ACL permission setting of Private. -{{< /note >}} - -1. If you have not already, log in to the [Linode Cloud Manager](https://cloud.linode.com). - -1. Click the **Object Storage** link in the sidebar, and then click on the bucket you wish to edit the ACLs for. - - ![Select an Object Storage Bucket](acl-select-bucket.png "Select an Object Storage Bucket") - -1. The Object Storage Bucket detail page appears. Click the **Access** tab. - - ![Object Storage Bucket Detail Page](acl-bucket-detail-page.png "Object Storage Bucket Detail Page") - -1. The Object Storage Bucket Access Page appears. - - ![Object Storage Bucket Access Page](acl-bucket-access-page.png "Object Storage Bucket Access Page") - -1. On this page you can select the ACL for this bucket as well as enable CORS. - - {{< note >}} - CORS is enabled by default on all existing buckets and on all new buckets. - {{< /note >}} - -1. Select the ACL for this bucket from the dropdown menu. - - ![Object Storage Bucket Access Menu](acl-bucket-access-menu.png "Object Storage Bucket Access Menu") - -1. Click the **Save** button to save these settings to the bucket. - - ![Object Storage Bucket Access Page Save Settings](acl-bucket-access-save.png "Object Storage Bucket Access Page Save Settings") - -### Object Level ACLs in Cloud Manager - -{{< note >}} -Existing objects and any new objects created in Cloud Manager have a default ACL permission setting of Private. -{{< /note >}} - -1. If you have not already, log in to the [Linode Cloud Manager](https://cloud.linode.com). - -1. Click the **Object Storage** link in the sidebar, and then click on the bucket that holds the objects that you wish to edit the ACLs for. - - ![Select an Object Storage Bucket](acl-select-bucket.png "Select an Object Storage Bucket") - -1. The Object Storage Bucket detail page appears and displays all the objects in your bucket. - -1. Next to the object you wish to edit the ACL settings for, click the ***more options ellipsis*** and select **Details** from the drop down menu that appears. - - ![Object Storage Object Detail Menu](acl-object-detail-select-menu.png "Object Storage Object Detail Menu") - -1. The Object ACL panel opens. - - ![Object Storage Object ACL Panel](acl-object-panel.png "Object Storage Object ACL Panel") - -1. Select the ACL you wish to set for this object from the dropdown menu. - - ![Object Storage Object ACL Menu Options](acl-object-menu-options.png "Object Storage Object ACL Menu Options") - -1. Click the **Save** button. The panel closes and the ACL is applied to the object. - - ![Object Storage Object ACL Save Settings](acl-object-panel-save.png "Object Storage Object ACL Save Settings") - -## ACLs with s3cmd - -With s3cmd, you can set a bucket to be public with the `setacl` command and the `--acl-public` flag: - - s3cmd setacl s3://acl-example --acl-public - -This causes the bucket and its contents to be downloadable over the public Internet. - -To set an object or bucket to private, you can use the `setacl` command and the `--acl-private` flag: - - s3cmd setacl s3://acl-example --acl-private - -This prevents users from accessing the bucket's contents over the public Internet. - -### Granular Permissions for s3cmd - -The more granular permissions are: - -|Permission|Description| -|-----|-----------| -|**read**| Users with can list objects within a bucket| -|**write**| Users can upload objects to a bucket and delete objects from a bucket.| -|**read_acp**| Users can read the ACL currently applied to a bucket.| -|**write_acp**| Users can change the ACL applied to the bucket.| -|**full_control**| Users have read and write access over both objects and ACLs.| - -**Setting a permission:** To apply granular permissions for a specific user with s3cmd, use the following `setacl` command with the `--acl-grant` flag: - - s3cmd setacl s3://acl-example --acl-grant=PERMISSION:CANONICAL_ID - -Substitute `acl-example` with the name of the bucket (and the object, if necessary), `PERMISSION` with a permission from the above table, and `CANONICAL_ID` with the canonical ID of the user to which you would like to grant permissions. See [Find the Canonical User ID for an Account](/docs/products/storage/object-storage/guides/find-canonical-id/) for details on finding the canonical ID. - -**Revoking a permission:** To revoke a specific permission, you can use the `setacl` command with the `acl-revoke` flag: - - s3cmd setacl s3://acl-example --acl-revoke=PERMISSION:CANONICAL_ID - -Substitute the bucket name (and optional object), `PERMISSION`, and `CANONICAL_ID` with your relevant values. - -**View current ACLs:** To view the current ACLs applied to a bucket or object, use the `info` command, replacing `acl-example` with the name of your bucket (and object, if necessary): - - s3cmd info s3://acl-example - -You should see output like the following: - -```output -s3://acl-bucket-example/ (bucket): - Location: default - Payer: BucketOwner - Expiration Rule: none - Policy: none - CORS: b'<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><CORSRule><AllowedMethod>GET</AllowedMethod><AllowedMethod>PUT</AllowedMethod><AllowedMethod>DELETE</AllowedMethod><AllowedMethod>HEAD</AllowedMethod><AllowedMethod>POST</AllowedMethod><AllowedOrigin>*</AllowedOrigin><AllowedHeader>*</AllowedHeader></CORSRule></CORSConfiguration>' - ACL: *anon*: READ - ACL: a0000000-000a-0000-0000-00d0ff0f0000: FULL_CONTROL - URL: http://us-east-1.linodeobjects.com/acl-example/ -``` - -{{< note >}} -The owner of the bucket always has the `full_control` permission. -{{< /note >}} - -{{< note >}} -If you set an ACL that does not map to an ACL in Cloud Manager, Cloud Manager displays this as `Custom`. - -![Custom ACL Setting Displayed in Cloud Manager](acl-s3cmd-custom-setting-cloud-manager.png "Custom ACL Setting Displayed in Cloud Manager") -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/aws-cli/index.md b/docs/products/storage/object-storage/guides/aws-cli/index.md deleted file mode 100644 index c5b786bcd3d..00000000000 --- a/docs/products/storage/object-storage/guides/aws-cli/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Using the AWS CLI with Object Storage" -description: "Learn how to use the AWS CLI with Linode's S3-compatible Object Storage." -date: 2022-03-11 ---- - -Amazon's [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) is a command-line tool that can be used to interface with Linode's Object Storage service. - -{{< note >}} -This instructions within this guide use AWS CLI version 2. Earlier versions may not work. If you are using version 1 (or earlier), you may want to uninstall it before continuing. See [Installing, updating, and uninstalling the AWS CLI (version 1)](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-install.html). -{{< /note >}} - -## Install the AWS CLI - -Installing the AWS CLI version 2 is typically accomplished by downloading a package for your operating system and installing that package. Since there is not currently an official way to do this through a package manager, you must download the package manually. To do this, follow the instructions for your operating system on the [Installing or updating the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) guide. - -## Configure the AWS CLI - -1. Run the following command in your preferred terminal: - - aws configure - -1. You are then prompted to fill out a few parameters: - - - **AWS Access Key ID:** Enter the access key you wish to use. See [Managing Access Keys](/docs/products/storage/object-storage/guides/access-keys/). - - **AWS Secret Access Key:** Enter the secret key that corresponds with the access key. This was displayed once when generating the access key. - - **Default region name:** Press enter without inputting any characters to keep the default `us` region. Do not change this, even if you use Object Storage in region outside the U.S. - - **Default output format:** Press enter without inputting any characters. - -See the following guides from AWS for more details configuring the CLI: [Quick Setup](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html) and [Configuring the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). - -## Additional Parameters for AWS CLI Commands - -- **Endpoint URL:** When using the AWS CLI with a non-AWS service, like Linode's Object Storage, you must always specify the endpoint url in each command. This is done through the `--endpoint` parameter. When using the commands in this guide, always replace *[endpoint-url]* with the cluster URL that corresponds with the data center you're using (see [Cluster URL (S3 endpoint)](/docs/products/storage/object-storage/guides/urls/#cluster-url-s3-endpoint)). - -## Interacting with Buckets - -### List Buckets - -List all buckets within the data center specified during the configuration process. - -**Command:** `aws s3 ls --endpoint=[endpoint-url]`, replacing *[endpoint-url]* - -**Example**: List all buckets on the account within the Atlanta data center: - - aws s3 ls --endpoint=https://us-southeast-1.linodeobjects.com - -### Create a Bucket - -Creates a bucket with the specified bucket label. See the [Create and Manage Buckets](/docs/products/storage/object-storage/guides/manage-buckets/#create-a-bucket) guide for rules on naming the bucket. - -**Command:** `aws s3 mb s3://[bucket-label] --endpoint=[endpoint-url] --region=us-east-1`, replacing *[bucket-label]* with the label you'd like to use for the new bucket. - -**Example:** Create a bucket with the label of "example-bucket" in the Atlanta data center: - - aws s3 mb s3://example-bucket --endpoint=https://us-southeast-1.linodeobjects.com --region=us-east-1 - -### Delete a Bucket - -Deletes the bucket with the specified label. - -**Command:** `s3cmd rb s3://[bucket-label]`, replacing *[bucket-label]* with the label of the bucket you wish to delete. - -**Example:** Delete the bucket with the label of "example-bucket": - - s3cmd rb s3://example-bucket - -To delete a bucket that has files in it, include the `--recursive` (or `-r`) option *and* the `--force` (or `-f`) option. Use caution when running this command: - - s3cmd rb -r -f s3://example-bucket/ \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/aws-sdk-for-php/index.md b/docs/products/storage/object-storage/guides/aws-sdk-for-php/index.md deleted file mode 100644 index 6a19d36f8c9..00000000000 --- a/docs/products/storage/object-storage/guides/aws-sdk-for-php/index.md +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: "Using the AWS SDK for PHP with Object Storage" -description: "Learn how to use the PHP AWS SDK with Linode's S3-compatible Object Storage." ---- - -The [AWS SDK for PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/welcome.html) (GitHub: [aws/aws-sdk-php/](https://github.com/aws/aws-sdk-php)) includes an [S3 client](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-multiregion-client.html) that enables access to Linode's S3-compatible Object Storage within a PHP application or script. - -## Before You Begin - -1. Ensure PHP 5.5.0 or later is installed on the machine you intend to use. - -1. Ensure Composer is installed globally. See [Composer Installation > Globally](https://getcomposer.org/doc/00-intro.md#globally). - -1. This guide assumes you have a basic understanding of PHP development and are comfortable integrating code samples into your application. - -1. It is also assumed that you have a basic understanding of Object Storage concepts, including that files are stored within a flat (non-heirarchial) system alongside rich metadata. - -## Installing the AWS SDK for PHP - -The first step is to install the AWS SDK for PHP through [Composer](https://getcomposer.org/), a common dependency manager for PHP. Run the following command within your project's directory - - composer require aws/aws-sdk-php - -See [AWS SDK for PHP Docs > Installing the SDK](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_installation.html) for additional instructions and alternative methods. - -## Initializing the Client - -To access Object Storage buckets and objects, you'll first need to configure your credentials and initialize the S3 client session. - -1. Generate an access key and secret key for Object Storage through Cloud Manager by following the [Managing Access Keys](/docs/products/storage/object-storage/guides/access-keys/) guide. - -2. Add the following code to your PHP script, replacing `[access-key]` and `[secret-key]` with the values generated in the previous step. Also replace `[cluster-url]` with the cluster URL corresponding to the data center your buckets are located within (listed on the [Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/) page). - - require 'vendor/autoload.php'; - use Aws\S3\S3Client; - use Aws\Exception\AwsException; - - $config = - [ - 'version' => 'latest', - 'region' => '', - 'endpoint' => '[cluster-url]', - 'credentials' => - [ - 'key' => '[access-key]', - 'secret' => '[secret-key]', - ], - ]; - - $client = new \Aws\S3\S3Client($config); - -See [AWS SDK for PHP Docs > Configuration Options](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html) for more details on how to configure the client. If you intend to share this code with others, it's highly advisable to abstract out both the access key and secret key. There are a few methods to accomplish this, including using AWS configuration files, environment variables through the shell, or a custom environment-specific configuration file. - -## List Buckets - -Lists all buckets within a cluster. See [listBuckets()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#listbuckets) for additional details, syntax, and examples. - -### Syntax - - $client->listBuckets(); - -### Example - -List all buckets on the account in the previously-specified cluster: - - $result = $client->listBuckets(); - foreach ($result['Buckets'] as $bucket) { - echo $bucket['Name'] . "\n"; - } - -## Create a Bucket - -Creates a new bucket, in which you can store objects. For acceptable bucket labels, review the [Create and Manage Buckets](/docs/products/storage/object-storage/guides/manage-buckets/#create-a-bucket) guide. See [createBucket()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createbucket) for additional details, syntax, and examples. - -### Syntax - - $client->createBucket([ - 'Bucket' => 'bucket-label' - ]); - -- **Bucket (required):** The label of the bucket you wish to create. - -### Example - -Create a bucket with the label of "example-bucket" in the previously-specified cluster: - - $client->createBucket(['Bucket' => 'example-bucket']); - -## Delete a Bucket - -Deletes the specified *empty* bucket. If the bucket still contains objects, they must be deleted before continuing. See [deleteBucket()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#deletebucket) for additional details, syntax, and examples. - -### Syntax - - $client->deleteBucket([ - 'Bucket' => 'bucket-label' - ]); - -- **Bucket (required):** The label of the bucket you wish to delete. - -### Example - -Delete the bucket labeled "example-bucket": - - $client->deleteBucket(['Bucket' => 'example-bucket']); - -## List Objects - -Outputs all the objects within a bucket (and with a certain prefix, if specified). See [listObjects()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#listobjects) for additional details, syntax, and examples. - -### Syntax - - $client->listObjects([ - 'Bucket' => 'bucket-label', - 'Prefix' => 'object-prefix' - ]); - -- **Bucket [required]:** The label of the bucket you wish to use. -- **Prefix:** The optional prefix (or pseudo path) of objects you list to view within a bucket. To view all objects, omit the Prefix parameter. - -### Examples - -- **List all objects:** List all objects within the bucket called "example-bucket": - - $result = $client->listObjects(['Bucket' => 'example-bucket']); - foreach ($result['Contents'] as $object) { - echo $object['Key'] . "\n"; - } - -- **List all objects within a specific "folder":** List all objects stored in the "assets/" folder within the bucket called "example-bucket". Keep in mind that objects aren't actually stored in folders, but the [prefix value](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) allows them to appear within a structure. - - $result = $client->listObjects(['Bucket' => 'example-bucket','Prefix' => 'assets/']); - foreach ($result['Contents'] as $object) { - echo $object['Key'] . "\n"; - } - -## Upload a File as an Object - -Uploads a file as an object stored within the specified bucket. See [putObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject) for additional details, syntax, and examples. - -### Syntax - - $client->putObject([ - 'Bucket' => 'bucket-label', - 'Key' => 'object-name', - 'SourceFile' => '/path/to/file.ext' - ]); - -- **Bucket [required]:** The label of the bucket you wish to store the file within. -- **Key [required]:** The name of the object you wish to create, including any prefix/path. -- **SourceFile [required]:** The filename and path of the file to upload. - -### Examples - -- Upload the file "file.txt", which is located in the same directory as your PHP script, to the bucket called "example-bucket". Name this new object "file.txt", the same as the filename. - - $client->putObject(['Bucket'=>'example-bucket','Key'=>'file.txt','SourceFile'=>'file.txt']); - -- Upload the file "logo.jpg", located within a home folder, to the bucket called "example-bucket". Name this new object "images/logo.jpg", which allows it to be structured within a pseudo folder. - - $client->putObject(['Bucket'=>'example-bucket','Key'=>'images/logo.jpg','SourceFile'=>'logo.jpg']); - -## Download an Object to a File - -Downloads the specified object to a new file on your system. See [getObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#getobject) for additional details, syntax, and examples. - -### Syntax - - $client->getObject([ - 'Bucket' => 'bucket-label', - 'Key' => 'object-name', - 'SaveAs' => '/path/to/new/file.ext' - ]); - -- **Bucket [required]:** The label of the bucket the object is stored within. -- **Key [required]:** The name of the object you wish to download, including any prefix/path. -- **SaveAs [required]:** The filename and path of the file to create. - -### Example - -Download the object "file.txt", stored within the bucket called "example-bucket", to a new file called "file.txt" in the same folder as your PHP script. - - $client->getObject(['Bucket' => 'example-bucket','Key' => 'file.txt', 'SaveAs' => 'file.txt']); - -## Delete an Object or Directory - -Deletes an object from a bucket. See [deleteObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html) for additional details, syntax, and examples. - -### Syntax - - $client->deleteObject([ - 'Bucket' => 'bucket-label', - 'Key' => 'object-name' - ]); - -- **Bucket [required]:** The label of the bucket the object is stored within. -- **Key [required]:** The name of the object you wish to delete, including any prefix/path. - -### Example - -Delete the object "file.txt", stored within the bucket called "example-bucket": - - $client->deleteObject(['Bucket' => 'example-bucket','Key' => 'file.txt']); - -## Going Further - -Extensive documentation on the S3 Client for the AWS SDK for PHP (including more methods, parameters, and examples) can be found within the [AWS SDK for PHP (API 3.x) > S3 Client](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html). \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/aws-sdk-for-python/UsingAWSSDKforPythonboto3withObjectStorage.jpg b/docs/products/storage/object-storage/guides/aws-sdk-for-python/UsingAWSSDKforPythonboto3withObjectStorage.jpg deleted file mode 100644 index f212f3506eb..00000000000 Binary files a/docs/products/storage/object-storage/guides/aws-sdk-for-python/UsingAWSSDKforPythonboto3withObjectStorage.jpg and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/aws-sdk-for-python/index.md b/docs/products/storage/object-storage/guides/aws-sdk-for-python/index.md deleted file mode 100644 index 18e71e91b9f..00000000000 --- a/docs/products/storage/object-storage/guides/aws-sdk-for-python/index.md +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: "Using the AWS SDK for Python (boto3) with Object Storage" -description: "Learn how to use the Python AWS SDK with Linode's S3-compatible Object Storage." -image: UsingAWSSDKforPythonboto3withObjectStorage.jpg ---- - -Amazon's Python AWS SDK, called [boto3](https://github.com/boto/boto3), includes an [S3 client](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html) that enables access to Linode's S3-compatible Object Storage within a Python application or script. - -## Before You Begin - -1. Ensure Python 3.6 or later is installed on the machine you intend to use. For Linux-based systems, see the [How to Install Python 3](/docs/guides/how-to-install-python-on-ubuntu-20-04/) guide for installation instructions. - -1. This guide assumes you have a basic understanding of Python development and are comfortable integrating code samples into your application. - -1. It is also assumed that you have a basic understanding of Object Storage concepts, including that files are stored within a flat (non-heirarchial) system alongside rich metadata. - -## Installing boto3 - -The first step is to install the AWS SDK for Python (boto3) through [pip](https://pypi.org/project/pip/), python's package manager that's installed by default on recent versions of Python. - - pip3 install boto3 - -See [Boto3 Docs > Quickstart](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation). - -## Initializing the Client - -To access Object Storage buckets and objects, you'll first need to configure your credentials and initialize the S3 client session. - -1. Generate an access key and secret key for Object Storage through Cloud Manager by following the [Managing Access Keys](/docs/products/storage/object-storage/guides/access-keys/) guide. - -2. Add the following code to your python script, replacing `[access-key]` and `[secret-key]` with the values generated in the previous step. Also replace `[cluster-url]` with the cluster URL corresponding to the data center your buckets are located within (listed on the [Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/) page). - - import boto3 - - linode_obj_config = { - "aws_access_key_id": "[access-key]", - "aws_secret_access_key": "[secret-key]", - "endpoint_url": "[cluster-url]", - } - - client = boto3.client("s3", **linode_obj_config) - -If you intend to share this code with others, it's highly advisable to abstract out both the access key and secret key. There are a few methods to accomplish this, including using AWS configuration files, environment variables through the shell, or a custom environment-specific configuration file. See [Boto3 Docs > Configuration](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html). - -## List Buckets - -Lists all buckets within a cluster. See [list_buckets()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.list_buckets) for additional details, syntax, and examples. - -### Syntax - - client.list_buckets() - -### Example - -List all buckets on the account in the previously-specified cluster: - - response = client.list_buckets() - for bucket in response['Buckets']: - print(bucket['Name']) - -## Create a Bucket - -Creates a new bucket, in which you can store objects. For acceptable bucket labels, review the [Create and Manage Buckets](/docs/products/storage/object-storage/guides/manage-buckets/#create-a-bucket) guide. See [create_bucket()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.create_bucket) for additional details, syntax, and examples. - -### Syntax - - client.create_bucket( - Bucket='[bucket-label]') - -- **Bucket (required):** The label of the bucket you wish to create. - -### Example - -Create a bucket with the label of "example-bucket" in the previously-specified cluster: - - client.create_bucket(Bucket='example-bucket') - -## Delete a Bucket - -Deletes the specified *empty* bucket. If the bucket still contains objects, they must be deleted before continuing. See [delete_bucket()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.delete_bucket) for more details. - -### Syntax - - client.delete_bucket( - Bucket='bucket-label') - -- **Bucket (required):** The label of the bucket you wish to delete. - -### Example - -Delete the bucket labeled "example-bucket": - - client.delete_bucket(Bucket='example-bucket') - -## List Objects - -Outputs all the objects within a bucket (and with a certain prefix, if specified). See [list_objects()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.list_objects) for additional details, syntax, and examples. - -### Syntax - - client.list_objects( - Bucket='bucket-label', - Prefix='object-prefix') - -- **Bucket [required]:** The label of the bucket you wish to use. -- **Prefix:** The optional prefix (or pseudo path) of objects you list to view within a bucket. To view all objects, omit the Prefix parameter. - -### Examples - -- **List all objects:** List all objects within the bucket called "example-bucket": - - response = client.list_objects(Bucket='example-bucket') - for object in response['Contents']: - print(object['Key']) - -- **List all objects within a specific "folder":** List all objects stored in the "assets/" folder within the bucket called "example-bucket". Keep in mind that objects aren't actually stored in folders, but the [prefix value](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) allows them to appear within a structure. - - response = client.list_objects(Bucket='example-bucket', Prefix='assets/') - for object in response['Contents']: - print(object['Key']) - -## Upload a File as an Object - -Uploads a file as an object stored within the specified bucket. See [upload_file()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.upload_file) for additional details, syntax, and examples. - -### Syntax - - client.upload_file( - Filename='/path/to/file.ext', - Bucket='bucket-label', - Key='object-name') - -- **Filename [required]:** The filename and path of the file to upload. -- **Bucket [required]:** The label of the bucket you wish to store the file within. -- **Key [required]:** The name of the object you wish to create, including any prefix/path. - -### Examples - -- Upload the file "file.txt", which is located in the same directory as your python script, to the bucket called "example-bucket". Name this new object "file.txt", the same as the filename. - - client.upload_file(Filename='file.txt', Bucket='example-bucket', Key='file.txt') - -- Upload the file "logo.jpg", located within a home folder, to the bucket called "example-bucket". Name this new object "images/logo.jpg", which allows it to be structured within a pseudo folder. - - client.upload_file(Filename='/Users/user/logo.jpg', Bucket='example-bucket', Key='images/logo.jpg') - -## Download an Object to a File - -Downloads the specified object to a new file on your system. See [download_file()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.download_file) for additional details, syntax, and examples. - -### Syntax - - client.download_file( - Bucket='bucket-label', - Key='object-name', - Filename='/path/to/file.ext') - -- **Bucket [required]:** The label of the bucket the object is stored within. -- **Key [required]:** The name of the object you wish to download, including any prefix/path. -- **Filename [required]:** The filename and path of the file to create. - -### Example - -Download the object "file.txt", stored within the bucket called "example-bucket", to a new file called "file.txt" in the same folder as your python script. - - client.download_file(Bucket='example-bucket', Key='file.txt', Filename='file.txt') - -## Delete an Object or Directory - -Deletes an object from a bucket. See [delete_object()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.delete_object) for additional details, syntax, and examples. - -### Syntax - - client.delete_object( - Bucket='bucket-label', - Key='object-name') - -- **Bucket [required]:** The label of the bucket the object is stored within. -- **Key [required]:** The name of the object you wish to delete, including any prefix/path. - -### Example - -Delete the object "file.txt", stored within the bucket called "example-bucket": - - client.delete_object(Bucket='example-bucket', Key='file.txt') - -## Going Further - -Extensive documentation on Boto3 and the S3 Client (including more methods, parameters, and examples) can be found on [Boto3 Docs > S3 > Client](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#client). \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/bucket-policies/index.md b/docs/products/storage/object-storage/guides/bucket-policies/index.md deleted file mode 100644 index 5aadda60e08..00000000000 --- a/docs/products/storage/object-storage/guides/bucket-policies/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: "Define Access and Permissions using Bucket Policies" -description: "Learn how to use bucket policies to set permissions and access controls within Object Storage" -date: 2022-03-11 ---- - -Bucket policies are a mechanism for managing permissions and access to Object Storage. When compared to ACLs, bucket policies can only be applied across an entire bucket (not to individual objects), though they offer finer control over the types of permissions you can grant to a user. - -## Components of a Policy - -Bucket policies are formatted using JSON with the following structure: - - ```file {title="bucket-policy.json" lang="json"} -{ - "Version": "2012-10-17", - "Statement": [{ - "Effect": ..., - "Principal": ..., - "Action": ..., - "Resource": ... - }] -} -``` - -This file consists of a **Version** string (set to `2012-10-17`, which is the current version) and one or more **Statement** arrays, which define the actual policies you wish to use. Within each statement array are the **Effect**, **Principal**, **Action**, **Resource**, and optional **Condition** elements. Each of these are discussed below. - -### Effect - -The **Effect** section defines if access is allowed (`Allow`) or denied (`Deny`) to the specified resource. See [IAM JSON policy elements: Effect](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html). - - "Effect":"Allow" - -### Principal - -The **Principal** section defines the user or entity to which the policy applies. See [Amazon S3 Principals](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html). - -- **Specific user:** Specify an Object Storage canonical ID to have the policy apply to that user. For help finding the canonical ID, see [Find Canonical User ID](/docs/products/storage/object-storage/guides/find-canonical-id/). - - "Principal": { - "AWS": [ - "arn:aws:iam:::user/a0000000-000a-0000-0000-00d0ff0f0000" - ] - } - -- **Public/anonymous access:** Use a wildcard to grant access to everyone. This is commonly used for hosting a website through Object Storage. - - "Principal":"*" - -### Action - -**Action** are the permissions granted (or removed) by the policy. These actions include the ability to list buckets, view objects, upload objects, and more: - -- `s3:PutObject`: Upload objects -- `s3:GetObject`: Retrieve objects -- `s3:ListBucket`: List the contents of a bucket - -For a full list of actions, see [Ceph > Bucket Policies](https://docs.ceph.com/en/latest/radosgw/bucketpolicy/#). You can also reference the [Amazon S3 actions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html) guide. - -### Resource - -A policy is applied to Object Storage **resources**, such as buckets and objects. Bucket resources are formatted as `"arn:aws:s3:::[bucket]"`. To apply a policy to some or all objects within a bucket, use `"arn:aws:s3:::[bucket]/[object]"`. In both cases, replace *[bucket]* with the label for the bucket and *[object]* with either the wildcard value (`*`) that designates all objects or the path and name of the object. See [Amazon S3 resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html). - -- **All objects:** Apply the policy to all objects within the bucket labeled *example-bucket*. - - "Resource": [ - "arn:aws:s3:::example-bucket/*" - ] - -- **All objects in specific directory:** Apply the policy to all objects in the `assets` folder within the bucket labeled *example-bucket*. - - "Resource": [ - "arn:aws:s3:::example-bucket/folder/*" - ] - -- **Specific object:** Apply the policy to the object `example-file.ext` within the bucket labeled *example-bucket*. - - "Resource": [ - "arn:aws:s3:::example-bucket/example-file.ext" - ] - -{{< note type="alert" >}} -While a resource can target the bucket itself (by removing the `/*` in the first example), this can cause the bucket to become inaccessible to Cloud Manager, API, and CLI. -{{< /note >}} - -## Bucket Policy Examples - -### Allow Public Read Access - -If you wish to allow anyone to view and download objects within a bucket, use the following policy: - - ```file {title="bucket_policy.json" lang="json"} -{ - "Version": "2012-10-17", - "Statement": [{ - "Effect": "Allow", - "Principal": "*", - "Action": [ - "s3:GetObject", - "s3:ListBucket" - ], - "Resource": [ - "arn:aws:s3:::bucket-example/*" - ] - }] -} -``` - -### Grant an Account Limited Access to a Directory - -This policy file allows a user to list the bucket called `example-bucket` and view/download objects within the `test` directory. They are not able to perform any other actions. - - ```file {title="bucket_policy.json" lang="json"} -{ - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Principal": { - "AWS": "arn:aws:iam:::user/a0000000-000a-0000-0000-00d0ff0f0000" - }, - "Action": [ - "s3:ListBucket" - ], - "Resource": [ - "arn:aws:s3:::example-bucket" - ] - }, - { - "Effect": "Allow", - "Principal": { - "AWS": "arn:aws:iam:::user/a0000000-000a-0000-0000-00d0ff0f0000" - }, - "Action": [ - "s3:GetObject" - ], - "Resource": [ - "arn:aws:s3:::example-bucket/test/*" - ] - } - ] -} -``` - -### Allow or Deny Access from a Specific IP Address - -By using the **Condition** section and the **IpAddress** and **NotIpAddress** conditions, you can choose to allow or deny traffic from the specified IP address or range. - -If the **Effect** is set to `Allow`, use the **IpAddress** condition to specify that *just* traffic from that IP address is allowed and use **NotIpAddress** to allow all traffic *except* from that IP. - -If the **Effect** is set to `Deny`, use the **IpAddress** condition to deny traffic from that IP address and use **NotIpAddress** to deny all traffic *except* from that IP. - -The example below allows all traffic from only the specified IP address: - - ```file {title="bucket_policy.json" lang="json"} -{ - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Principal": "*", - "Action": "s3:*", - "Resource": "arn:aws:s3:::example-bucket/*", - "Condition": { - "IpAddress": { - "aws:SourceIp": "192.0.2.1/32" - } - } - } - ] -} -``` - -## Applying Bucket Policies - -After creating your bucket policy file and defining your policies, you need to use a third party tool to apply those policies to a bucket. - -### S3cmd - -**Command:** `s3cmd setpolicy [policy-file] s3://[bucket-label]`, replacing *[bucket-label]* with the label for your bucket and *[policy-file]* with the filename and path of your bucket policy file. - -**Example:** Apply the bucket policies defined within the file "policy.json" to the bucket called "example-bucket": - - s3cmd setpolicy policy.json s3://example-bucket - -See [S3cmd > Apply a Bucket Policy](/docs/products/storage/object-storage/guides/s3cmd/#apply-a-bucket-policy) for more details. diff --git a/docs/products/storage/object-storage/guides/cancel/cancel-obj.png b/docs/products/storage/object-storage/guides/cancel/cancel-obj.png deleted file mode 100644 index fc1a820a186..00000000000 Binary files a/docs/products/storage/object-storage/guides/cancel/cancel-obj.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cancel/index.md b/docs/products/storage/object-storage/guides/cancel/index.md deleted file mode 100644 index f3ceb361f1b..00000000000 --- a/docs/products/storage/object-storage/guides/cancel/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Cancel Object Storage -description: "How to cancel the Linode Object Storage service." ---- - -The following steps outline how to cancel the Object Storage service from Cloud Manager. - -{{< note type="alert" >}} -Cancelling Object Storage deletes all objects and buckets from your account. Consider downloading any important files before continuing. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com/), select **Account** from the left menu, and navigate to the **Settings** tab. - -1. Find the section labeled *Object Storage* and click the **Cancel Object Storage** button. - - ![Cancel Object Storage](cancel-obj.png) - -1. A prompt appears asking you to confirm the cancellation. Click **Confirm cancellation** to proceed. Any remaining buckets and objects on your account are deleted and you will no longer be billed for Object Storage. \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/custom-domain/custom-domain-certificate-upload.png b/docs/products/storage/object-storage/guides/custom-domain/custom-domain-certificate-upload.png deleted file mode 100644 index 63e9aa14d18..00000000000 Binary files a/docs/products/storage/object-storage/guides/custom-domain/custom-domain-certificate-upload.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/custom-domain/index.md b/docs/products/storage/object-storage/guides/custom-domain/index.md deleted file mode 100644 index 55a4f25360d..00000000000 --- a/docs/products/storage/object-storage/guides/custom-domain/index.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: "Configure a Custom Domain (with a TLS/SSL Certificate)" -description: "Learn how to upload a custom SSL/TLS certificate to enable SSL on a bucket on Linode Object Storage." -published: 2022-02-07 -modified: 2023-08-22 -keywords: ['object','storage','object storage','s3','bucket'] -tags: ["linode platform","cloud manager"] -aliases: ['/platform/object-storage/enable-ssl-for-object-storage/','/guides/enable-ssl-for-object-storage/'] ---- - -Linode's Object Storage service supports both shared and custom domain names. By default, files can be accessed through secured (HTTPS) URLs within the shared domain *\*.linodeobjects.com*. If you prefer, you can use a custom domain, such as a subdomain of *\*.example.com*. This guide walks you through the configuration of a custom domain and adding a TLS certificate to secure that custom domain. When configuring Linode services, this guide uses Cloud Manager, though the [Linode CLI](/docs/products/tools/cli/get-started/) and the [Linode API](/docs/api/object-storage/) can be used instead. - -## Before you Begin - -**Obtain a domain name:** Before starting this guide, consider what domain name you'd like to use with your Object Storage bucket. If you do not already own the domain, purchase it from a trusted registrar. - -{{< note >}} -When configuring Object Storage with a custom domain, you must use a fully qualified domain name (FQDN), such as *assets.example.com* or any subdomain of *\*.your-domain.tld*. Apex (root) domains, such as *example.tld*, are not supported at this time. -{{< /note >}} - -## Create a Bucket - -If you have not already done so, [create a bucket](/docs/products/storage/object-storage/guides/manage-buckets/). Since the intention is to use this bucket with a custom domain, the bucket must be labeled as your fully qualified domain name, such as `assets.example.com`. If your files already exist in a bucket that doesn't have this label, create a new bucket with this label and copy or move your files into it. For more information, see [Moving Objects Between Buckets in Linode's Object Storage](/docs/guides/how-to-move-objects-between-buckets/). - -## Configure DNS - -To connect your custom domain, you must create a CNAME DNS record within the name server for the domain you intend to use. This can be done through your DNS provider, such as one operated by your domain registrar or a service like Linode's Domain Manager. The CNAME record should be created using the following values: - -- **Hostname/Name:** This is the custom domain you wish to use. Each DNS provider may require slightly different formatting. In many cases, enter just the *subdomain* value. For example, if you plan to use *assets.example.com*, enter `assets`. - -- **Alias To/Target:** This is the full URL on the shared domain (excluding the `https://` part of the URL) for your object storage bucket. See [Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/#bucket-url) for details on obtaining the bucket's URL. The URL can either be for the default file host functionality of Object Storage or the URL used to host a static website. - - - File URL: `[bucket-label].[cluster-id].linodeobjects.com` - - Website URL: `[bucket-label].website-[cluster-id].linodeobjects.com` - -For more information on DNS records and CNAME records, see our [Introduction to DNS Records](/docs/guides/dns-overview/#cname) guide. - -## Obtain a TLS/SSL Certificate - -Once your DNS has been configured, create (or purchase) a TLS/SSL certificate through a trusted certificate authority. For this guide, the free [certbot](https://certbot.eff.org/) tool will be used, which creates free certificates through the Let's Encrypt CA. You can skip this section if you have already obtained a certificate. - -1. Install certbot on whichever system you wish to use to obtain the certificate. You can use your local machine, a Compute Instance on Linode's platform, or any other compatible virtual machine. Here are links to the instructions on certbot's website: - - - [macOS](https://certbot.eff.org/instructions?ws=other&os=osx) - - [Windows](https://certbot.eff.org/instructions?ws=other&os=windows) - - Any compatible Linux system listed on the [certbot instructions](https://certbot.eff.org/instructions) page within the **System** dropdown. - -1. Run the following certbot command to generate a certificate manually: - - sudo certbot certonly --manual - -1. When prompted, enter the custom domain that you intend to use and have already configured (such as `assets.example.com`) - -1. You are then requested to create a specific file with specific contents and make it accessible on your custom domain within a certain directory. If you've followed the previous steps in this guide, your custom domain now points to your bucket. This means you can create this file directly within your Object Storage account. To do this, you can use [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/), the [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/), [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/), [s4cmd](/docs/products/storage/object-storage/guides/s4cmd/), or any other tool or application that integrates with Object Storage and as the ability to create folders and files. - -1. Once the file has been created and is accessible, press enter within the certbot command line to continue. If certbot is able to successfully access that file, it generates the certificate along with its private key and saves them to your system: - - {{}} -Successfully received certificate. -Certificate is saved at: /etc/letsencrypt/live/assets.example.com/fullchain.pem -Key is saved at: /etc/letsencrypt/live/assets.example.com/privkey.pem -This certificate expires on 2022-05-11. -These files will be updated when the certificate renews. -{{}} - -You can view the saved certificate using whichever plaintext file viewer or editor you have on your system. For instance, on a Linux system you can use `sudo cat [file-location]` to output the file or `sudo nano [file-location]` to open the file. - -## Upload Your SSL Certificate - -To upload your new SSL certificate to an Object Storage Bucket: - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Object Storage** from the left menu. - -1. Open the bucket you wish to use and navigate to the **SSL/TLS** tab. This opens the *SSL/TLS Certificate* page. - - ![](custom-domain-certificate-upload.png) - -1. In the **Certificate** field, enter the contents of the certificate file you just created or obtained. - -1. In the **Private Key** field, enter the contents of the corresponding private key file. - -1. Click the **Upload Certificate** button to submit the certificate and attach it to your bucket. - -## Upload Your Files or Static Website - -Before you can test your custom domain, you need to have files hosted on your Object Storage bucket. Upload your files or your static website. After they are uploaded, set the permissions so the files can be read by the public. If the permissions are not set, you will not be able to view the files through any URL (either shared or custom). - -If you currently don't have any files, you can create a test file called `index.html`, edit it to include the following text, upload it to your bucket's main directory, and make sure the permissions are set so it can be read by the public. - - - -

Hello world...

- - - -## Access Your Secured Custom Domain - -You can now access your files or static website using your secured custom domain. Open a web browser and enter your custom domain. If you are using Object Storage just to store and access files, include the file path of the file you wish to access. If you are using Object Storage to host a website, you do not need to enter any additional file path assuming you have uploaded an `index.html` file (or have set a different file as the default). diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-enable-website.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-enable-website.png deleted file mode 100644 index a747905c289..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-enable-website.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-file-url.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-file-url.png deleted file mode 100644 index 9bb35492f94..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-file-url.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-new-connection.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-new-connection.png deleted file mode 100644 index 188d6f216f5..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-new-connection.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-permissions-add-everyone.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-permissions-add-everyone.png deleted file mode 100644 index 773aa612b3f..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-permissions-add-everyone.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-permissions-everyone-read.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-permissions-everyone-read.png deleted file mode 100644 index 8984a5e33db..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-permissions-everyone-read.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-profiles-linode.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-profiles-linode.png deleted file mode 100644 index b8a0567e21b..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-profiles-linode.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-profiles.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-profiles.png deleted file mode 100644 index cbcd1d32f1c..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-profiles.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-view.png b/docs/products/storage/object-storage/guides/cyberduck/cyberduck-view.png deleted file mode 100644 index 3ceb2bd9845..00000000000 Binary files a/docs/products/storage/object-storage/guides/cyberduck/cyberduck-view.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/cyberduck/index.md b/docs/products/storage/object-storage/guides/cyberduck/index.md deleted file mode 100644 index 5d3ced83a57..00000000000 --- a/docs/products/storage/object-storage/guides/cyberduck/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: "Using Cyberduck with Object Storage" -description: "Learn how to use the Cyberduck desktop file transfer program to interact with Linode's Object Storage." ---- - -Cyberduck is a desktop application that facilitates file transfer over FTP, SFTP, and a number of other protocols, including S3. - -## Install and Configure Cyberduck - -1. Navigate to Cyberduck's [Download](https://cyberduck.io/download/) webpage and download the latest version of Cyberduck for your operating system. After downloading, run the file to install the application. - - {{< note >}} - If you already have Cyberduck installed, be sure to update to version 8.2.1 or newer. Some of the steps within this guide do not work properly on earlier versions. - {{< /note >}} - -1. Open Cyberduck and then select *Cyberduck* > *Preferences* from the menu bar. - -1. Navigate to the **Profiles** tab to open the *Connection Profiles* page. - - ![Screenshot of the Cyberduck Profiles tab](cyberduck-profiles.png) - -1. Search for "Linode" or scroll down to see the connection profiles designed for Linode's Object Storage service. - - ![Screenshot of the Linode-specific Profiles](cyberduck-profiles-linode.png) - -1. Select the checkbox next to connection profile for each data center you wish to use with Object Storage. - -1. Close the *Preferences* window and restart Cyberduck to install the selected connection profiles. - -## Open a Connection - -1. Open Cyberduck and then select *File* > *Open Connection...* from the menu bar. This displays the connection dialog. - -1. At the top of the Open Connection dialog, click the dropdown menu and select the **Linode Object Storage** profile that corresponds with the data center you wish to use. - -1. Enter your access key in the **Access Key** field and your secret key in the **Secret Key** field. If you do not yet have an access key, create one now by following the instructions within the [Manage Access Keys](/docs/products/storage/object-storage/guides/access-keys/) guide. If you intend to create new buckets, the access key must not be limited. Otherwise, the access key must have permissions to read or read/write on the bucket you intend to use. - - ![Screenshot of the Open Connection form](cyberduck-new-connection.png) - -1. Click **Connect** to open the connection. - -## View Your Buckets and Files - -Once the connection is successful, a list appears of all the buckets that your access key has permissions to view within the selected data center. You can view the files stored within the buckets by clicking the chevron icon to the left of the bucket label or double clicking the bucket to open it. - -![Main Cyberduck view of buckets](cyberduck-view.png) - -{{< note >}} -To create additional buckets, use Cloud Manager, Linode CLI, s3cmd, or s4cmd. Cyberduck is not able to create new buckets. -{{< /note >}} - -## Upload and Manage Files - -To upload a file, drag it into the Cyberduck window at the location where you'd like the file to be stored. For instance, if you see multiple buckets or folders, drag the file to whichever one you wish. This process also works for multiple files and even entire directories. Alternatively, you can click the **Action** button and select **Upload** from the menu. - -If you wish to perform an action on a particular file, right click that file to open up a context menu with additional options. These options include: - -- [Info](https://docs.cyberduck.io/cyberduck/info/): Get additional details about the file, folder, or bucket, change permissions, view and update metadata, edit the domain, set versioning, and much more. -- [Download](https://docs.cyberduck.io/cyberduck/download/): Download a copy of the file. -- [Edit](https://docs.cyberduck.io/cyberduck/edit/): Useful for editing plaintext files. -- Rename, Duplicate, and much more. - -{{% content "object-storage-character-warning-shortguide" %}} - -## Obtain the URL of a File - -In most cases, URLs are used to share and display files. While you can always manually determine the URL (see [Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/#file-urls)), you can get this information quickly using Cyberduck. - -1. Right click on the file, select **Info**, and navigate to the *General* tab. - -1. Locate the **Web URL** field. The URL for the file is displayed here. - - ![Screenshot of an Object's URL as it appears within the Info tab](cyberduck-file-url.png) - -1. Click on the URL to open it in a web browser or right click it and select **Copy Link** to copy the URL. - -## Make Files Public - -It's common to make a file, folder, or even an entire bucket publicly accessible so they can be accessed through the file's URL without any additional authentication needed. To do this through Cyberduck, update the permissions on the file using the instructions below. - -1. Right click on the file, select **Info**, and navigate to the *Permissions* tab. - -1. Click the ellipsis icon at the bottom left of the window and select **Everyone**. - - ![Screenshot of the permission dropdown list](cyberduck-permissions-add-everyone.png) - -1. A new entry for *Everyone* appears in the Access Control List. Next to *Everyone*, under the *Permissions* column heading, select **READ** from the drop down menu. - - ![Screenshot of the Everyone permission set to Read](cyberduck-permissions-everyone-read.png) - -The object is now accessible through the internet. See [Obtain the URL of a File](#obtain-the-url-of-a-file) to get the URL. - -## Host a Website - -Object Storage can be used to host static website files, such as html, css, and client-side javascript. Once you've uploaded your files to a particular bucket, follow the instructions below to enable your website. - -1. Locate your bucket within Cyberduck - -1. Highlight all of the website files within your bucket, right click on them, and select **Info**. Follow the instructions within [Make Files Public](#make-files-public) so that your files can be accessed by everyone with the URL. - -1. Right click the bucket itself, select **Info**, and navigate to the **Distribution (CDN)** tab. - -1. Check the box that reads **Enable Website Configuration (HTTP) Distribution**. - - ![Screenshot of the Enable Website checkbox](cyberduck-enable-website.png) - -1. Make sure the root of your bucket contains an "index.html" file. If not, you can select a different file to act as the index by modifying the **Index File** field within the same window as the previous step. - -1. The static site is accessed from a different URL than can be found in the [Obtain the URL of a File](#obtain-the-url-of-a-file) section. Review the [Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/#website-urls) guide for information on obtaining the website URL. - -For more information on hosting a static website with Object Storage, read the [Host a Static Site using Linode Object Storage](/docs/guides/host-static-site-object-storage/) guide. \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/find-canonical-id/index.md b/docs/products/storage/object-storage/guides/find-canonical-id/index.md deleted file mode 100644 index 401577dde1d..00000000000 --- a/docs/products/storage/object-storage/guides/find-canonical-id/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Find the Canonical User ID for an Account" -description: "How to cancel the Linode Object Storage service." -date: 2022-03-11 ---- - -Each Object Storage account is given its own *canonical user ID*, which can be used to identify a specific account or share resources between accounts. This ID consists of a long string of letters, dashes, and numbers, such as `a0000000-000a-0000-0000-00d0ff0f0000`. - -{{< note >}} -Each Linode account has a single canonical ID within Object Storage, which means that all users and Object Storage API keys on an account share the same canonical ID. -{{< /note >}} - -To retrieve the canonical user ID of an account, choose one of the methods outlined below. - -## S3cmd - -The S3cmd utility can be used to retrieve the canonical ID by running the `info` command below, replacing *[bucket-label]* with the label of the bucket. - - s3cmd info s3://[bucket-label] - -{{< note >}} -S3cmd must be configured to use the Access Key of the account to which the bucket belongs. -{{< /note >}} - -Within the output, find an ACL that has the FULL_CONTROL permission and looks similar to the string shown in the example below. - -```output -s3://example-bucket/ (bucket): -Location: default -Payer: BucketOwner -Expiration Rule: none -Policy: none -CORS: none -ACL: a0000000-000a-0000-0000-00d0ff0f0000: FULL_CONTROL -``` - -If you see *none* as the ACL, it may indicate that your s3cmd is configured with a different region than the bucket is located within. See the [Additional Configuration Options](/docs/products/storage/object-storage/guides/s3cmd/#additional-configuration-options) of our s3cmd guide to learn how to manually edit the s3cmd configuration. - -## AWS CLI - -To retrieve the canonical id of *your account* within the AWS CLI, run the following command, replacing *[bucket-url]* with the URL of the bucket. See [Bucket URLs](/docs/products/storage/object-storage/guides/urls/#bucket-url) for instructions on formatting your bucket URL. - - aws s3api list-buckets --query Owner.ID --output text --endpoint=[bucket-url] - -{{< note >}} -The AWS CLI must be configured to use the Access Key of the account to which the bucket belongs. -{{< /note >}} - -## Curl - -Alternatively, you *may* be able to retrieve the canonical ID by curling a bucket and retrieving the Owner ID field from the returned XML. This method is an option when both of these conditions are true: - -- The bucket has objects within it and has already been set to public (with a command like `s3cmd setacl s3://other-users-bucket --acl-public`). -- The bucket has not been set to serve static websites. - -Run the following curl command, replacing *[bucket-url]* with the URL of the bucket (ex: `example-bucket.us-southeast-1.linodeobjects.com`). See [Bucket URLs](/docs/products/storage/object-storage/guides/urls/#bucket-url) for instructions on formatting your bucket URL. - - curl [bucket-url] - -Within the output, the canonical ID is displayed within the `` property. In the example output below, the ID is `a0000000-000a-0000-0000-00d0ff0f0000`. - -```output -... - - a0000000-000a-0000-0000-00d0ff0f0000 - a0000000-000a-0000-0000-00d0ff0f0000 - -... -``` \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/grafana-loki/index.md b/docs/products/storage/object-storage/guides/grafana-loki/index.md deleted file mode 100644 index 96e650cb224..00000000000 --- a/docs/products/storage/object-storage/guides/grafana-loki/index.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: "Using Grafana Loki with Object Storage" -description: "Learn how to use the Loki aggregation and visualization system to store and analyze logs from Linode's Object Storage." ---- - -Grafana Loki is a log aggregation and visualization system for cloud-native environments. It offers a cost-effective, scalable solution for processing large volumes of log data generated by modern applications and microservices. With Grafana Loki, users can query and visualize logs from cloud-native workloads. Loki uses a label-based indexing system. This makes it an ideal choice for observability, monitoring, alerting and data analysis. - -## Before you start - -[Grafana Loki](https://grafana.com/docs/loki/latest/configure/) can integrate with Linode Object Storage as a back-end storage solution using the S3 protocol and S3 storage configuration. - -Before you apply the Best Practices to your configuration, review these basic concepts to understand the Loki caching and storage workflow. - -### Memcached Cache Store - -- The best practices examples use Memcached, the most popular local caching system. Memcached serves as Loki's cache store to provide a fast, distributed caching layer. -- The Memcached configuration stores chunks of log data and associated metadata in its key-value store. - -### Chunk Indexing and Caching - -- Logs ingested into Loki are typically grouped into chunks. These chunks represent a time-bound segment of log data. The structure of the chunks allows efficient querying based on time ranges and labels. -- The Loki ingester indexes and caches chunks in Memcached for rapid retrieval. -- When a Loki query occurs, the query engine first checks Memcached for the required chunks. - -### Caching During Writing - -- During ingestion, chunks may be cached in Memcached immediately after they are written to the back-end storage such as, Linode Object Store. -- This proactive caching ensures that recently ingested log data is available for querying. It also avoids the latency that occurs when fetching it from the back-end storage. -- Loki manages the indexes and chunks separately even though it may use the same back-end storage for both. - -### Caching During Reading - -- When a query occurs the query engine checks Memcached for the required chunks. -- If the query finds the chunks in the cache, it retrieves the chunks directly from Memcached. This results in low-latency query responses. -- Loki fetches chunks that are not present in the cache or chunks evicted due to caching policies from the back-end storage. - -### Eviction and Management - -- Memcached manages its own eviction policies. These policies use factors such as memory usage, access patterns, and expiration times. -- Chunks that are the least frequently accessed or have exceeded their time-to-live (TTL) may be evicted from the cache. This makes room for new data. -- Loki's configuration may include parameters for tuning the eviction policies and cache size to optimize performance and resource utilization. - - -## Best Practices - -Review these best practices for leveraging Linode Object Storage with Grafana Loki. These tips focus on Loki’s caching and storage configuration and provide specific recommendations for the integration. - -### Enable caching on Loki - -Caching helps to balance Loli's query performance, resource utilization, and data durability. By intelligently managing caching, eviction, and storage operations Loki optimizes the trade-offs between responsiveness and scalability in log aggregation and visualization. Any caching configuration, or lack of it, has direct implications on the number of requests, such as `GETs`, going forward to Object Storage. Today Object Storage supports 750 mixed requests per second (RPS) per bucket. Caching helps to ensure that requests and throughput are not rate-limited. It can also promote optimal latency for typical enterprise workloads. - -### Choose a multi-tenancy workload type with an independent storage config - -You should understand your Loki workload type and evaluate whether it’s single or multi-tenant. Multi-tenancy is the default for Loki and is common for enterprise solutions. Please see the [Grafana Loki documentation](https://grafana.com/docs/loki/latest/operations/multi-tenancy/) for information about multi-tenancy configurations. Each Loki tenant has a separate configuration per tenant that includes caching, such as Memcached, and storage, such as Linode Object Storage. - -In addition to providing data isolation, the multi-tenancy model allows for horizontal scalability and storage load sharding per tenant. Consider this example to understand the impact of the multi-tenancy workload type. - -A configuration with one tenant and one bucket only supports 750 mixed RPS for your entire workload. This means that if you have an aggregated workload of 10K queries per second across all your Grafana graphs with a cache configuration that yields a 90% hit ratio: -- ~1K of the requests will land on the back-end Object Storage bucket. -- With one tenant and one bucket, your workload will already exceed the rate limit for the bucket. - -Alternatively, a configuration with two tenants and two buckets, one each for the org/division/workload type, gets twice the RPS and the workload is unlikely to be rate limited. - -### Configure the Loki cache - -Loki supports several configurable caching parameters. Review these recommended options to learn more. - -#### Use an optimized cache store like Memcached - -In-memory cache is auto-enabled in Loki. It is, however, recommended than you use an optimized cache store like Memcached. To configure Memcached, refer to the [Grafana documentation](https://grafana.com/docs/loki/latest/operations/caching/). - -#### Configure the `chunk_store_config` block - -The `chunk_store_config` block lets you configure how chunks are cached and how long to wait before saving them to the backing store. -![Screenshot of the chunk options](loki-chunk-store.png) - -Some of the key config parameters include `max_chunk_age` and `chunk_idle_period`. These parameters determine how long the chunks are cached before being flushed out. -![Screenshot of the chunk options](loki-max-chunk.png) -![Screenshot of the chunk options](loki-chunk-memory.png) - -Use the `default_validity` parameter for results caching and the `chunk_target_size` parameter to configure the compressed chunk size. -![Screenshot of the chunk options](loki-default-validity.png) -![Screenshot of the chunk options](loki-chunk-validity2.png) - -To determine the right values for these parameters for your use-case, it’s critical to consider the following: -- **Load**: The amount of log data in bytes produced per day by your tenant workload. For example, GBs/day. -- **Log access patterns**: Determine whether the log data access patterns for your use-case skews towards recent data only such as, <12h old, or older data such as, >4-5 days. -- **Cache capacity considerations**: Determine whether your Loki deployment has enough resources such as RAM, CPU, and local disk space available allocated for caching. -- **Cost considerations**: Estimates costs for managing the cache locally for Loki, given the memory and disk space capacity requirements. - -To learn more you can read the [Grafana Cloud blog post](https://grafana.com/blog/2023/08/23/how-we-scaled-grafana-cloud-logs-memcached-cluster-to-50tb-and-improved-reliability/) that discusses how appropriate cache sizing impacts performance and reliability. - -## Loki Storage Configuration - -The `s3_storage_config` block configures the connection to the Linode S3 Object Storage back end. -![Screenshot of the chunk options](loki-storage-config.png) - -The `bucketnames` storage config parameter allows the Loki tenant workloads to specify more than one bucket. This enables sharding of log data chunks across multiple buckets. It’s highly recommended that you configure more than one bucket, and possibly many depending on the load. This helps with scalability and load balancing since rate limits are enforced at the bucket level. - -The following storage `backoff` settings are also important. - -![Screenshot of the chunk options](loki-backoff-settings-1.png) - -These parameters determine how Loki manages the storage requests when Linode Object Storage enforces rate limits. Rate limits may be enforced, for example, due to request rates higher than the allowed limits. If not configured properly, there can be a cascading effect where the retries contribute further to the request rates. This can result in perpetual or longer than ideal limits enforcement. - -Given the Linode Object Storage rate-limiting implementation, the following values are highly recommended: -- `min_period` - 2 seconds -- `max_period` - 5 seconds -- `max_retries` - 5 - -#### Loki Chunk Size Configuration - -The following chunk size and related config parameters are supported. -![Screenshot of the chunk options](loki-chunk-size-config.png) - -You should configure chunk sizes between 1.5 MB and 2 MB. The `chunk_target_size` directly translates to the object sizes in Linode Object storage and determines the: -- Number of overall `PUT` requests. -- Number of objects stored in the buckets. -- Effective bandwidth required for the Object Storage operations. - -Review the following example to learn why it’s important to choose the `chunk_target_size` value carefully. - -If your workload generates 5 TB of logging data per day and the chunk size is 1.5 MB, then on an average, even distribution it will generate: -- ~38 `PUT` requests per second. -- 57 MBps (456 Mbps) of throughput out to the storage. -- ~ 3.3 million objects per day. - -If, as an alternative, the chunk size is 2 MB then on an average, even distribution it will generate: -- ~29 `PUT` requests per second for the same aggregate throughput to the storage but with ~2.5 million objects per day. - -The number of requests and throughput for `GET` requests per second are highly dependent on the window size and period of time for which logs are being pulled and whether they are in cache or not. For example, ~500 `GET` requests per second missing cache with 2 MB chunk size would result in approximately ~1 GBps (8 Gbps) of egress throughput from Object Storage. - -For example, ~500 `GET` requests per second missing cache with 2 MB chunk size would result in approximately ~1 GBps (8 Gbps) of egress throughput from Object Storage. - -### Maintain your Loki deployment - -Here are some additional best practices to help ensure the operational healthiness of your Loki deployment: -- Monitor the cache utilization and query performance using Grafana dashboards and Prometheus metrics. -- Experiment with different cache configurations to find the optimal balance between memory usage and query responsiveness. -- Regularly review and adjust cache parameters based on the changing workload characteristics and system resource availability. -- Periodically delete and re-configure Linode Object Storage bucket lifecycle policies to delete objects, such as log data, that are no longer required for your use-case. \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-backoff-settings-1.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-backoff-settings-1.png deleted file mode 100644 index fe9863f7a2a..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-backoff-settings-1.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-backoff-settings.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-backoff-settings.png deleted file mode 100644 index fe9863f7a2a..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-backoff-settings.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-memory.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-memory.png deleted file mode 100644 index c843dc66ff3..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-memory.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-options.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-options.png deleted file mode 100644 index c843dc66ff3..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-options.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-size-config.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-size-config.png deleted file mode 100644 index 41fdeef1e49..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-size-config.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-store.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-store.png deleted file mode 100644 index 3bb0c73db86..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-store.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-validity2.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-validity2.png deleted file mode 100644 index 2f7c54cc8e1..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-chunk-validity2.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-default-validity.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-default-validity.png deleted file mode 100644 index 6e2c339fa98..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-default-validity.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-max-chunk.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-max-chunk.png deleted file mode 100644 index 719f3312f67..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-max-chunk.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/grafana-loki/loki-storage-config.png b/docs/products/storage/object-storage/guides/grafana-loki/loki-storage-config.png deleted file mode 100644 index 91aced7e7dd..00000000000 Binary files a/docs/products/storage/object-storage/guides/grafana-loki/loki-storage-config.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/lifecycle-policies/index.md b/docs/products/storage/object-storage/guides/lifecycle-policies/index.md deleted file mode 100644 index 43ccec4dd87..00000000000 --- a/docs/products/storage/object-storage/guides/lifecycle-policies/index.md +++ /dev/null @@ -1,252 +0,0 @@ ---- -title: "Lifecycle Policies" -description: "Use lifecycle policies to manage deleting objects in Linode Object Storage." -published: 2019-10-18 -modified: 2023-08-15 -keywords: ['object','storage','lifecycle','policy','policies','delete','bucket','version','multipart'] -aliases: ['/platform/object-storage/how-to-manage-objects-with-lifecycle-policies/','/platform/object-storage/lifecycle-policies/','/guides/lifecycle-policies/','/guides/how-to-manage-objects-with-lifecycle-policies/'] -tags: ["linode platform"] ---- - -While deleting a few objects in an Object Storage bucket might not take that long, when the objects number in the thousands or even millions the time required to complete the delete operations can easily become unmanageable. When deleting a substantial amount of objects, it's best to use *lifecycle policies*. These policies can be represented in XML; here's an (incomplete) snippet of an action that will delete objects after 1 day: - -```file - - 1 - -``` - -A lifecycle policy is applied to a bucket. Policies are sets of rules that govern the management of objects after they have aged for a certain amount of time. For instance, you can create a lifecycle policy that deletes objects every thirty days, or once a week. This is useful for cases where the data in a bucket becomes outdated, such as when collecting activity logs. - -## In This Guide - -This guide will first describe [when policies are enforced](#when-policies-are-enforced) and will then explain how to create and delete lifecycle policies with two tools: - -- [s3cmd command line interface](#s3cmd) (CLI): In addition to deleting objects, more complicated policies can be managed with s3cmd, including deleting old versions of objects that have been retained, and failed multipart uploads. - -- [Cyberduck desktop application](#cyberduck) (GUI): Cyberduck does not feature as many policy options, but they can be managed through a point-and-click interface. - -## Before You Begin - -* Familiarize yourself with the basics of Linode Object Storage by reviewing the [Get Started with Object Storage](/docs/products/storage/object-storage/get-started/) guide or taking a look through the available [Object Storage guides](/docs/products/storage/object-storage/guides/). -* For demonstration purposes, you can create an Object Storage bucket with a few objects that you will later delete. - -## When Policies are Enforced - -Lifecycle policies are triggered starting at midnight of the Object Storage cluster's local time. This means that if you set a lifecycle policy of **one day**, the objects will be deleted **the midnight after they become 24 hours old**. - -{{% content "object-storage-cluster-shortguide" %}} - -For example, if an object is created at 5PM on January 1, it will reach 24 hours in age at 5PM on January 2. The policy will then be enforced on the object at 12AM on January 3. - -{{< note >}} -There is a chance that a lifecycle policy will not delete all of the files in a bucket the first time the lifecycle policy is triggered. This is especially true for buckets with upwards of a million objects. In cases like these, *most* of the objects are deleted, and any remaining objects are typically deleted during the next iteration of the lifecycle policy's rules. -{{< /note >}} - -## Create and Delete Lifecycle Policies - -### s3cmd - -[s3cmd](https://s3tools.org/s3cmd) allows users to set and manage lifecycle policies from the command line. In this section, you will find instructions on how to create and manage lifecycle policies to delete objects, previous versions of objects, and failed multipart uploads using s3cmd. - -{{< note >}} -If you don't have s3cmd set up on your computer, visit the [Using s3cmd with Object Storage](/docs/products/storage/object-storage/guides/s3cmd/) guide. -{{< /note >}} - -#### Creating a Lifecycle Policy File - -In S3-compatible Object Storage, a lifecycle policy is represented by an XML file. You can use your preferred text editor to create this XML file. Consider the following lifecycle policy file: - -```file {title="lifecycle_policy.xml" lang="xml"} - - - delete-all-objects - - - - Enabled - - 1 - - - -``` - -The above lifecycle policy deletes all objects in the bucket after one day. Each lifecycle policy file needs a `LifecycleConfiguration` block and a nested `Rule` block. The `Rule` block must contain `Prefix` and `Status`, and at least one action, like the `Expiration` block. It's also a good idea to include an `ID` block: - -| Block | Description | -| -- | -- | -| `ID` | Defines a name for the lifecycle policy rule. If your lifecycle policy contains multiple rules, then the ID for each should be unique. If one is not specified in your policy file, then a random alphanumeric ID will be assigned to your policy when the policy is applied to a bucket. | -| `Filter` |A Lifecycle rule can apply to all or a subset of objects in a bucket based on the element that you specify in the Lifecycle rule.You can filter objects by key prefix, object tags, or a combination of both.| -| `Prefix` | This string is used to select objects for deletion with the same matching prefix. For example, objects that begin with `error_report-` could be targeted for deletion by providing this prefix. This Prefix can be empty if you want a rule to apply to all files in a bucket. | -| `Status` | A string value describing the status of the lifecycle policy. To enable the policy, set this value to `Enabled`. To disable the policy set the value to `Disabled`. | -| `Expiration` | Contains the `Days` block. The `Days` block is the number of days before this rule will be enforced. In the above example, the `Days` is set to `1`, meaning that the objects in the bucket will be deleted after one day. | - -#### Additional Actions - -Other actions can also be specified in a rule: - -- `NoncurrentVersionExpiration` block, and its child, `NoncurrentDays`. These are used to control the lifecycle of objects with multiple older versions, and should only be used with buckets that have [bucket versioning](/docs/products/storage/object-storage/guides/versioning/) enabled. Using this option will delete objects that are not the newest, most current version. Below is an example of how to use `NoncurrentVersionExpiration`: - - ```file {title="lifecycle_policy_noncurrent_versions.xml" lang="xml"} - - - delete-prior-versions - - Enabled - - 1 - - - - ``` - - {{< note >}} - If a versioned object is deleted in a bucket with the `NoncurrentVersionExpiration` policy, only the DeleteMarker for that object (not the actual object itself) will be retained after the number of days specified by `NoncurrentDays` have passed since the object was deleted. - {{< /note >}} - -- `AbortIncompleteMultipartUpload`, and its child, `DaysAfterInitiation`. These work similarly to `NoncurrentVersionExpiration`, but instead of deleting previous versions of objects, they will delete failed multipart uploads. The following will delete failed multipart uploads three days after they were initiated: - - ```file {title="lifecycle_policy_multipart_upload.xml" lang="xml"} - - - delete-incomplete-multipart-uploads - - Enabled - - 3 - - - - ``` - - {{< note title"About multipart uploads" >}} - Objects that are part of failed multipart uploads (the mechanism by which large files are uploaded) stay within Object Storage buckets, counting towards your total Object Storage costs. s3cmd will automatically initiate a multipart upload when a file is larger than 15MB. Lifecycle policies are a great way to clear out stale multipart uploads. - {{< /note >}} - -{{< note type="alert" >}} -Linode Object Storage does not support the `NewerNoncurrentVersions` policy. -{{< /note >}} - -#### Multiple Actions in One Rule - -More than one action can be specified in a single rule. For example, you may want to both expire the current version of an object after a set number of days and also remove old versions of it after another period of time. The following policy will delete the current version of an object after 10 days and remove any noncurrent versions of an object 3 days after they are demoted from the current version: - -```file {title="lifecycle_policy_multiple_actions.xml" lang="xml"} - - - delete-prior-versions - - Enabled - - 10 - - - 3 - - - -``` - -{{< note >}} -As a reminder, if a versioned object is deleted, only the current version of the object will be deleted and all older versions will be preserved in the bucket. For this reason, the above rule has the effect of deleting any objects if they are not updated within 10 days, and then removing the remaining object versions after 3 days. -{{< /note >}} - -#### Multiple Rules - -A lifecycle policy file can only contain one `LifecycleConfiguration` block, but the `LifecycleConfiguration` block can contain more than one `Rule`. For instance, if you had a bucket that contained both error and general output logs, you could set a lifecycle policy that saves error logs for a week but deletes standard logs at the end of every day: - -```file {title="lifecycle_policy_error_and_standard_logs.xml" lang="xml"} - - - delete-error-logs - error - Enabled - - 7 - - - - delete-standard-logs - logs - Enabled - - 1 - - - -``` - -#### Uploading the Lifecycle Policy to a Bucket - -In order to apply a lifecycle policy to a bucket with s3cmd, you need to upload the lifecycle file to the bucket. This operation is not a normal PUT operation. Instead, the command to use is `setlifecycle`, followed by the name of the lifecycle policy file and the name of the bucket. In the example below, replace *example-bucket* with the name of your bucket. - - s3cmd setlifecycle lifecycle_policy.xml s3://example-bucket - -You should see output like the following: - -```output -s3://example-bucket/: Lifecycle Policy updated -``` - -Once the lifecycle policy has been uploaded, objects will be deleted according to the policy set in place. - -#### Viewing a Bucket's Lifecycle Policy - -To view a lifecycle policy after it has been uploaded to a bucket, use the `getlifecycle` command. Replace *example-bucket* with the name of your bucket: - - s3cmd getlifecycle s3://example-bucket - -You should see the contents of the XML file that was uploaded: - -```output - - - - delete-all - - Enabled - - 1 - - - -``` - -#### Deleting a Lifecycle Policy - -To delete a lifecycle policy that you've uploaded, effectively disabling it, use the `dellifecycle` command. Replace *example-bucket* with the name of your bucket: - - s3cmd dellifecycle s3://example-bucket - -You'll see a confirmation that the lifecycle policy was deleted: - -```output -s3://example-bucket: Lifecycle Policy deleted -``` - -### Cyberduck - -[Cyberduck](https://cyberduck.io/) allows less control over lifecycle polices than the s3cmd CLI. In particular, Cyberduck does not allow you to set a lifecycle policy that removes outdated versions of objects stored in buckets where [versioning](/docs/products/storage/object-storage/guides/versioning/) is enabled, nor does it allow you to delete multipart uploads. Cyberduck also limits the length of a lifecycle policy to commonly used time spans. Below you will learn how to set a lifecycle policy using Cyberduck. - -{{< note >}} -If you don't have Cyberduck set up on your computer, visit the [Using Cyberduck with Object Storage](/docs/products/storage/object-storage/guides/cyberduck/) guide. -{{< /note >}} - -#### Enable a Lifecycle Policy - -1. **Right click** or **control +** click on the bucket for which you would like to set a lifecycle policy. This will bring up the bucket info menu. - -1. Click on the **S3** tab to open the S3 bucket settings. - - ![Open the Cyberduck bucket settings menu.](lifecycle-policies-cyberduck-settings.png) - -1. Click on the checkbox labeled **Delete files** and select a time interval from the drop-down menu below it. - - ![Click on the "S3" tab and then check the box labeled "Delete files."](lifecycle-policies-cyberduck-lifecycle-settings.png) - -This will enable the lifecycle policy and the objects within the bucket will be deleted after the designated time. - -#### Disable a Lifecycle Policy - -To disable a lifecycle policy, uncheck the box entitled **Delete Files** that you checked in the previous section. \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/lifecycle-policies/lifecycle-policies-cyberduck-lifecycle-settings.png b/docs/products/storage/object-storage/guides/lifecycle-policies/lifecycle-policies-cyberduck-lifecycle-settings.png deleted file mode 100644 index cc068b1c18c..00000000000 Binary files a/docs/products/storage/object-storage/guides/lifecycle-policies/lifecycle-policies-cyberduck-lifecycle-settings.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/lifecycle-policies/lifecycle-policies-cyberduck-settings.png b/docs/products/storage/object-storage/guides/lifecycle-policies/lifecycle-policies-cyberduck-settings.png deleted file mode 100644 index 785c002d07f..00000000000 Binary files a/docs/products/storage/object-storage/guides/lifecycle-policies/lifecycle-policies-cyberduck-settings.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/linode-cli/index.md b/docs/products/storage/object-storage/guides/linode-cli/index.md deleted file mode 100644 index 7921a0f92aa..00000000000 --- a/docs/products/storage/object-storage/guides/linode-cli/index.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: "Using the Linode CLI with Object Storage" -description: "Learn how to use the Linode CLI to manage Linode's own Object Storage solution." -modified: 2023-06-27 ---- - -The Linode Command Line Interface (CLI) is a command line utility that gives you complete control over the Linode account. For interacting with Object Storage, there are two separate commands within the Linode CLI. - -- `linode object-storage [command]`: This resource provides access to managing Object Storage on a Linode account. -- `linode obj [command]`: With the Object Storage plugin, you can also create and remove buckets, upload objects, and more. - -This guide details how to use the `obj` plugin. For `linode object-storage` usage, see [Linode CLI Commands for Object Storage](/docs/products/tools/cli/guides/object-storage/). - -## Install and Configure the CLI - -Follow the instructions within the [Install and Configure the Linode CLI](/docs/products/tools/cli/guides/install/) guide to get started using the CLI. Be sure to also install the boto3 library, as that enables you to use the Object Storage CLI plugin and perform operations on buckets and objects. - -## Basic Commands - -To get a list of all available buckets, use the `ls` command: - -```command -linode-cli obj ls -``` - -To get a list of all objects in a bucket, use the `ls` command with the label of a bucket: - -```command -linode-cli obj ls my-example-bucket -``` - -For a complete list of commands available with the Object Storage plugin, use the `--help` flag: - -```command -linode-cli obj --help -``` - -## Create a Bucket with the CLI - -To create a bucket with the Linode CLI, use the `mb` command. See the [Bucket Name](#bucket-names) section for rules on naming the bucket. - -```command -linode-cli obj mb my-example-bucket -``` - -To delete a bucket, use the `rb` command: - -```command -linode-cli obj rb my-example-bucket -``` - -Currently, the Linode CLI defaults to creating buckets in the Newark data center. To change the cluster a bucket is created in, use the `--cluster` option, followed by the cluster name below: - -- `us-east-1` for the Newark data center. This is the current default. -- `eu-central-1` for the Frankfurt data center. -- `ap-south-1` for the Singapore data center. - -{{< note >}} -You need to use the `--cluster` option for every interaction with your bucket if it is not in `us-east-1`. -{{< /note >}} - -If the bucket has objects in it, you can not delete it from the Linode CLI immediately. Instead, remove the objects first, then delete the bucket. The [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/) tool has commands for deleting all objects from a bucket, and it can also force-delete a bucket with objects in it. - -## Upload, Download, and Delete an Object with the CLI - -1. As an example object, create a text file and fill it with some example text. - - ```command - echo 'Hello World!' > example.txt - ``` - -1. To upload an object to a bucket using the Linode CLI, use the `put` command. Provide the object name as the first parameter and the bucket label as the second: - - ```command - linode-cli obj put --acl-public example.txt my-example-bucket - ``` - - - If the bucket is in the Newark data center, the file is accessible at the URL `http://my-example-bucket.us-east-1.linodeobjects.com/example.txt`. - - If the bucket is in the Frankfurt data center, the file is accessible at the URL `http://my-example-bucket.eu-central-1.linodeobjects.com/example.txt`. - - If the bucket is in the Singapore data center, the file is accessible at the URL `https://my-example-bucket.ap-south-1.linodeobjects.com/example.txt` - - {{< note >}} - The `--acl-public` flag is used to make the object publicly accessible, meaning that you can access the object from its URL. By default, all objects are set to private. To make a public file private, or a private file public, use the `setacl` command and supply the corresponding flag. - - For example, if you want to make a public file private, you would append the `--acl-private` flag: - - ```command - linode-cli obj setacl --acl-private my-example-bucket example.txt - ``` - {{< /note >}} - -1. To download an object, use the `get` command. Provide the label of the bucket as the first parameter and the name of the file as the second: - - ```command - linode-cli obj get my-example-bucket example.txt - ``` - -1. To delete an object, use the `rm` or `del` command. Provide the label of the bucket as the first parameter and the name of the object as the second: - - ```command - linode-cli obj rm my-example-bucket example.txt - ``` - -## Create a Signed URL with the CLI - -Creating a **signed URL** lets you create a link to objects with limited permissions and a time limit to access them. To create a signed URL on a preexisting object with the CLI, use the following syntax: - -```command -linode-cli obj signurl my-example-bucket example.txt +300 -``` - -The output of the command is a URL that can be used for a set period of time to access the object, even if the ACL is set to private. In this case, `+300` represents the amount of time in seconds that the link remains active, or five minutes total. After this time has passed, the link expires and can no longer be used. - -## Create a Static Site with the CLI - -To create a static website from a bucket: - -1. Use the `ws-create` command, including the `--ws-index` and `--ws-error` flags: - - ```command - linode-cli obj ws-create my-example-bucket --ws-index=index.html --ws-error=404.html - ``` - - The `--ws-index` and `--ws-error` flags specify which objects the bucket should use to serve the static site's index page and error page, respectively. - -1. You need to separately upload the `index.html` and `404.html` files (or however you have named the index and error pages) to the bucket: - - ```command - echo 'Index page' > index.html - echo 'Error page' > 404.html - linode-cli obj put index.html 404.html my-example-bucket - ``` - -1. Set the `--aclpublic` flag on both the `index.html` and `404.html` files: - - ```command - linode-cli obj setacl --acl-public my-example-bucket index.html - linode-cli obj setacl --acl-public my-example-bucket 404.html - ``` - -1. The static site is accessed from a different URL than the generic URL for the Object Storage bucket. Static sites are available at the `website-us-east-1` subdomain for the Newark data center, the `website-eu-central-1` subdomain for the Frankfurt data center, or the `website-ap-south-1` subdomain for the Singapore data center. Using `my-example-bucket` as an example, navigate to either: - - - `http://my-example-bucket.website-us-east-1.linodeobjects.com` or - - `http://my-example-bucket.website-eu-central-1.linodeobjects.com` or - - `http://my-example-bucket.website-ap-south-1.linodeobjects.com` - -For more information on hosting static websites from Linode Object Storage, see [Host a Static Site on Linode's Object Storage](/docs/guides/host-static-site-object-storage/) guide. - -## Creating a New Access Key - -If for whatever reason the access key you've set up when initially [Configuring the CLI](#install-and-configure-the-cli) has been revoked or deleted, you may see the following error message: - -```output -Error: InvalidAccessKeyId -``` - -You can create and configure a new Access Key at any time by running the following command: - -```command -linode-cli obj regenerate-keys -``` - -After running the command the access is restored, and you can see the new key listed at any time using the following command: - -```command -linode-cli object-storage keys-list -``` - -{{< note >}} -Any new object storage keys issued through the CLI is prefixed with `linode-cli` as the label. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/manage-buckets/bucket-list.png b/docs/products/storage/object-storage/guides/manage-buckets/bucket-list.png deleted file mode 100644 index 787428bc3ee..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-buckets/bucket-list.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-buckets/delete-obj-bucket-confirm.png b/docs/products/storage/object-storage/guides/manage-buckets/delete-obj-bucket-confirm.png deleted file mode 100644 index 8916c5f8795..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-buckets/delete-obj-bucket-confirm.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-buckets/delete-obj-bucket.png b/docs/products/storage/object-storage/guides/manage-buckets/delete-obj-bucket.png deleted file mode 100644 index 46b46eb3944..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-buckets/delete-obj-bucket.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-buckets/index.md b/docs/products/storage/object-storage/guides/manage-buckets/index.md deleted file mode 100644 index f50758c6a07..00000000000 --- a/docs/products/storage/object-storage/guides/manage-buckets/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Create and Manage Buckets" -description: "Learn how to view, create, and delete Object Storage buckets through Cloud Manager." -published: 2022-02-07 -modified: 2022-03-04 -aliases: ['/products/storage/object-storage/guides/create-bucket/','/products/storage/object-storage/guides/delete-bucket/'] ---- - -Buckets are the primary containers within Object Storage. Each bucket stores your files (objects) and lets you access or share those files. - -## View Buckets - -Log in to [Cloud Manager](https://cloud.linode.com/) and select **Object Storage** from the left menu. If you currently have buckets on your account, they are listed on this page, along with their URL, region, size, and the number of objects (files) they contain. - -![](bucket-list.png) - -You can also view your bucket through the [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/), [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/#view-your-buckets-and-files), [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/#list-buckets), and [s4cmd](/docs/products/storage/object-storage/guides/s4cmd/#list-buckets). - -## Create a Bucket - -One of the first steps to using Object Storage is to create a bucket. Here's how to create a bucket using Cloud Manager, though you can also use the [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/#create-a-bucket-with-the-cli), [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/#create-a-bucket), and [s4cmd](/docs/products/storage/object-storage/guides/s4cmd/#create-a-bucket). - -1. Navigate to the **Object Storage** page in Cloud Manager (see [View Buckets](#view-buckets)). - -1. Click the **Create Bucket** button to open the *Create Bucket* panel. If you have not created an access key or a bucket on this account, you are prompted to enable Object Storage. - - {{< note >}} - Billing for Object Storage starts as soon as it is enabled on the account. See [Object Storage Pricing](/docs/products/storage/object-storage/#pricing) for more detail on the minimum flat-rate and per GB charge. See [Cancel Object Storage](/docs/products/storage/object-storage/guides/cancel/) for instructions on cancelling this service. - {{< /note >}} - -1. Within the *Create Bucket* form, add a **Label** for the new bucket. This label must be unique and should not be used by any other bucket (from any customer) in the selected data center. Keep the following formatting requirements in mind: - - Must be between 3 and 63 characters in length. - - Can only contain lower-case characters, numbers, periods, and dashes. - - Must start with a lowercase letter or number. - - Cannot contain underscores (_), end with a dash (-) or period (.), have consecutive periods (.), or use dashes (-) adjacent to periods (.). - - Cannot be formatted as IP addresses. - - {{< note >}} - If you intend to use this bucket with a custom domain, the bucket must be labeled as your fully qualified domain name, such as `assets.example.com` or any subdomain of `*.your-domain.tld`. - {{< /note >}} - -1. Choose a **Region** for the bucket to reside. See the Availability section on the [Object Storage Overview](/docs/products/storage/object-storage/#availability) page for a list of available regions. - -1. Click **Submit** to create the bucket. - -You are now ready to [upload files to the bucket](/docs/products/storage/object-storage/guides/manage-files/). - -## Delete a Bucket - -Follow these steps to delete an Object Storage bucket from Cloud Manager. You can also use the [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/), [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/#delete-a-bucket), and [s4cmd](/docs/products/storage/object-storage/guides/s4cmd/#delete-a-bucket). - -{{< note >}} -Only empty buckets are able to be deleted through Cloud Manager. To delete objects, see [Delete a File/Object](/docs/products/storage/object-storage/guides/manage-files/#delete-a-file). Alternatively, you can use the following S3cmd command, which deletes a non-empty bucket. See [S3cmd > Delete a Bucket](/docs/products/storage/object-storage/guides/s3cmd/#delete-a-bucket) for more details. - - s3cmd rb -r -f s3://example-bucket/ -{{< /note >}} - -1. Navigate to the **Object Storage** page in Cloud Manager (see [View Buckets](#view-buckets)). - -1. Locate the bucket you wish to delete and click the corresponding **Delete** button. - - ![Delete an Object Storage bucket](delete-obj-bucket.png) - -1. A dialog box appears that prompts you to enter the bucket's name as a way to confirm that you'd like to delete the bucket. Type the bucket's name into the text entry field and click **Delete**. - - ![Confirm deleting the Object Storage bucket](delete-obj-bucket-confirm.png) \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/manage-files/drag-drop-image-bucket.png b/docs/products/storage/object-storage/guides/manage-files/drag-drop-image-bucket.png deleted file mode 100644 index 056ff16058d..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/drag-drop-image-bucket.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/index.md b/docs/products/storage/object-storage/guides/manage-files/index.md deleted file mode 100644 index d21e91961e7..00000000000 --- a/docs/products/storage/object-storage/guides/manage-files/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "Upload and Manage Files (Objects)" -description: "" -aliases: ['/products/storage/object-storage/guides/upload-objects/','/products/storage/object-storage/guides/delete-objects/','/products/storage/object-storage/guides/view-objects/'] ---- - -The primary function of Object Storage is to allow you to host files, also called objects. This guide walks you through using Cloud Manager to view, upload, download, and delete files. - -## View Files Stored within a Bucket - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Object Storage** from the left menu. - -1. Locate the bucket you wish to view and click its label/name to open it. - - ![](open-bucket.png) - -1. This opens the bucket's details page and displays a list of all the files (objects) stored within it. - - ![](view-bucket-files.png) - -## Upload Files - -Follow these steps to upload objects to a bucket using Cloud Manager: - -{{% content "object-storage-character-warning-shortguide" %}} - -1. Navigate to the **Bucket** page in Cloud Manager (see [View Files](#view-files-stored-within-a-bucket)). - -1. Files can be uploaded through either the dragging and dropping them into the file upload pane or by browsing for the files. - - - **Drag and drop:** Select any files or folders you wish to upload (either on your desktop or within your own file explorer / finder window). Drag those files into the file upload pane on your web browser, as shown below: - - ![](object-upload-pane-drop.png) - - - **Browse for files:** Click the **Browse Files** button to bring up your local computer's file browser and select a file or group of files to upload. This method does not allow you to upload a folder. - -1. Each file that's being upload appears within the upload pane, along with its size and a progress meter. Once the file has been uploaded, a checkmark appears to the right of the file and its visible within the list of objects. - - ![](object-upload-success.png) - - {{< note >}} - Individual object uploads are limited to a size of 5GB each, though larger object uploads can be facilitated with multipart uploads. [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/) and [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/) do this for you automatically if a file exceeds this limit as part of the uploading process. - {{< /note >}} - -## Download a File - -1. Navigate to the **Bucket** page in Cloud Manager (see [View Files](#view-files-stored-within-a-bucket)). - -1. Locate the file you wish to download and click the **Download** button. - - ![](object-download.png) - -1. The object is downloaded to your local computer, typically within the *Downloads* directory for your user. - -## Delete a File - -Follow these steps to delete objects in a bucket from Cloud Manager: - -1. Navigate to the **Bucket** page in Cloud Manager (see [View Files](#view-files-stored-within-a-bucket)). - -1. Locate the file you wish to delete and click the **Delete** button. - - ![](object-delete.png) - -1. A dialog box appears prompting you to confirm if you'd like to delete the object. Click **Delete** to proceed. - - ![](object-delete-confirm.png) \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/manage-files/object-delete-confirm.png b/docs/products/storage/object-storage/guides/manage-files/object-delete-confirm.png deleted file mode 100644 index 9fa065d8d11..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/object-delete-confirm.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/object-delete.png b/docs/products/storage/object-storage/guides/manage-files/object-delete.png deleted file mode 100644 index 9e70eb34bd3..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/object-delete.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/object-download.png b/docs/products/storage/object-storage/guides/manage-files/object-download.png deleted file mode 100644 index 7f78c5b5640..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/object-download.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/object-upload-pane-drop.png b/docs/products/storage/object-storage/guides/manage-files/object-upload-pane-drop.png deleted file mode 100644 index 29bb6ec1a41..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/object-upload-pane-drop.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/object-upload-success.png b/docs/products/storage/object-storage/guides/manage-files/object-upload-success.png deleted file mode 100644 index 2eea46e880d..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/object-upload-success.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/open-bucket.png b/docs/products/storage/object-storage/guides/manage-files/open-bucket.png deleted file mode 100644 index bb2c05ec70e..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/open-bucket.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/select-bucket.png b/docs/products/storage/object-storage/guides/manage-files/select-bucket.png deleted file mode 100644 index c00d186895c..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/select-bucket.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/successful-object-upload.png b/docs/products/storage/object-storage/guides/manage-files/successful-object-upload.png deleted file mode 100644 index 867c4ce5404..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/successful-object-upload.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/upload-with-file-browser.png b/docs/products/storage/object-storage/guides/manage-files/upload-with-file-browser.png deleted file mode 100644 index 3453d9b87f7..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/upload-with-file-browser.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/manage-files/view-bucket-files.png b/docs/products/storage/object-storage/guides/manage-files/view-bucket-files.png deleted file mode 100644 index 1be1f559bea..00000000000 Binary files a/docs/products/storage/object-storage/guides/manage-files/view-bucket-files.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/s3cmd/index.md b/docs/products/storage/object-storage/guides/s3cmd/index.md deleted file mode 100644 index a4c639dc57b..00000000000 --- a/docs/products/storage/object-storage/guides/s3cmd/index.md +++ /dev/null @@ -1,261 +0,0 @@ ---- -title: "Using S3cmd with Object Storage" -description: "Learn how to use the S3cmd command-line tool with Linode's Object Storage." -modified: 2023-02-10 ---- - -[S3cmd](https://s3tools.org/s3cmd) is a command line utility that you can use for any S3-compatible Object Storage. - -## Installing S3cmd - -The following commands will install s3cmd on various common operating systems. Additional methods of installing s3cmd can be found within the S3cmd GitHub repository under the [Installation of s3cmd package](https://github.com/s3tools/s3cmd/blob/master/INSTALL.md) file. - -### Mac - -To install s3cmd on a Mac, [Homebrew](https://brew.sh/) can be used: - -```command -brew install s3cmd -``` - -{{< note >}} -On macOS, s3cmd might fail to install if you do not have XCode command line tools installed. If that is the case, run the following command: - -```command -xcode-select --install -``` -{{< /note >}} - -### Linux - -To install s3cmd on a Linux system (such as CentOS, Ubuntu, or Debian), Python’s package manager [pip](/docs/guides/how-to-manage-packages-and-virtual-environments-on-linux/) can be used. - -```command -sudo pip install s3cmd -``` - -Some Linux distributions are also able to install s3cmd from their own package managers, but those versions may not be as up to date. See [Download S3cmd](https://s3tools.org/download) for more information. - -## Configuring S3cmd - -After s3cmd has been installed, it needs to be configured to work with the buckets and objects on your Linode account. - -1. Run the following command to start the configuration process. - - ```command - s3cmd --configure - ``` - -1. This command will prompt you with a series of questions. Answer them based on the recommendations below: - - - **Access Key:** Enter the access key you wish to use. See [Managing Access Keys](/docs/products/storage/object-storage/guides/access-keys/). - - **Secret Key:** Enter the secret key that corresponds with the access key. This was displayed once when generating the access key. - - **Default Region:** `US` (do not change, even if you use Object Storage in a different region) - - **S3 Endpoint** (cluster URL): `[cluster-id].linodeobjects.com`, where [cluster-id] is the id of your data center. See [Access Buckets and Files through URLs > Cluster URL (S3 Endpoint)](/docs/products/storage/object-storage/guides/urls/#cluster-url-s3-endpoint) for more details and a list of cluster IDs. - - **DNS-style bucket+hostname:port template for accessing a bucket:** `%(bucket)s.[cluster-id].linodeobjects.com`, replacing [cluster-id] with the same id used previously. - - **Encryption password:** Enter your GPG key if you intend to store and retrieve encrypted files (optional). - - **Path to GPG program:** Enter the path to your GPG encryption program (optional). - - **Use HTTPS protocol:** `Yes` - - **HTTP Proxy server name:** (Leave blank) - - **HTTP Proxy server port:** (Leave blank) - -1. When the prompt appears to test access with the supplied credentials, enter `n` to skip. Currently, this process results in the following error - even when the settings are correct. - - ```output - Please wait, attempting to list all buckets... - ERROR: Test failed: 403 (SignatureDoesNotMatch) - ``` - -1. When the prompt appears to save your settings, enter `Y`. A configuration file named `.s3cfg` is created within your home directory. - -### Additional Configuration Options - -S3cmd offers a number of additional configuration options that are not presented as prompts by the `S3cmd --configure` command. To modify any s3cmd configuration options (including the ones from the previous step), you can edit the configuration file directly. This configuration file is named `.s3cfg` and should be stored with your local home directory. For our purposes, its recommended to adjust the following option: - -- **website_endpoint:** `http://%(bucket)s.website-[cluster-id].linodeobjects.com/`, replacing *[cluster-id]* with the id corresponding to the data center your buckets are located within (listed on the [Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/) page). - -## Interacting with Buckets - -### List Buckets - -List all buckets within the data center specified during the configuration process. - -**Command:** `s3cmd ls` - -To list the buckets within a different data center, use the `--host` parameter as shown below. Replace `us-east-1` with the cluster ID of the data center you wish to use. - -**Example**: List all buckets on the account within the Newark data center when s3cmd has been configured for a different data center: - -```command -s3cmd ls --host=https://us-east-1.linodeobjects.com -``` - -### Create a Bucket - -Creates a bucket with the specified bucket label. See the [Create and Manage Buckets](/docs/products/storage/object-storage/guides/manage-buckets/#create-a-bucket) guide for rules on naming the bucket. - -**Command:** `s3cmd mb s3://[bucket-label]`, replacing *[bucket-label]* with the label you'd like to use for the new bucket. - -**Example:** Create a bucket with the label of "example-bucket": - -```command -s3cmd mb s3://example-bucket -``` - -### Delete a Bucket - -Deletes the bucket with the specified label. - -**Command:** `s3cmd rb s3://[bucket-label]`, replacing *[bucket-label]* with the label of the bucket you wish to delete. - -**Example:** Delete the bucket with the label of "example-bucket": - -```command -s3cmd rb s3://example-bucket -``` - -To delete a bucket that has files in it, include the `--recursive` (or `-r`) option *and* the `--force` (or `-f`) option. Use caution when running this command: - -```command -s3cmd rb -r -f s3://example-bucket/ -``` - -## Interacting with Objects - -### List Objects - -**Command:** `s3cmd ls s3://[bucket-label]/[path]`, replacing *[bucket-label]* with the label for your bucket and *[path]* with the full path of directory you wish to view (optional). - -**Example:** List all objects within the bucket called "example-bucket": - -```command -s3cmd ls s3://example-bucket/ -``` - -### Upload an Object - -**Command:** `s3cmd put [file] s3://[bucket-label]/[path]`, replacing *[file]* with the name and path of the file you wish to upload, *[bucket-label]* with the label for your bucket and *[path]* with the optional directory within the bucket. - -**Example:** Upload the file "file.txt" to the bucket called "example-bucket": - -```command -s3cmd put file.txt s3://example-bucket/ -``` - -**Additional command options:** -- `-P`: Makes the object publicly accessible. This will allow the object to be accessed by anyone with the URL. Once successfully uploaded, s3cmd will output the public URL. -- `-e`: Encrypts the object (if you've configured the correct s3cmd options to enable encryption). - -{{% content "object-storage-character-warning-shortguide" %}} - -### Download an Object or Directory - -**Command:** `s3cmd get s3://[bucket-label]/[path]`, replacing *[bucket-label]* with the label for your bucket and *[path]* with the full path and optional filename of the file or directory you wish to download. - -**Example:** Download the file "file.txt" from the bucket called "example-bucket": - -```command -s3cmd get s3://example-bucket/file.txt -``` - -**Additional command options:** -- `-e`: Decrypts an encrypted object. - -### Delete an Object or Directory - -**Command:** `s3cmd rm s3://[bucket-label]/[path]`, replacing *[bucket-label]* with the label for your bucket and *[path]* with the full path and optional filename of the file or directory you wish to delete. - -**Example:** Delete the "file.txt" file on the bucket called "example-bucket": - -```command -s3cmd rm s3://example-bucket/file.txt -``` - -To delete all files in a bucket, include the `--recursive` (or `-r`) option *and* the `--force` (or `-f`) option. Use caution when running this command: - -```command -s3cmd rm -r -f s3://example-bucket/ -``` - -## Permissions and Access Controls - -### Apply a Bucket Policy - -**Command:** `s3cmd setpolicy [policy-file] s3://[bucket-label]`, replacing *[bucket-label]* with the label for your bucket and *[policy-file]* with the filename and path of your bucket policy file. - -**Example:** Apply the bucket policies defined within the file "policy.json" to the bucket called "example-bucket": - -```command -s3cmd setpolicy policy.json s3://example-bucket -``` - -To ensure that it has been applied correctly, you can use the `info` command: - -```command -s3cmd info s3://bucket-policy-example -``` - -You should see output like the following: - -```output -s3://example-bucket/ (bucket): - Location: default - Payer: BucketOwner - Expiration Rule: none - Policy: b'{\n "Version": "2012-10-17",\n "Statement": [{\n "Effect": "Allow",\n "Principal": {"AWS": ["arn:aws:iam:::user/a0000000-000a-0000-0000-00d0ff0f0000"]},\n "Action": ["s3:PutObject","s3:GetObject","s3:ListBucket"],\n "Resource": [\n "arn:aws:s3:::bucket-policy-example/*"\n ]\n }]\n}' - CORS: none - ACL: a0000000-000a-0000-0000-00d0ff0f0000: FULL_CONTROL -``` - -## Create a Signed URL with S3cmd - -Creating a **signed URL** lets you create a link to objects with limited permissions and a time limit to access them. To create a signed URL on a preexisting object with s3cmd, use the following syntax: - -```command -s3cmd signurl s3://my-example-bucket/example.txt +300 -``` - -The output of the command is a URL that can be used for a set period of time to access the object, even if the ACL is set to private. In this case, `+300` represents the amount of time in seconds that the link remains active, or five minutes total. After this time has passed, the link expires and can no longer be used. - -## Create a Static Site with S3cmd - -You can also create a static website using Object Storage and s3cmd: - -1. To create a website from a bucket, use the `ws-create` command: - - ```command - s3cmd ws-create --ws-index=index.html --ws-error=404.html s3://my-example-bucket - ``` - - The `--ws-index` and `--ws-error` flags specify which objects the bucket should use to serve the static site's index page and error page, respectively. - -1. You need to separately upload the `index.html` and `404.html` files (or however you have named the index and error pages) to the bucket: - - ```command - echo 'Index page' > index.html - echo 'Error page' > 404.html - s3cmd put index.html 404.html s3://my-example-bucket - ``` - -1. The static site is accessed from a different URL than the generic URL for the Object Storage bucket. Static sites are available at the `website-us-east-1` subdomain for the Newark data center, the `website-eu-central-1` subdomain for the Frankfurt data center, and the `website-ap-south-1` subdomain for the Singapore data center. Using `my-example-bucket` as an example, you would navigate to either: - - - `http://my-example-bucket.website-us-east-1.linodeobjects.com` or - - `http://my-example-bucket.website-eu-central-1.linodeobjects.com`. - -For more information on hosting a static website with Object Storage, read our [Host a Static Site using Linode Object Storage](/docs/guides/host-static-site-object-storage/) guide. - -## Syncing Files and Directories - -While you can use the `put` command to upload entire directories, the `sync` command may offer more desirable behavior. `sync` identifies which files have been added or modified and only uploads those files. This can be especially useful when maintaining large amounts of files, such as the contents of a static site. - -**Command:** `s3cmd sync [local-path] s3://[bucket-label]/[path]`, replacing *[local-path]* with the path to the folder you wish to upload, *[bucket-label]* with the label for your bucket, and *[path]* with the remote path you wish to target for the upload. - -{{< note >}} -To upload the current directory, replace *[local-path]* with `./`. -{{< /note >}} - -**Example:** Upload the current directory to the bucket labeled *example-bucket* and make all files public. - -```command -s3cmd sync ./ s3://example-bucket -P -``` diff --git a/docs/products/storage/object-storage/guides/s4cmd/index.md b/docs/products/storage/object-storage/guides/s4cmd/index.md deleted file mode 100644 index c31ecb19131..00000000000 --- a/docs/products/storage/object-storage/guides/s4cmd/index.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Using s4cmd with Object Storage" -description: "Learn how to use the s4cmd command-line tool with Linode's Object Storage." ---- - -The [s4cmd](https://github.com/bloomreach/s4cmd) software is a command-line tool that can access S3-compatible storage services, such as Linode's Object Storage. It uses the [S3 client](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html) in Amazon's boto3 library. Compared to the popular s3cmd tool, s4cmd is typically much faster but it has less options and is less configurable. For many use cases, the [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/) or [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/) is recommended. - -## Installing s4cmd - -To install S3cmd on both Mac and Linux systems, Python’s package manager [pip](/docs/guides/how-to-manage-packages-and-virtual-environments-on-linux/) can be used. - - sudo pip install s4cmd - -Some Linux distributions are also able to install s4cmd from their own package managers, but those versions may not be as up to date. See [Download S3cmd](https://s3tools.org/download) for more information. - -Additional methods of installing s4cmd can be found within the s4cmd Readme file under [Installation and Setup](https://github.com/bloomreach/s4cmd#installation-and-setup). - -## Configuring Credentials - -To access Object Storage buckets and objects, s4cmd needs to know the Access Key and Secret Key to use. By default, s4cmd looks for these credentials in the `~/.s3cfg` file, which is the configuration file that s3cmd uses. If you do not have s3cmd installed and configured, create this file and add the following contents. - -```file {title="~/.s3cfg"} -[default] -access_key = YOUR_ACCESS_KEY -secret_key = YOUR_SECRET_KEY -``` - -Replace `YOUR_ACCESS_KEY` and `YOUR_SECRET_KEY` with the access key and secret key created on your Linode account. If you haven't yet created these credentials, follow the [Managing Access Keys](/docs/products/storage/object-storage/guides/access-keys/) guide. - -Additional methods of configuring your credentials can be found on the s4cmd Readme file under [Installation and Setup](https://github.com/bloomreach/s4cmd#installation-and-setup). - -## Specifying the Endpoint URL - -Originally, s4cmd was used for Amazon S3. To allow this tool to be used by other S3-compatible solutions, the `--endpoint-url` command option was added. When running any s4cmd command, you will need to specify the full endpoint url of the Linode Object Storage Cluster that your bucket resides in. For a full list of Clusters and their associated S3 endpoints, see the[Access Buckets and Files through URLs](/docs/products/storage/object-storage/guides/urls/) guide). - -As an example, the following command will list all buckets in the Newark data center: - - s4cmd ls --endpoint-url https://us-east-1.linodeobjects.com - -## Interacting with Buckets - -### List Buckets - -**Command:** `s4cmd ls` - -**Example**: List all buckets on the account within the Newark data center: - - s4cmd ls --endpoint-url https://us-east-1.linodeobjects.com - -### Create a Bucket - -**Command:** `s4cmd mb s3://[bucket-label]`, replacing *[bucket-label]* with the label you'd like to use for the new bucket. - -**Example:** Create a bucket with the label of "example-bucket" in the Newark data center: - - s4cmd mb s3://example-bucket --endpoint-url https://us-east-1.linodeobjects.com - -### Delete a Bucket - -There is currently no defined command for deleting a bucket through s4cmd. - -## Interacting with Objects - -### List Objects - -**Command:** `s4cmd ls [path]`, where *[path]* is the path of the directory you'd like to view within a bucket. - -**Example:** List all objects within the bucket called "example-bucket", located in the Newark data center: - - s4cmd ls s3://example-bucket/ --endpoint-url https://us-east-1.linodeobjects.com - -### Upload an Object - -**Command:** `s4cmd put [file] s3://[bucket-label]/[path]`, replacing *[file]* with the name and path of the file you wish to upload, *[bucket-label]* with the label for your bucket and *[path]* with the optional directory within the bucket. - -**Example:** Upload the file "file.txt" to the bucket called "example-bucket", located in the Newark data center: - - s4cmd put file.txt s3://example-bucket/ --endpoint-url https://us-east-1.linodeobjects.com - -{{% content "object-storage-character-warning-shortguide" %}} - -### Download an Object or Directory - -**Command:** `s4cmd get s3://[bucket-label]/[path]`, replacing *[bucket-label]* with the label for your bucket and *[path]* with the full path and optional filename of the file or directory you wish to download. - -**Example:** Download the file "file.txt" from the bucket called "example-bucket", located in the Newark data center: - - s4cmd get s3://example-bucket/file.txt --endpoint-url https://us-east-1.linodeobjects.com - -### Delete an Object or Directory - -**Command:** `s4cmd del s3://[bucket-label]/[path]`, replacing *[bucket-label]* with the label for your bucket and *[path]* with the full path and optional filename of the file or directory you wish to delete. - -**Example:** Delete all the files within the "files" directory on the bucket called "example-bucket", located in the Newark data center: - - s4cmd del s3://example-bucket/files/ --endpoint-url https://us-east-1.linodeobjects.com - -## Additional Commands - -Additional commands and options for s4cmd can be found on the [s4cmd Readme](https://github.com/bloomreach/s4cmd) page or by running `s4cmd --help`. \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/urls/AccessingObjectswithLinodeObjectStorage.png b/docs/products/storage/object-storage/guides/urls/AccessingObjectswithLinodeObjectStorage.png deleted file mode 100644 index f1528c85fb9..00000000000 Binary files a/docs/products/storage/object-storage/guides/urls/AccessingObjectswithLinodeObjectStorage.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/urls/bucket-url-details.png b/docs/products/storage/object-storage/guides/urls/bucket-url-details.png deleted file mode 100644 index 8388c75a28d..00000000000 Binary files a/docs/products/storage/object-storage/guides/urls/bucket-url-details.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/urls/bucket-url.png b/docs/products/storage/object-storage/guides/urls/bucket-url.png deleted file mode 100644 index 7eff6560c9c..00000000000 Binary files a/docs/products/storage/object-storage/guides/urls/bucket-url.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/urls/index.md b/docs/products/storage/object-storage/guides/urls/index.md deleted file mode 100644 index 05382ec00b0..00000000000 --- a/docs/products/storage/object-storage/guides/urls/index.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: "Access Buckets and Files through URLs" -description: "Learn how to obtain URLs to objects within Linode's Object Storage service." -published: 2020-01-22 -modified: 2024-02-20 -keywords: ['object','storage','bucket'] -image: AccessingObjectswithLinodeObjectStorage.png -tags: ["linode platform"] -aliases: ['/platform/object-storage/how-to-access-objects-with-linode-object-storage/','/guides/how-to-access-objects-with-linode-object-storage/','/products/storage/object-storage/guides/access-objects/'] ---- - -Linode's Object Storage service gives each bucket and file a unique URL. This URL is managed through the shared domain *\*.linodeobjects.com* and your files are encrypted through the use of HTTPS. By default, files are only visible by you (the owner) through Cloud Manager or through other tools and applications using an access key with permissions to read (or read/write) the bucket. - -You're also able to make these files accessible to anyone through their URLs by setting up ACLs so the files are public. This makes Object Storage great for sharing and storing unstructured data like images, documents, archives, streaming media assets, and file backups, and the amount of data you store can range from small collections of files up to massive libraries of information. - -Here are the types of URLs you can use to access buckets and files: - -- [Cluster URL](#cluster-url-s3-endpoint) -- [Bucket URL](#bucket-url) -- [File URL](#file-urls) -- [Signed URL](#signed-urls) -- [Website URL](#website-urls) -- [Custom URL](#custom-urls) - -## Cluster URL (S3 Endpoint) - -The cluster URL for Object Storage is unique to each data center. This URL can be used for accessing all of your Object Storage resources within a certain region. When used with third party tools, this URL might also be referred to as the *S3 endpoint*. - -**Cluster URL:** `https://[cluster-id].linodeobjects.com/`, replacing *[cluster-id]* with the id of your data center. The cluster URLs for each of the available data centers are listed below: - -| Data Center | Cluster ID | Cluster URL | -| -- | -- | -- | -| Amsterdam (Netherlands) | `nl-ams-1` | `https://nl-ams-1.linodeobjects.com` | -| Atlanta, GA (USA) | `us-southeast-1` | `https://us-southeast-1.linodeobjects.com` | -| Chennai (India) | `in-maa-1` | `https://in-maa-1.linodeobjects.com` | -| Chicago, IL (USA) | `us-ord-1` | `https://us-ord-1.linodeobjects.com` | -| Frankfurt (Germany) | `eu-central-1` | `https://eu-central-1.linodeobjects.com` | -| Jakarta (Indonesia) | `id-cgk-1` | `https://id-cgk-1.linodeobjects.com` | -| Los Angeles, CA (USA) | `us-lax-1` | `https://us-lax-1.linodeobjects.com` | -| Madrid (Spain) | `es-mad-1` | `https://es-mad-1.linodeobjects.com` | -| Miami, FL (USA) | `us-mia-1` | `https://us-mia-1.linodeobjects.com` | -| Milan (Italy) | `it-mil-1` | `https://it-mil-1.linodeobjects.com` | -| Newark, NJ (USA) | `us-east-1` | `https://us-east-1.linodeobjects.com` | -| Osaka (Japan) | `jp-osa-1 ` | `https://jp-osa-1.linodeobjects.com` | -| Paris (France) | `fr-par-1` | `https://fr-par-1.linodeobjects.com` | -| São Paulo (Brazil) | `br-gru-1` | `https://br-gru-1.linodeobjects.com` | -| Seattle, WA (USA) | `us-sea-1` | `https://us-sea-1.linodeobjects.com` | -| Singapore | `ap-south-1` | `https://ap-south-1.linodeobjects.com` | -| Stockholm (Sweden) | `se-sto-1` | `https://se-sto-1.linodeobjects.com` | -| Washington, DC (USA) | `us-iad-1` | `https://us-iad-1.linodeobjects.com` | - -## Bucket URL - -Each bucket has its own unique URL. This URL is useful when configuring a third party application to use a specific bucket for file storage. - -**Bucket URL:** `https://[bucket-label].[cluster-id].linodeobjects.com/`, replacing *[bucket-label]* with the label of your bucket and *[cluster-id]* with the id of your data center (listed in the [Cluster URL](#cluster-url-s3-endpoint) section). - -For example, a bucket labeled *example-bucket* within the Atlanta data center would have the following URL: - - https://example-bucket.us-southeast-1.linodeobjects.com - -### View a Bucket's URL through Cloud Manager - -You can build this URL manually or you can view the bucket URL through Cloud Manager (as shown below) or a tool like [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/#obtain-the-url-of-a-file) - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Object Storage** from the left menu. - -1. Locate the bucket you wish to use. The URL for the bucket is printed underneath the bucket label/name. - - ![](bucket-url.png) - -1. You can also click the details link to view *and copy* the URL. - - ![](bucket-url-details.png) - -## File URLs - -The URLs for files (objects) within a bucket are very similar to the bucket's own URL, simply with the filename and path appended to the end. This URL is useful when sharing the file with someone or accessing it from your website. - -**File (Object) URL:** `https://[bucket-label].[cluster-id].linodeobjects.com/[file]`, replacing *[bucket-label]* with the label of your bucket, *[cluster-id]* with the id of your data center (listed in the [Cluster URL](#cluster-url-s3-endpoint) section, and *[file]* with the full path, name, and extension of your file. - -For example, a file named *example-file.txt* stored on a bucket labeled *example-bucket* within the Atlanta data center would have the following URL: - - https://example-bucket.us-southeast-1.linodeobjects.com/example-file.txt - -### View a File's URL through Cloud Manager - -You can build this URL manually or you can view the file URL through Cloud Manager (as shown below) or a tool like [Cyberduck](/docs/products/storage/object-storage/guides/cyberduck/#obtain-the-url-of-a-file) - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Object Storage** from the left menu. - -1. Locate the bucket you wish to view and click its label/name to open it. - - ![](open-bucket.png) - -1. This opens the bucket's details page and displays a list of all the files (objects) stored within it. Locate the file you want to use and click the filename. - - ![](object-detail.png) - -1. The URL for the file is listed at the top of the details panel, as shown below: - - ![](object-detail-panel.png) - -## Signed URLs - -A **signed URL** gives anyone with the URL access to a file for a certain period of time. This is very useful when you want to share a document or file with someone, but don't wish to make the URL permanently accessible or able to be guessed by others. You can generate a signed URL through the [Linode CLI](/docs/products/storage/object-storage/guides/linode-cli/#create-a-signed-url-with-the-cli) or [s3cmd](/docs/products/storage/object-storage/guides/s3cmd/#create-a-signed-url-with-s3cmd). - -Here's an example of a signed URL: - - https://us-southeast-1.linodeobjects.com:443/example-bucket/example-file.txt?Signature=NUXLA378K28nMKgnaIcYjGroMXw%3D&Expires=1644600958&AWSAccessKeyId=YFULT4UZZULG82GFPQE2&x-amz-meta-mtime=1644590299284&x-amz-meta-storage-class=STANDARD - -## Website URLs - -You can configure a bucket to serve a static website (a website only containing static files like html, css, client-side javascript, images, and other non-dynamic resources). - -**Website URL:** `https://[bucket-label].website-[cluster-id].linodeobjects.com/`, replacing *[bucket-label]* with the label of your bucket and *[cluster-id]* with the id of your data center (listed in the [Cluster URL](#cluster-url-s3-endpoint) section. - -For example, if you have configured a website on a bucket labeled *example-bucket* within the Atlanta data center would have the following URL: - - https://example-bucket.website-us-southeast-1.linodeobjects.com - -For more information on hosting a static website with Object Storage, read our [Host a Static Site using Linode Object Storage](/docs/guides/host-static-site-object-storage/) guide. - -## Custom URLs - -So far, this guide has covered obtaining URLs that use the shared domain *\*.linodeobjects.com*. You can also configure a bucket to use a custom domain, such as `assets.example.com`. To do this, see [Configure a Custom Domain (with a TLS/SSL Certificate)](/docs/products/storage/object-storage/guides/custom-domain/). \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/urls/object-detail-panel.png b/docs/products/storage/object-storage/guides/urls/object-detail-panel.png deleted file mode 100644 index b19d3ed6072..00000000000 Binary files a/docs/products/storage/object-storage/guides/urls/object-detail-panel.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/urls/object-detail.png b/docs/products/storage/object-storage/guides/urls/object-detail.png deleted file mode 100644 index e0b9c10a74a..00000000000 Binary files a/docs/products/storage/object-storage/guides/urls/object-detail.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/urls/open-bucket.png b/docs/products/storage/object-storage/guides/urls/open-bucket.png deleted file mode 100644 index bb2c05ec70e..00000000000 Binary files a/docs/products/storage/object-storage/guides/urls/open-bucket.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/use-cases/index.md b/docs/products/storage/object-storage/guides/use-cases/index.md deleted file mode 100644 index 57d3b7e72e0..00000000000 --- a/docs/products/storage/object-storage/guides/use-cases/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Use Cases for Object Storage" -description: "This guide provides you with an introduction to Linode Object Storage and also offers you several practical use cases, as well as benefits and limitations." -published: 2019-08-26 -modified: 2023-03-31 -image: use-cases-for-linode-obj-storage.png -keywords: ['object','storage','s3','use','case'] -tags: ["linode platform"] -aliases: ['/platform/object-storage/object-storage-use-cases/','/guides/object-storage-use-cases/'] ---- - -## What is Object Storage? - -Object Storage is a method of storing data that differs in a number of ways from [Block Storage](/docs/products/storage/block-storage/). Block Storage splits files into small *blocks* of data. Minimal file metadata is stored alongside this data and, in general, descriptive metadata must be stored in a separate file or database. In order to use a Block Storage volume it must be attached to a host server, where it acts like a hard drive. - -In contrast, Object Storage stores data, called *objects*, in containers, called *buckets*, and each object is given a unique identifier with which it is accessed. In this way, the physical location of the object does not need to be known. The objects are stored alongside rich, configurable metadata that can be used to describe any number of arbitrary properties about the object. Each object has its own URL, so accessing the data is often as simple as issuing an HTTP request, either by visiting the object in a browser or retrieving it through the command line. - -### Benefits and Limitations - -Object Storage scales easily because all the objects are stored in a flat, scalable name space. Object Storage does not require a host server in order to be used, meaning many different clients can read from it or write to it. - -With that said, there are limitations to Object Storage. Objects in Object Storage cannot be modified at the block level, as with Block Storage, and must be rewritten in their entirety every time a change is made. This makes any scenario with many successive read/write operations – such as the needs of databases or transactional data – a poor choice for Object Storage. Additionally, Object Storage traffic runs over HTTP, so it does not benefit from the I/O speeds of a mounted Block Storage volume. As a rule of thumb, Object Storage shines when files do not need to be updated frequently. - -Below are some of the more popular use cases for Object Storage. - -## Use Cases - -### Static Site Hosting - -Because Object Storage buckets provide HTTP access to objects, it's easy to set up a bucket to serve static websites. A static website is a website that does not require a server-side processing language like PHP to render content. And because a static site does not require each page to be processed with every request, they are usually very quick to load. For more information on setting up a static site on Object Storage, read our [Host a Static Site on Linode Object Storage](/docs/guides/host-static-site-object-storage/) guide. For more on static site generators, visit our [How to Choose a Static Site Generator](/docs/guides/how-to-choose-static-site-generator/) guide. - -### Website Files - -If you don't want to host your entire site on Object Storage (for example: you plan to use a CMS like WordPress), you can still choose to host some of your site's assets, like images and downloads, with Object Storage. This will save disk space on your server and can help reduce your costs. - -### Software Storage and Downloads - -Similar to hosting website files, hosting software applications on Object Storage is a great use case for developers looking to give quick access to their products. Simply upload the file to a bucket and share its URL. - -### Unstructured Data - -Unstructured data is any data that does not fit into a traditional database. Object Storage excels at storing large amounts of unstructured data. With the ability to configure custom metadata for each piece of unstructured data, it is easy to extrapolate useful information from each object and to retrieve objects with similar metadata. Examples of unstructured data include [images, video, audio, documents,](#images-video-audio-and-documents) and [Big Data](#big-data). - -### Images, Video, Audio, and Documents - -Multimedia assets like images, videos, audio files, and documents are a perfect match for Object Storage. In general these types of files do not change frequently, so there is no need to store them on Block Storage volumes. Because each file has its own URL, streaming the content of these files or embedding them in another program or website is simple and does not require the use of a server. - -### Big Data - -Big Data typically describes data sets that are so large and so diverse that it takes specialized tooling to analyze them. In many cases the data that comprises Big Data is considered unstructured and does not fit neatly into a database, making it a great candidate for Object Storage. - -### Artifact Storage - -As more and more of the development life cycle becomes automated and tested, more and more artifacts are generated in the process. Object Storage is a great solution for developers looking to store these artifacts, such as the bulk collection of logs. Sharing stored artifacts is as simple as sharing a URL. And if you'd rather your artifacts stay private, you can distribute an access key. - -### Cold Storage - -Object Storage is, in the majority of cases, significantly cheaper than Block Storage. While Object Storage can incur a cost when retrieving data, the cost benefit for infrequently accessed data can provide you with an overall cost reduction when compared to similar methods. - -Similarly, Object Storage has benefits over [tape storage](https://en.wikipedia.org/wiki/Tape_drive). Tape storage is frequently used for archival purposes, but the read times that come with tape storage are many times more than what you'll find with Object Storage. Special considerations have to be made when transferring tape drive data, such as the ability to ship drives safely across long distances. With Object Storage, this data is available through HTTP from anywhere in the world. - -{{< note >}} -The outbound data transfer for Linode Object Storage is part of your Linode account's [total transfer pool](/docs/products/platform/get-started/guides/network-transfer/), which reduces or completely eliminate transfer costs for Object Storage if you are also running Linode Compute Instances. If you expend your allotted transfer pool, you are billed at a rate of $0.005 per GB for outbound transfers. -{{< /note >}} - -### Backups - -Databases and other critical data can be backed up to Object Storage with little effort using a command line client for easier automation. Objects within Object Storage are replicated and resilient to underlying hardware errors. Additionally, buckets can be versioned so you never lose access to older backups. - -### Private File Storage - -Objects can be made private and only accessible with a key. By default, all new objects in a bucket are set to private, so they are inaccessible by normal HTTP requests (though it's easy to set public permissions on objects if you'd like). This makes it easy to store secure data. - -## Next Steps - -If you're curious about how to use Object Storage, you can review the [Create and Manage Buckets](/docs/products/storage/object-storage/guides/manage-buckets/) guide and the [Upload and Manage Files](/docs/products/storage/object-storage/guides/manage-files/) guide for detailed instructions on creating buckets and uploading objects. Read our [Host a Static Site using Linode Object Storage](/docs/guides/host-static-site-object-storage/) to get started with hosting your own site on Object Storage. \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/use-cases/use-cases-for-linode-obj-storage.png b/docs/products/storage/object-storage/guides/use-cases/use-cases-for-linode-obj-storage.png deleted file mode 100644 index 330821a5037..00000000000 Binary files a/docs/products/storage/object-storage/guides/use-cases/use-cases-for-linode-obj-storage.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/versioning/cyberduck-bucket-info-s3-tab.png b/docs/products/storage/object-storage/guides/versioning/cyberduck-bucket-info-s3-tab.png deleted file mode 100644 index 9032e3c56ea..00000000000 Binary files a/docs/products/storage/object-storage/guides/versioning/cyberduck-bucket-info-s3-tab.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/versioning/cyberduck-enable-versioning.png b/docs/products/storage/object-storage/guides/versioning/cyberduck-enable-versioning.png deleted file mode 100644 index 451a69f6099..00000000000 Binary files a/docs/products/storage/object-storage/guides/versioning/cyberduck-enable-versioning.png and /dev/null differ diff --git a/docs/products/storage/object-storage/guides/versioning/index.md b/docs/products/storage/object-storage/guides/versioning/index.md deleted file mode 100644 index 8a94d364690..00000000000 --- a/docs/products/storage/object-storage/guides/versioning/index.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: "Versioning (Retain Object Version History)" -description: "Learn how to use versioning with Linode's Object Storage to retain previous versions of an object." -published: 2022-03-11 -aliases: ['/platform/object-storage/bucket-versioning/','/guides/bucket-versioning/'] ---- - -Versioning in Object Storage (also called *bucket versioning*, *object versioning*, and *S3 versioning*) is a method of retaining historical versions of files/objects. When this feature is enabled, objects are not overwritten or deleted. Instead, the new *current* version of an object is stored alongside each older *noncurrent* version. In the event that you need to recover old data, you can restore/retrieve previous versions of each object. - -This works by automatically assigning a *version ID* to each object. When new versions are uploaded, they receive a new version ID and are stored alongside older versions. When viewing or retrieving objects, the latest version of the object is returned *unless a version ID has been specified in the request*. If you delete an object with bucket versioning enabled, a delete marker is inserted into the bucket to report that the object has been deleted, but the bucket will retain all previous versions of the object. - -{{< note type="alert" >}} -Every version of an object counts towards the monthly billable storage quota. While saving a few revisions is probably not something to worry about, large version controlled buckets with many thousands of objects will see a noticeable increase in storage space demands, and should be monitored carefully. -{{< /note >}} - -## Using Versioning within Linode's Object Storage Service - -While versioning is natively supported within our Object Storage service, none of our first party tooling (such as Cloud Manager, the Linode CLI, or the Linode API) can manage this feature. Currently, object versioning can only be enabled, disabled, and otherwise managed through third party tools like Cyberduck and the AWS CLI. - -## Enable Versioning - -Versioning is enabled on the bucket level. This means that every object in a bucket will be versioned, not just a single object. - -### Cyberduck - -1. Review the [Using Cyberduck with Object Storage](/docs/products/storage/object-storage/guides/cyberduck/) guide for instructions on installing Cyberduck, connecting to your Object Storage cluster, and viewing your buckets. - -1. Right click on the bucket on which you wish to enable versioning, select **Info**, and navigate to the *S3* tab. - - ![Cyberduck Info tab](cyberduck-bucket-info-s3-tab.png) - -1. Locate the *Versioning* section and check the **Bucket Versioning** checkbox to enable it. - - ![Enable Versioning within Cyberduck](cyberduck-enable-versioning.png) - -### AWS CLI - -1. Install and configure the AWS CLI to work with your Object Storage account. See the [AWS CLI](/docs/products/storage/object-storage/guides/aws-cli/) guide. - -1. Enable bucket versioning with the `put-bucket-versioning` command, replacing *[cluster-url]* with the cluster URL that corresponds with the data center you're using (see [Cluster URL (S3 endpoint)](/docs/products/storage/object-storage/guides/urls/#cluster-url-s3-endpoint)) and *[bucket-label]* with the label/name of your bucket. - - aws s3api put-bucket-versioning --endpoint=[cluster-url] --bucket=[bucket-label] --versioning-configuration Status=Enabled - -1. To verify that versioning has been enabled, run the `get-bucket-versioning` command, again replacing *[cluster-url]* and *[bucket-label]* accordingly. - - aws s3api get-bucket-versioning --endpoint=[cluster-url] --bucket=[bucket-label] - - The output of that command should display a **Status** of *Enabled*: - - ```output - { - "Status": "Enabled", - "MFADelete": "Disabled" - } - ``` - -## Test Versioning - -Now that versioning is enabled, you can test this feature by uploading an example file and then replacing it. - -1. Create a text file (called `example-file.txt` or similar) on your local computer with the following contents: - - This is version 1. - -1. Now, upload that file through any tool you wish to use, including Cloud Manager, Cyberduck, S3cmd, or the AWS CLI. - -1. On your local machine, edit that same text file. In our example, we'll edit it to use the following contents: - - This is version 2. - -1. Upload that text file again to the same location that you used for the previous upload. Depending on the tool you are using, you may receive a warning that the file will be overwritten. Since versioning is enabled, previous versions will be retained so you can safely continue. - -1. Follow the instructions within [View Versioned Objects](#view-versioned-objects) to verify that you have retained the original and new versions of the file. - -## View Versioned Objects - -### Cyberduck - -Open the **View** menu and click **Show Hidden Files**. The previous versions of the file should be displayed in gray. Click the **Refresh** button if previous versions do not automatically appear. - -![View hidden files Cyberduck](versioning-cyberduck-view-hidden.png) - -### AWS CLI - -Run the `list-object-versions` command, replacing *[cluster-url]* with the cluster URL that corresponds with the data center you're using (see [Cluster URL (S3 endpoint)](/docs/products/storage/object-storage/guides/urls/#cluster-url-s3-endpoint)), *[bucket-label]* with the label/name of your bucket, and *[object]* with the object key (full path and filename) of the object. If you omit the `--prefix=[object]` option, the command outputs all objects. - - aws s3api list-object-versions --endpoint=[cluster-url] --bucket=[bucket-label] --prefix=[object] - -If running this command with the prefix option set to the `example-file.txt` file with two versions, the output is similar to the following: - -```output -{ - "Versions": [ - { - "ETag": "\"8f8d4ab37dcdd3728feecd08c7601112\"", - "Size": 14, - "StorageClass": "STANDARD", - "Key": "example-file.txt", - "VersionId": "wPI0FSbJRWD4xIvr7y8LxtEhDhm0ntO", - "IsLatest": true, - "LastModified": "2022-03-11T12:37:19.722000+00:00", - "Owner": { - "DisplayName": "a0000000-000a-0000-0000-00d0ff0f0000", - "ID": "a0000000-000a-0000-0000-00d0ff0f0000" - } - }, - { - "ETag": "\"764569e58f53ea8b6404f6fa7fc0247f\"", - "Size": 12, - "StorageClass": "STANDARD", - "Key": "example-file.txt", - "VersionId": "null", - "IsLatest": false, - "LastModified": "2022-02-11T17:30:24.612000+00:00", - "Owner": { - "DisplayName": "a0000000-000a-0000-0000-00d0ff0f0000", - "ID": "a0000000-000a-0000-0000-00d0ff0f0000" - } - } - ] -} -``` - -Each version is listed, along with its individual object metadata. - -## Download and Restore a Previous Version - -### Cyberduck - -To download a previous version, you can right click on the version you wish to save and select **Download**. Alternatively, you can drag and drop the file to your desktop or file explorer window. - -To restore that version of the file, re-upload it. Another method is to delete all newer versions of the file. - -### AWS CLI - -To download a previous version of an object, run the `get-object` command, replacing *[cluster-url]* with the cluster URL that corresponds with the data center you're using (see [Cluster URL (S3 endpoint)](/docs/products/storage/object-storage/guides/urls/#cluster-url-s3-endpoint)), *[bucket-label]* with the label/name of your bucket, *[object]* with the object key (full path and filename) of the object, *[version-id]* with the **VersionId** value of whichever object you wish to download, *[output-file]* with whatever you wish to call the file on your local system. - - aws s3api get-object --endpoint=[cluster-url] --bucket=[bucket-label] --key=[object] --version-id=[version-id] [output-file] - -You should see output like the following: - -```output -{ - "AcceptRanges": "bytes", - "LastModified": "2022-03-11T12:37:19+00:00", - "ContentLength": 14, - "ETag": "\"8f8d4ab37dcdd3728feecd08c7601112\"", - "VersionId": "wPI0FSbJRWD4xIvr7y8LxtEhDhm0ntO", - "ContentType": "text/plain", - "Metadata": { - "mtime": "1644590299284", - "storage-class": "STANDARD" - }, - "StorageClass": "STANDARD" -} -``` - -To restore this version, you can re-upload it. Alternatively, you can delete all newer versions. \ No newline at end of file diff --git a/docs/products/storage/object-storage/guides/versioning/versioning-cyberduck-view-hidden.png b/docs/products/storage/object-storage/guides/versioning/versioning-cyberduck-view-hidden.png deleted file mode 100644 index 3f7fffc2d97..00000000000 Binary files a/docs/products/storage/object-storage/guides/versioning/versioning-cyberduck-view-hidden.png and /dev/null differ diff --git a/docs/products/storage/object-storage/resources/index.md b/docs/products/storage/object-storage/resources/index.md deleted file mode 100644 index aa6c2c65cd3..00000000000 --- a/docs/products/storage/object-storage/resources/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Resources -title_meta: "Resources for Object Storage" -description: "Resources and other information related to Linode Object Storage including videos, blog posts, community posts, customer stories, ebooks, and press releases." -tab_group_main: - weight: 40 ---- - -## Videos - -- [How to Deploy a Linode S3-Compatible Object Storage Bucket](https://www.linode.com/content/deploying-object-storage-bucket/) - -## Blog Posts - -- [3 Month of Free Object Storage From Linode](https://www.linode.com/blog/cloud-storage/3-months-of-free-object-storage-from-linode/) - -- [Linode Object Storage is Here](https://www.linode.com/blog/cloud-storage/linode-object-storage-is-here/) - -- [Linode turns 16: Triples Dedicated plan storage, halves NodeBalancer cost](https://www.linode.com/blog/linode/linode-turns-16-triples-dedicated-plan-storage-halves-nodebalancer-cost/) - -- [4 Alternative Ways to Collaborate in the Cloud](https://www.linode.com/blog/cloud-computing/4-alternative-ways-to-collaborate-in-the-cloud/) - -- [We’re Hitting the Road for DeveloperWeek 2020!](https://www.linode.com/blog/linode/were-hitting-the-road-for-developerweek-2020/) - -- [2019: A Big Year of Innovation for Linode and a Big Thank You to Our Customers](https://www.linode.com/blog/linode/2019-a-year-in-review/) - -- [Linode Expands Global Infrastructure with Sydney Data Center](https://www.linode.com/blog/linode/linode-expands-global-infrastructure-with-sydney-data-center/) - -- [October Docs Roundup: Rancher, Data Visualization, and More](https://www.linode.com/blog/open-source/october-docs-roundup-rancher-data-visualization-and-more/) - -## Community Posts - -- [Hierarchical Key for Linode Object Storage](https://www.linode.com/community/questions/19284/hierarchical-key-for-linode-object-storage) - -- [Backing up Object Storage and downloading all files in OBJ bucket](https://www.linode.com/community/questions/19781/backing-up-object-storage-and-downloading-all-files-in-obj-bucket) - -- [How can I create user account that has permissions only to the Object Storage?](https://www.linode.com/community/questions/19604/how-can-i-create-user-account-that-has-permissions-only-to-the-object-storage) - -- [How do I integrate Linode Object Storage in PHP](https://www.linode.com/community/questions/19168/how-do-i-integrate-linode-object-storage-in-php) - -- [How can I access objects in my Object Storage bucket via my website/application?](https://www.linode.com/community/questions/19419/how-can-i-access-objects-in-my-object-storage-bucket-via-my-websiteapplication) - -- [Is it appropriate to use Linode object storage for web app back ends?](https://www.linode.com/community/questions/19263/is-it-appropriate-to-use-linode-object-storage-for-web-app-back-ends) - -- [Give an developer or script access to one Object Storage bucket only](https://www.linode.com/community/questions/19285/give-an-developer-or-script-access-to-one-object-storage-bucket-only) - -- [How do I check my bucket’s used space?](https://www.linode.com/community/questions/19561/how-do-i-check-my-buckets-used-space) - -- [s3cmd is not prompting me for an S3 Endpoint. How can I get s3cmd to work with Object Storage?](https://www.linode.com/community/questions/19767/s3cmd-is-not-prompting-me-for-an-s3-endpoint-how-can-i-get-s3cmd-to-work-with-ob) - -- [Does s3cmd or the linode-cli support the ability to save a stream as an object the way the AWS utility’s s3 subcommand does?](https://www.linode.com/community/questions/19706/does-s3cmd-or-the-linode-cli-support-the-ability-to-save-a-stream-as-an-object-t) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=object+storage). - -## Customer Stories - -- [Craft of Code Spotlight Stadia Maps](https://www.linode.com/spotlight/stadia-maps/) - -- [Craft of Code Spotlight Retargetly](https://www.linode.com/spotlight/retargetly/) - -- [Craft of Code Spotlight Austin Balarin](https://www.linode.com/spotlight/austin-balarin/) - -## eBooks - -- [S3-Compatible Object Storage Use Cases](https://www.linode.com/content/s3-compatible-object-storage-ebook/) - -## Press Releases - -- [Linode Launches Free S3-Compatible Cloud Storage](https://www.linode.com/press-release/linode-launches-free-s3-compatible-cloud-storage/) - -## External Resources - -- [Ceph S3 API](https://docs.ceph.com/docs/mimic/radosgw/s3/serviceops/) - -- [Ceph Bucket Policy Supported Actions](https://docs.ceph.com/docs/master/radosgw/bucketpolicy/#limitations) - -- [s3cmd Usage and Command Reference](https://s3tools.org/usage) - -- [s3cmd Sync How-To](https://s3tools.org/s3cmd-sync) diff --git a/docs/products/tools/_index.md b/docs/products/tools/_index.md deleted file mode 100644 index 9b652476fc0..00000000000 --- a/docs/products/tools/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Tools -title_meta: Tools and Additional Products on the Linode Platform -description: "Linode offers robust developer tools to make it easy to manage your infrastructure." ---- diff --git a/docs/products/tools/api/_index.md b/docs/products/tools/api/_index.md deleted file mode 100644 index c6d4908a996..00000000000 --- a/docs/products/tools/api/_index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Linode API -title_meta: "Linode API Product Documentation" -description: "The Linode API lets you build the apps you want and programmitically manage your account. It offers secure authentication and third-party integrations and plugins." -published: 2020-09-11 -modified: 2022-12-06 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "Programmatic access to the Linode platform, allowing you to automate tasks through a fully-documented REST API." -aliases: ['/products/tools/linode-api/','/platform/api/','/guides/platform/api/'] ---- - -{{< note >}} -To view the official documentation on each Linode API endpoint, see the [API developer documentation](/docs/api/). -{{< /note >}} - -## Features - -### Build the Apps You Want - -Create your own dev tools with the Linode API. Build scripts and applications to automatically handle repeatable tasks. The Linode API provides access to every part of the Linode platform. Deploy Kubernetes clusters, attach Block Storage volumes, configure NodeBalancers, manage users, and more. All response data is returned in JSON for easy parsing and filtering. - -### Third-party Integrations and Plugins - -A range of third-party integrations consume the Linode API. Describe your infrastructure as code with Linode’s Terraform provider or manage your Linode Kubernetes clusters with Rancher. - -### Programmatically Manage Your Account - -Automate account management. View everything from invoices to billing with the Linode API endpoints. - -### Secure Authentication - -Never worry about unauthorized modifications to your account. Access tokens are required for every request to the API and OAuth is available for applications with multiple users. - -## Pricing and Availability - -Access to the Linode API is available at no charge across [all regions](https://www.linode.com/global-infrastructure/). - -## Technical Specifications - -- RESTful API -- Responses formatted using JSON -- Authorization is provided through user-level Personal Access Tokens. These tokens can expire and provide customizable access/permissions to an account. -- HTTPS-only to ensure connections are secure and private - -## Limits and Considerations - -- Rate limiting may vary by endpoint. See [Linode APIv4 Rate Limits](/docs/api/#linode-apiv4-rate-limits) \ No newline at end of file diff --git a/docs/products/tools/api/developers/index.md b/docs/products/tools/api/developers/index.md deleted file mode 100644 index e24ed2013f1..00000000000 --- a/docs/products/tools/api/developers/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for the Linode API" -description: "Linode provides a wide array of developer tools including Rancher and Terraform integrations and JavaScript and Python libraries." -published: 2020-09-11 -tab_group_main: - weight: 50 -aliases: ['/products/tools/linode-api/developers/'] ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. - -## Linode Developed/Supported Tools - -- [Terraform](https://terraform.io/docs/providers/linode/): Linode's official Terraform Provider. Terraform is an Infrastructure-as-code tool that includes management features for various types of Linode resources. - -- [Rancher](/docs/guides/how-to-deploy-apps-with-rancher-1/): Rancher's UI centralizes Kubernetes management concerns when dealing with multiple clusters across multiple clouds. - -- [Pulumi](https://github.com/pulumi/pulumi-linode): Pulumi lets you use the full feature set of a general purpose programming language, like Python, JavaScript, and GO to manage Linode resources. - -- [Packer Builder](https://github.com/linode/packer-builder-linode): The Packer Builder plugin for Linode Images makes it easy to create private Linode Images. Linode Images can be used in subsequent deployments in any Linode region. - -- [Block Storage CSI Driver](https://github.com/linode/linode-blockstorage-csi-driver): Container Storage Interface driver for Linode Block Storage integration with Kubernetes and other container orchestrators. - -- [Terraform-linode-k8s](https://github.com/linode/terraform-linode-k8s): Terraform Kubernetes installer for Linode. Creates a Kubernetes Cluster on Linode Cloud infrastructure using the ContainerLinux operating system. The cluster is designed to take advantage of the Linode regional private network, and is equipped with Linode cluster enhancements including the CCM, CSI, and ExternalDNS. - -- [Linode Cloud Controller Manager](https://github.com/linode/linode-cloud-controller-manager): Kubernetes Addon featuring automatic provisioning of Linode's NodeBalancers to enable load balancing services and includes Linode status reporting to allow resources to be rescheduled when Linodes are powered down or removed. - -- [Linode Docker Machine Driver](https://github.com/linode/docker-machine-driver-linode): The Linode Docker Machine Driver provisions Linode instances to run Docker Engine. - -- [Docker Volume Driver for Block Storage](https://github.com/linode/docker-volume-linode): The Docker Volume Driver for Linode Block Storage makes it possible to use Docker commands to provision, attach, and detach volumes to containers. Volumes can be destroyed automatically when not in use. - -## Community Developed Tools - -- [Ansible linode_v4 module](https://docs.ansible.com/ansible/latest/modules/linode_v4_module.html): Ansible includes a "linode_v4" module for automating Linode instance provisioning by [Luke Murphy](https://github.com/lwm). - -- [Kubernetes External-DNS](https://github.com/kubernetes-incubator/external-dns/blob/master/docs/tutorials/linode.md): External-DNS is a Kubernetes Incubator project that assigns DNS names to Service and Ingress resources in Kubernetes Clusters. Linode DNS Manager is a supported back end. - -- [terraform-provider-acme](https://www.terraform.io/docs/providers/acme/dns_providers/linode.html): The Automated Certificate Management Environment (ACME) provider for Terraform can be used to configure Let's Encrypt, Boulder, and other ACME CAs using Linode's DNS Manager. - -- [traefik](https://docs.traefik.io/v1.4/configuration/acme/): Traefik is a HTTP reverse proxy and load balancer for Container Orchestrators (Kubernetes, Docker Swarm, and others) that features automatic TLS configuration using Linode DNS Manager for ACME challenge requests. - -- [vagrant-linode](https://github.com/displague/vagrant-linode): Vagrant-linode is a provider plugin for Vagrant that supports the management of Linode instances by [Marques Johansson](https://github.com/displague). - -- [Pharmer](https://github.com/pharmer/pharmer): Kubernetes Cluster Manager for kubeadm (Technical Preview). - -- [kube-linode](https://github.com/kahkhang/kube-linode): Provision a Kubernetes/CoreOS cluster on Linode by [Andrew Low](https://github.com/kahkhang/). - -## Linode Developed/Supported Libraries - -- [Linode JavaScript SDK](https://github.com/linode/manager/tree/develop/packages/api-v4): JavaScript client for the [Linode APIv4](/docs/api). - -- [linode_api4-python](https://github.com/linode/linode_api4-python): The official python library for the Linode APIv4 in python. - -- [linodego](https://github.com/linode/linodego): Official Go client for Linode APIv4. - -## Community Developed Libraries - -- [lego](https://go-acme.github.io/lego/dns/linode/): Let's Encrypt client and ACME library written in Go featuring support for the Linode DNS Provider. - -- [linode-api](https://github.com/tzurbaev/linode-api): Unofficial Linode APIv4 PHP wrapper by [tzurbaev](https://github.com/tzurbaev/linode-api). - -- [linode-api-node](https://github.com/RobinJ1995/linode-api-node): Unofficial Linode APIv4 Node.js wrapper by [RobinJ1995](https://github.com/RobinJ1995). - -- [linode-api-v4](https://github.com/idimensionz/linode-api-v4): Unofficial Linode APIv4 PHP wrapper by [iDimensionz](https://github.com/idimensionz/linode-api-v4). - -- [php-linode-api](https://github.com/hnhdigital-os/php-linode-api): Unofficial Linode APIv4 PHP wrapper by [H&H|Digital](https://github.com/hnhdigital-os). - -- [php-linode-unofficial](https://github.com/illblew/php-linode-unofficial): Unofficial Linode APIv4 PHP wrapper by [Will Blew](https://github.com/illblew). - -- [LinodeKit](https://github.com/bporter95/LinodeKit): Unofficial Linode APIv4 Swift wrapper by [Ben Porter](https://github.com/bporter95). \ No newline at end of file diff --git a/docs/products/tools/api/feature.png b/docs/products/tools/api/feature.png deleted file mode 100644 index 305e83e249a..00000000000 Binary files a/docs/products/tools/api/feature.png and /dev/null differ diff --git a/docs/products/tools/api/feature.svg b/docs/products/tools/api/feature.svg deleted file mode 100644 index 782d0adcc2a..00000000000 --- a/docs/products/tools/api/feature.svg +++ /dev/null @@ -1,9 +0,0 @@ - - Linode API - - - - - - - \ No newline at end of file diff --git a/docs/products/tools/api/get-started/index.md b/docs/products/tools/api/get-started/index.md deleted file mode 100644 index e15bc45aa6f..00000000000 --- a/docs/products/tools/api/get-started/index.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with the Linode API" -description: "Get started with the Linode API. Learn to get an access token, create an API token, authenticate requests, get configuration parameters, and build the final query." -published: 2020-09-11 -modified: 2022-12-06 -tab_group_main: - weight: 20 -aliases: ['/products/tools/linode-api/get-started/','/platform/api/getting-started-with-the-linode-api-classic-manager/','/platform/api/getting-started-with-the-linode-api-new-manager/','/platform/api/getting-started-with-the-linode-api/','/guides/getting-started-with-the-linode-api/','/products/tools/linode-api/guides/build-final-query/','/products/tools/linode-api/guides/get-config-parameters/'] -tags: ["managed hosting"] ---- - -The Linode API lets you automate any task that can be performed by Cloud Manager. This includes creating and managing all of our products (like Compute Instances and Firewalls), your customer account (like adding new users or viewing invoices), and even creating support tickets. As an example of an API call, the command below deploys a new 2GB Compute Instance in the Newark data center using the Debian 11 image. - -```command -curl -X POST https://api.linode.com/v4/linode/instances \ - -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ - -d '{"type": "g6-standard-2", "region": "us-east", "image": "linode/debian11", "root_pass": "[password]", "label": "[label]"}' -``` - -This guide helps you get set up to run this example. Note that if you run this command, you create and are charged for a 2GB Compute Instance. See [Linode Pricing](https://www.linode.com/pricing/) for details on these charges. - -{{< note >}} -Within the Linode API documentation, including this guide, the json_pp utility is used with the curl command to process JSON data into a more human-readable format. An example is shown below: - -```command -curl [options] | json_pp -``` - -Using json_pp is optional. You can remove `| json_pp` from the command and the output is instead displayed without proper indentation. Other alternatives exist, such as the [jsonpp](https://github.com/jmhodges/jsonpp) utility, or you can save the output as a file and open the file with a JSON-compatible file viewer. To install either of these utilities, see the [json_pp](https://github.com/deftek/json_pp) or [jsonpp](https://github.com/jmhodges/jsonpp) documentation. -{{< /note >}} - -## Get an Access Token - -Authorization for the Linode API is handled through personal access tokens. Personal access tokens grant permissions to read or write to an API endpoint. All API requests to non-public resources must be authenticated with an access token. - -{{< note >}} -If you are building an application which needs to authenticate multiple users (for example, a custom interface to Linode's infrastructure for your organization), you can set up an [OAuth authentication flow](/docs/api/#oauth) to generate tokens for each user. -{{< /note >}} - -For full instructions on creating and managing personal access tokens, see [Manage Personal Access Tokens](/docs/products/platform/accounts/guides/manage-api-tokens/#create-an-api-token). - -1. Log in to Cloud Manager. - -1. Click on your username at the top of the screen and select **My Profile**. - -1. Select the **API Tokens** tab: - -1. Click on **Create Personal Access Token** and choose the access rights you want users authenticated with the new token to have. - -1. When you have finished, click **Create** to generate an API token string. Copy the token and save it in a secure location. **You will not be able to view the token through Cloud Manager after closing the popup.** - -## Authenticate Requests - -Once you have created a personal access token, it needs to be sent along in the header of most API requests. The header should use the format: - -```command -Authorization: Bearer -``` - -Store the token as a temporary shell variable to simplify repeated requests. Replace `` in this example: - -```command -export TOKEN= -``` - -## Get Configuration Parameters - -Specify the type, region, and image for the new Compute Instance. - -1. Review the list of available images: - - ```command - curl https://api.linode.com/v4/images/ | json_pp - ``` - - Choose one of the images from the resulting list and make a note of the `id` field. - -1. Repeat this procedure to choose a type: - - ```command - curl https://api.linode.com/v4/linode/types/ | json_pp - ``` - -1. Choose a region: - - ```command - curl https://api.linode.com/v4/regions | json_pp - ``` - -## Build the Final Query - -Replace the values in the command below with your chosen type, region, image, label, and a secure root password. - -```command -curl -X POST https://api.linode.com/v4/linode/instances \ - -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ - -d '{"type": "g5-standard-2", "region": "us-east", "image": "linode/debian9", "root_pass": "root_password", "label": "prod-1"}' -``` - -See [Send an API Request with cURL](/docs/products/tools/api/guides/curl/) for additional instructions on making API calls through the cURL command. \ No newline at end of file diff --git a/docs/products/tools/api/guides/_index.md b/docs/products/tools/api/guides/_index.md deleted file mode 100644 index 382942e8cdf..00000000000 --- a/docs/products/tools/api/guides/_index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for the Linode API" -description: "Learn the essential pieces to use the Linode API v4 and find guides on more advanced topics, like creating an OAuth app with the Linode Python API library." -published: 2020-09-11 -modified: 2022-11-30 -tab_group_main: - weight: 30 -aliases: ['/products/tools/linode-api/guides/'] ---- - -## Basics - -- [Manage API Tokens](/docs/products/platform/accounts/guides/manage-api-tokens/): View and manage personal access tokens - -- [Send an API Request with cURL](/docs/products/tools/api/guides/curl/): Learn how to use cURL to quickly send an API call - -- [API developer documentation](/docs/api/): The official documentation for each API endpoint, as well as essential information on using the Linode API. - -## Using the Linode API with Linode's Products - -- [Getting Started with the Linode API](/docs/products/tools/api/get-started/) - -- [Configure NodeBalancers with the Linode API](/docs/products/networking/nodebalancers/guides/manage-nodebalancers-with-linode-api/) - -- [Manage Block Storage Volumes with the Linode API](/docs/products/storage/block-storage/guides/manage-block-storage-with-linode-api/) - -## API Client Libraries - -- [Go](https://github.com/linode/linodego) -- [Python](https://github.com/linode/linode_api4-python) -- [JavaScript](https://github.com/linode/manager/tree/develop/packages/api-v4) - -## Going Further - -- [How to Create an OAuth App with the Linode Python API Library](/docs/guides/create-an-oauth-app-with-the-python-api-library/) \ No newline at end of file diff --git a/docs/products/tools/api/guides/curl/index.md b/docs/products/tools/api/guides/curl/index.md deleted file mode 100644 index b96cf5ebffb..00000000000 --- a/docs/products/tools/api/guides/curl/index.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: Send an API Request with cURL -description: "Learn how to use cURL to send requests to endpoints on the Linode API." -aliases: ['/products/tools/linode-api/guides/authenticate-requests/'] ---- - -One of the quickest ways to send an API request in the command line is to use the [cURL](https://en.wikipedia.org/wiki/CURL) command, which can be used on most systems. This guide shows you how to build a request using cURL. - -## Authentication - -The Linode API employs user-level Personal Access Tokens for authentication. This token is passed along in the header of an API request. The header should use the format: - -```command -Authorization: Bearer -``` - -Instead of entering your personal access token each time you send a cURL request, you store the token as a temporary shell variable. In the command below, replace `` with your own token: - -```command -export TOKEN= -``` - -{{< note >}} -Not all endpoints require authentication. Public endpoints include the [region](/docs/api/regions/), distribution [images](/docs/api/images/), instance [types](/docs/api/linode-types/), and other endpoints. -{{< /note >}} - -## Build the API Request - -Replace the values in the command below with your chosen type, region, and image, and choose a label and secure password. - -```command -curl -X POST https://api.linode.com/v4/linode/instances \ - -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ - -d '{"type": "g6-standard-2", "region": "us-east", "image": "linode/debian11", "root_pass": "[password]", "label": "[label]"}' -``` - -## Pagination - -If a results list contains more than 100 items, the response is split into multiple pages. Each response includes the total number of pages and the current page. For example, querying the available kernels produces more than 300 results: - -```command -curl https://api.linode.com/v4/linode/kernels | json_pp -``` - -```file {hl_lines="24,25" lang="json"} -... - { - "architecture" : "i386", - "built" : "2016-10-07T22:21:55", - "deprecated" : true, - "id" : "linode/4.8.1-x86-linode94", - "kvm" : true, - "label" : "4.8.1-x86-linode94", - "pvops" : true, - "version" : "4.8.1" - }, - { - "architecture" : "i386", - "built" : "2016-09-15T13:13:40", - "deprecated" : true, - "id" : "linode/4.7.3-x86-linode92", - "kvm" : true, - "label" : "4.7.3-x86-linode92", - "pvops" : true, - "version" : "4.7.3" - } - ], - "page" : 1, - "pages" : 4, - "results" : 312 -} -``` - -The `pages` field indicates that the results are divided into three pages. To view additional pages, add a `page` parameter to the end of the URL. View the second page: - -```command -curl https://api.linode.com/v4/linode/kernels | json_pp page=2 -``` - -If you prefer a smaller number of items per page, you can override the default value with the `page_size` parameter: - -```command -curl https://api.linode.com/v4/linode/kernels | json_pp page_size=50 -``` - -## Filter Results - -The API also supports filtering lists of results. Filters are passed using the `X-Filter` header and use JSON format. You can filter on almost any field that appears in a response object and the [API documentation](/docs/api/) specifies which fields are filterable. - -The following query uses the `deprecated` and `vendor` fields to return all current Debian images: - -```command -curl https://api.linode.com/v4/images/ -H 'X-Filter: { "vendor": "Debian", "deprecated": false}' | json_pp -``` - -```file {lang="json"} -{ - "data" : [ - { - "created" : "2019-07-07T12:24:54", - "created_by" : "linode", - "deprecated" : false, - "description" : "", - "eol" : "2024-07-01T04:00:00", - "expiry" : null, - "id" : "linode/debian10", - "is_public" : true, - "label" : "Debian 10", - "size" : 1500, - "status" : "available", - "type" : "manual", - "updated" : "2022-09-12T14:08:55", - "vendor" : "Debian" - }, - { - "created" : "2021-08-14T22:44:02", - "created_by" : "linode", - "deprecated" : false, - "description" : "", - "eol" : "2026-07-01T04:00:00", - "expiry" : null, - "id" : "linode/debian11", - "is_public" : true, - "label" : "Debian 11", - "size" : 1300, - "status" : "available", - "type" : "manual", - "updated" : "2022-09-12T14:09:17", - "vendor" : "Debian" - }, - { - "created" : "2022-04-26T19:17:51", - "created_by" : "linode", - "deprecated" : false, - "description" : "", - "eol" : "2026-07-01T04:00:00", - "expiry" : null, - "id" : "linode/debian11-kube-v1.23.6", - "is_public" : true, - "label" : "Kubernetes 1.23.13 on Debian 11", - "size" : 3500, - "status" : "available", - "type" : "manual", - "updated" : "2022-11-17T14:15:50", - "vendor" : "Debian" - }, - { - "created" : "2022-11-17T14:17:22", - "created_by" : "linode", - "deprecated" : false, - "description" : "", - "eol" : "2026-07-01T04:00:00", - "expiry" : null, - "id" : "linode/debian11-kube-v1.24.8", - "is_public" : true, - "label" : "Kubernetes 1.24.8 on Debian 11", - "size" : 3500, - "status" : "available", - "type" : "manual", - "updated" : "2022-11-17T14:17:36", - "vendor" : "Debian" - } - ], - "page" : 1, - "pages" : 1, - "results" : 4 -} -``` - -More complex searches are possible through the use of logical operators. Use `or` to return a list of all Debian and Ubuntu images: - -```command -curl https://api.linode.com/v4/images/ -H 'X-Filter: {"+or": [{"vendor":"Debian"}, {"vendor":"Ubuntu"}]}' | json_pp -``` - -See the [Linode API documentation](/docs/api/#filtering-and-sorting) for a full list of supported operators. \ No newline at end of file diff --git a/docs/products/tools/api/release-notes/_index.md b/docs/products/tools/api/release-notes/_index.md deleted file mode 100644 index 380af7ffca3..00000000000 --- a/docs/products/tools/api/release-notes/_index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Release Notes -title_meta: "Release Notes for the Linode API" -description: "Learn more about what's new and changing on the Linode API by reviewing the changelog entries." -published: 2022-11-07 -promo_default: false -tab_group_main: - weight: 100 -aliases: ['/products/tools/linode-api/release-notes/'] ---- - -{{< releasenotes/list path="api">}} diff --git a/docs/products/tools/api/resources/index.md b/docs/products/tools/api/resources/index.md deleted file mode 100644 index 09f6c8f8986..00000000000 --- a/docs/products/tools/api/resources/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Resources -title_meta: "Resources for the Linode API" -description: "Resources and other information related to the Linode API including videos, blog posts, community posts, customer stories, and press releases." -published: 2020-09-11 -tab_group_main: - weight: 40 -aliases: ['/products/tools/linode-api/resources/'] ---- - -## Videos - -- [About Linode](https://www.linode.com/content/about-linode-video/) - -## Blog Posts - -- [Linode API: Multiple Keys and Two-Factor Support](https://www.linode.com/blog/linode/linode-api-multiple-keys-and-two-factor/) - -- [Linode at 17: A bunch of updates](https://www.linode.com/blog/linode/linode-turns-17/) - -- [Linode Kubernetes Engine (LKE) General Availability](https://www.linode.com/blog/kubernetes/linode-kubernetes-engine-general-availability/) - -- [Notice: Linode Classic Manager Users](https://www.linode.com/blog/linode/notice-legacy-linode-manager-users/) - -- [October Docs Roundup: Rancher, Data Visualization, and More](https://www.linode.com/blog/open-source/october-docs-roundup-rancher-data-visualization-and-more/) - -- [Linode turns 14!](https://www.linode.com/blog/linode/linode-turns-14/) - -- [High-Memory Instances and $5 Linodes](https://www.linode.com/blog/linode/high-memory-instances-and-5-linodes/) - -- [Linode’s 13th Birthday - Gifts for All!](https://www.linode.com/blog/linode/linodes-13th-birthday-gifts-for-all/) - -- [11th Linode Birthday /$10 Linode pan](https://www.linode.com/blog/linode/11th-linode-birthday-10-linode-plan/) - -- [Self-serve Linode Resizes](https://www.linode.com/blog/linode/self-serve-linode-resizes/) - -## Community Posts - -- [How do I view all of my invoices using the API?](https://www.linode.com/community/questions/19303/how-do-i-view-all-of-my-invoices-using-the-api) - -- [Linode REST API (v4) - Early Access](https://www.linode.com/community/questions/11221/linode-rest-api-v4-early-access) - -- [How can I achieve autoscaling on the Linode platform?](https://www.linode.com/community/questions/19274/how-can-i-achieve-autoscaling-on-the-linode-platform) - -- [How do I deploy a Linode using custom disk configurations?](https://www.linode.com/community/questions/19626/how-do-i-deploy-a-linode-using-custom-disk-configurations) - -- [How can I enable/disable Network Helper using the Linode API](https://www.linode.com/community/questions/20143/how-can-i-enabledisable-network-helper-using-the-linode-api) - -- [How do I use the Linode API to set my Reverse DNS (rDNS)?](https://www.linode.com/community/questions/18889/how-do-i-use-the-linode-api-to-set-my-reverse-dns-rdns) - -- [Can I call Private StackScripts using the API?](https://www.linode.com/community/questions/18287/can-i-call-private-stackscripts-using-the-api) - -- [How do I clone a Linode via API?](https://www.linode.com/community/questions/18074/how-do-i-clone-a-linode-via-api) - -- [How to check the status of a disk resize with the API?](https://www.linode.com/community/questions/20197/how-to-check-the-status-of-a-disk-resize-with-the-api) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=api). - -## Customer Stories - -- [Craft of Code Alpine Linux](https://www.linode.com/spotlight/alpine-linux/) - -## Press Releases - -- [Linode Launches Frankfurt Data Center](https://www.linode.com/press-release/linode-launches-frankfurt-datacenter/) - -- [Linode Celebrates 12th Birthday by Adopting KVM & Boosting Cloud Server Performance by 300%](https://www.linode.com/press-release/linode-celebrates-12th-birthday-by-adopting-kvm-and-boosting-cloud-server-performance-by-300/) - -- [Linode Opens New Data Center in Singapore](https://www.linode.com/press-release/linode-opens-new-datacenter-in-singapore/) diff --git a/docs/products/tools/cli/_index.md b/docs/products/tools/cli/_index.md deleted file mode 100644 index 8d20e483b90..00000000000 --- a/docs/products/tools/cli/_index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Linode CLI -title_meta: "Linode CLI Product Documentation" -description: "The Linode CLI lets you accelerate common tasks with customizable output and easy scripting." -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-06-02 - product_description: "Access the entire Linode platform from the command line, easily adding, removing, or modifying services." ---- - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the [Linode API](/docs/products/tools/api/), which gives you the ability to manage your Linode account from the command line. Almost any task that can be done through Cloud Manager can also be performed through the CLI. - -## Features - -### Accelerate Common Tasks - -Running common tasks is trivial with the Linode CLI. Create Linodes and NodeBalancers, and attach block or object storage volumes without leaving your terminal. - -### Customizable Output - -The Linode CLI prints easily readable output by default. You can also specify which fields are returned by the CLI and request JSON responses. - -### Easy Scripting - -Everything you can do with the Linode Cloud Manager can be done through the CLI. The Linode CLI has an easy-to-use interface that makes it perfect for scripting. - -## Availability - -The Linode CLI can be used across [all regions](https://www.linode.com/global-infrastructure/). - -## Pricing - -The Linode CLI is provided for free to all customers. \ No newline at end of file diff --git a/docs/products/tools/cli/feature.png b/docs/products/tools/cli/feature.png deleted file mode 100644 index 6ec65c1735d..00000000000 Binary files a/docs/products/tools/cli/feature.png and /dev/null differ diff --git a/docs/products/tools/cli/feature.svg b/docs/products/tools/cli/feature.svg deleted file mode 100644 index 42eb6f21316..00000000000 --- a/docs/products/tools/cli/feature.svg +++ /dev/null @@ -1,6 +0,0 @@ - - CLI - - - - \ No newline at end of file diff --git a/docs/products/tools/cli/get-started/index.md b/docs/products/tools/cli/get-started/index.md deleted file mode 100644 index 7199edc99b2..00000000000 --- a/docs/products/tools/cli/get-started/index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with the Linode CLI" -description: "Learn how to run basic commands on the Linode CLI and modify the output to fit your needs." -published: 2018-06-29 -modified: 2022-05-02 -keywords: ["linode api", "linode cli", "python cli"] -tab_group_main: - weight: 20 -aliases: ['/platform/api/linode-cli/','/cli/','/platform/linode-cli/','/platform/api/using-the-linode-cli/','/guides/using-the-linode-cli/','/guides/linode-cli/'] ---- - -## Installing the Linode CLI - -See the [Install and Configure the Linode CLI](/docs/products/tools/cli/guides/install/) guide for installation instructions and details on performing the initial configuration. - -## Basic Usage - -To view a list of all Compute Instances on your account, run the following command: - - linode-cli linodes list - -This command generates the following output, based on the information within your own account. - -```output -┌──────────┬────────────────────┬────────────┬───────────────┬───────────────────────┬─────────┬───────────────────┐ -│ id │ label │ region │ type │ image │ status │ ipv4 │ -├──────────┼────────────────────┼────────────┼───────────────┼───────────────────────┼─────────┼───────────────────┤ -│ 00000001 │ example-instance │ us-east │ g6-standard-1 │ linode/ubuntu18.04 │ running │ 192.0.2.42 │ -│ 00001111 │ centos-us-east │ us-east │ g6-nanode-1 │ linode/centos-stream9 │ running │ 192.0.2.108 │ -└──────────┴────────────────────┴────────────┴───────────────┴───────────────────────┴─────────┴───────────────────┘ -``` - -See [Using the Linode CLI](/docs/products/tools/cli/guides/#using-the-linode-cli) for additional usage details and examples. - -## Help - -View information about any part of the CLI, including available actions and required parameters, with the `--help` flag: - - linode-cli --help - linode-cli linodes --help - linode-cli linodes create --help - -## Output - -To make information easy to ready, the Linode CLI outputs responses in a text-based table format. The data is split into rows and columns, with the top row containing the fields. - - linode-cli regions list - -```output -┌──────────────┬─────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────┐ -│ id │ country │ capabilities │ status │ -├──────────────┼─────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────┤ -│ ap-west │ in │ Linodes, NodeBalancers, Block Storage, GPU Linodes, Kubernetes, Cloud Firewall, Vlans, Block Storage Migrations, Managed Databases │ ok │ -│ ca-central │ ca │ Linodes, NodeBalancers, Block Storage, Kubernetes, Cloud Firewall, Vlans, Block Storage Migrations, Managed Databases │ ok │ -│ ap-southeast │ au │ Linodes, NodeBalancers, Block Storage, Kubernetes, Cloud Firewall, Vlans, Block Storage Migrations, Managed Databases │ ok │ -│ us-central │ us │ Linodes, NodeBalancers, Block Storage, Kubernetes, Cloud Firewall, Block Storage Migrations, Managed Databases │ ok │ -│ us-west │ us │ Linodes, NodeBalancers, Block Storage, Kubernetes, Cloud Firewall, Block Storage Migrations, Managed Databases │ ok │ -│ us-southeast │ us │ Linodes, NodeBalancers, Block Storage, Object Storage, GPU Linodes, Kubernetes, Cloud Firewall, Vlans, Block Storage Migrations, Managed Databases │ ok │ -│ us-east │ us │ Linodes, NodeBalancers, Block Storage, Object Storage, GPU Linodes, Kubernetes, Cloud Firewall, Bare Metal, Block Storage Migrations, Managed Databases │ ok │ -│ eu-west │ uk │ Linodes, NodeBalancers, Block Storage, Kubernetes, Cloud Firewall, Block Storage Migrations, Managed Databases │ ok │ -│ ap-south │ sg │ Linodes, NodeBalancers, Block Storage, Object Storage, GPU Linodes, Kubernetes, Cloud Firewall, Block Storage Migrations, Managed Databases │ ok │ -│ eu-central │ de │ Linodes, NodeBalancers, Block Storage, Object Storage, GPU Linodes, Kubernetes, Cloud Firewall, Block Storage Migrations, Managed Databases │ ok │ -│ ap-northeast │ jp │ Linodes, NodeBalancers, Block Storage, Kubernetes, Cloud Firewall, Block Storage Migrations, Managed Databases │ ok │ -└──────────────┴─────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────┘ -``` - -### Fields - -By default, most Linode CLI responses do not contain all the available fields. To keep the information digestible, the Linode CLI outputs a smaller subset of all of available fields. This behavior can be adjusted using the commands below. - -- **Limited** (default behavior): Outputs a limited subset of the available fields. -- **All fields** (`--all`): Output all available fields. -- **Specific fields** (`--format 'field1,field2'`): Outputs only the fields specified within the given comma separated list. - -### Output Format - -The Linode CLI can output data in a variety of formats, as disclosed below: - -- **Tabular** (default): Data is split into rows and columns, with the top row containing the fields. -- **JSON** (`--json` or `--json --pretty`): Data is structured using JavaScript Object Notation (JSON), typically used for importing into applications that require JSON. The `--pretty` tag is optional and makes the output more human readable. -- **Plain text** (`--text` or `--text --delimiter ","`): Data is outputted as plain text. By default, it uses a *tab* character as the delimiter, though this can be adjusted by specifying a custom character using the `--delimited ","` option. \ No newline at end of file diff --git a/docs/products/tools/cli/guides/_index.md b/docs/products/tools/cli/guides/_index.md deleted file mode 100644 index a058d3bce28..00000000000 --- a/docs/products/tools/cli/guides/_index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for the Linode CLI" -description: "A collection of guides to help you learn how to manage various Linode services using the Linode CLI." -modified: 2022-12-06 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Get Started with the Linode CLI](/docs/products/tools/cli/get-started/): Learn the basics of using the Linode CLI, including running a command and understanding the output. - -- [Install and Configure the Linode CLI](/docs/products/tools/cli/guides/install/): Instructions on installing and configuring the Linode CLI on your system. - -- [Manage Multiple Users and Accounts with the Linode CLI](/docs/products/tools/cli/guides/manage-multiple-accounts/): Execute commands from different users or accounts. - - -## Using the Linode CLI - -These introductory guides to the Linode CLI show you how to use the CLI with Linode's most popular platforms and services. - -- [Account](/docs/products/tools/cli/guides/account/): View or update your account information, add payment methods, view notifications, make payments, create OAuth clients, and do other related tasks. - -- [Domains](/docs/products/tools/cli/guides/domains/): View the list of domains on your Linode account, create and delete domains, and create records for a domain. - -- [Events](/docs/products/tools/cli/guides/events/): View the list of events on your Linode account and mark events as read. - -- [Linode Instances](/docs/products/tools/cli/guides/linode-instances/): Create a Linode, shut it down, reboot it, add a private IP address to it, view the list of available IP address for it, or create a new disk for it. - -- [Linode Kubernetes Engine (LKE)](/docs/products/tools/cli/guides/linode-kubernetes-engine/): Create, update, and delete a cluster, and view the configuration file of a cluster. Or, create, update, and delete a cluster's node pool. - -- [NodeBalancers](/docs/products/tools/cli/guides/nodebalancers/): Create and configure a NodeBalancer, and attach a node to a NodeBalancer or delete a node from it. - -- [Object Storage](/docs/products/tools/cli/guides/object-storage/): View Linode's available Object Storage clusters, manage your Object Storage keys, or cancel the Object Storage service on your account. - -- [Block Storage Volumes](/docs/products/tools/cli/guides/block-storage-volumes/): View, create, attach/detach, resize, and delete a Volume. - -- [Support Tickets](/docs/products/tools/cli/guides/support-tickets/): View, open, or reply to a support ticket. - -## Upgrade - -- [Upgrade from Python 2 to Python 3](/docs/products/tools/cli/guides/upgrade-to-python-3/) - -## Older CLI Versions - -- [Uninstall Linode CLI v3](/docs/products/tools/cli/guides/v3-uninstall/) - -- [How to Use Linode CLI v3](/docs/products/tools/cli/guides/cli-v3/) \ No newline at end of file diff --git a/docs/products/tools/cli/guides/account/index.md b/docs/products/tools/cli/guides/account/index.md deleted file mode 100644 index 3519ed7160e..00000000000 --- a/docs/products/tools/cli/guides/account/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Linode CLI Commands for Account Management" -description: "How to use the Linode CLI for Account management tasks." -published: 2020-07-22 -modified: 2022-05-02 ---- - -View or update your account information, add payment methods, view notifications, make payments, create OAuth clients, and do other related tasks through the `account` action: - -1. View your account: - - linode-cli account view - -1. View your account settings: - - linode-cli account settings - -1. Make a payment: - - linode-cli account payment-create --cvv 123 --usd 20.00 - -1. View notifications: - - linode-cli account notifications-list diff --git a/docs/products/tools/cli/guides/block-storage-volumes/index.md b/docs/products/tools/cli/guides/block-storage-volumes/index.md deleted file mode 100644 index 088f48b9e82..00000000000 --- a/docs/products/tools/cli/guides/block-storage-volumes/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Block Storage Volumes -description: "How to use the Linode CLI for to manage the Block Storage service." -published: 2020-07-20 -modified: 2022-05-02 ---- - -1. List your current Volumes: - - linode-cli volumes list - -1. Create a new Volume, with the size specified in GB: - - linode-cli volumes create --label my-volume --size 100 --region us-east - - Specify a `linode_id` to create the Volume and automatically attach it to a specific Linode: - - linode-cli volumes create --label my-volume --size 100 --linode_id $linode_id - -1. Attach or detach the Volume from a Linode: - - linode-cli volumes attach $volume_id --linode_id $linode_id - linode-cli volumes detach $volume_id - -1. Resize a Volume (size can only be increased): - - linode-cli volumes resize $volume_id --size 200 - -1. Delete a Volume: - - linode-cli volumes delete $volume_id diff --git a/docs/products/tools/cli/guides/cli-v3/index.md b/docs/products/tools/cli/guides/cli-v3/index.md deleted file mode 100644 index 01b5315f131..00000000000 --- a/docs/products/tools/cli/guides/cli-v3/index.md +++ /dev/null @@ -1,543 +0,0 @@ ---- -title: Linode CLI (API v3 - Deprecated) -description: 'This guide will show you how to use the Linode Command Line Interface v3 to reboot your Linode, update your MX record, manage Nodebalancers, and more.' -published: 2014-01-27 -modified: 2022-11-30 -image: linode-cli.png -external_resources: - - '[Github Linode CLI](https://github.com/linode/cli)' - - '[Linode API Key](/docs/products/platform/accounts/guides/manage-api-tokens/)' -keywords: ["linode cli", " command line interface", " man pages", " api key"] -tags: ["linode platform"] -aliases: ['/platform/api/using-the-linode-cli-api-v3/','/guides/using-the-linode-cli-api-v3/'] -deprecated: true -deprecated_link: 'platform/api/linode-cli/' ---- - -The Linode Command Line Interface (**CLI**) is an [open-source](https://github.com/linode/cli) command line tool for managing your Linode services. You can reboot your Linode, update an MX record for your domain, manage your NodeBalancers, create a StackScript and more from the command line on any computer, without logging in to the [Linode Manager](https://manager.linode.com/) graphical user interface. - -Your Linode [API key](/docs/products/platform/accounts/guides/manage-api-tokens/) is required for the CLI to function. - -## Install the CLI - -You can install the Linode CLI on any Mac OS X or Linux computer. You can install it on a Linode if you want to, but the typical use case for the CLI is to run it from your home or office workstation. You can use it to manage your Linode account quickly, without the use of a GUI. - -### Mac OS X - -1. Install [Homebrew](http://brew.sh) - - ```command - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - ``` - -1. Update Homebrew: - - ```command - brew update - ``` - -1. Install the Linode CLI: - - ```command - brew tap linode/cli - brew install linode-cli - ``` - -### Debian and Ubuntu - -1. Add the Linode repository to your list: - - ```command - sudo bash -c 'echo "deb http://apt.linode.com/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/linode.list' - ``` - -1. Get the Linode GPG key: - - ```command - wget -O- https://apt.linode.com/linode.gpg | sudo apt-key add - - ``` - -1. Update your system: - - ```command - sudo apt-get update - ``` - -1. Install the Linode CLI package: - - ```command - sudo apt-get install linode-cli - ``` - -### Fedora - -Install the linode-cli included in Fedora's standard package database: - -```command -dnf install linode-cli -``` - -### Manual Installation for Linux (All Distros) - -In this section, you will learn how to install the Linode CLI manually on any Linux system. Use a package manager, CPAN, [cpanminus](https://github.com/miyagawa/cpanminus), or your preferred method to install the following Perl modules: - -- Crypt::SSLeay -- JSON -- LWP::Protocol::https -- LWP::UserAgent -- Mozilla::CA -- Try::Tiny -- WebService::Linode - -1. Download the Linode CLI tarball: - - ```command - curl -Lo linode-cli.tar.gz https://github.com/linode/cli/archive/master.tar.gz - ``` - -1. Extract the files: - - ```command - tar xf linode-cli.tar.gz - ``` - -1. Install the CLI: - - ```command - cd cli-master && perl Makefile.PL && sudo make install - ``` - -## Setup - -If you installed the Linode CLI in a standard location, it should already be added to your PATH variable. That way, you will be able to invoke the CLI with the `linode` command. Otherwise, you will need to manually add the `linode-cli` folder location to your PATH, or call the program directly with the command `/path/to/linode-cli/linode`. - -To start with, most users will want to run the configuration utility: - -1. Start the configuration utility: - - ```command - linode configure - ``` - - Output: - - ```output - This will walk you through setting default values for common options. - ``` - -2. Fill in your information at the prompts. You can skip optional questions by pressing `Return`. Here's some example output with the answers filled in. - - ```output - $ linode configure - This will walk you through setting default values for common options. - - Linode Manager user name - >> user1 - - Linode Manager password for user1 - >> - - - Default distribution when deploying a new Linode or rebuilding an existing one. (Optional) - Valid options are: - 1 - Arch 2017.01.01 - 2 - CentOS 5.6 - 3 - CentOS 6.5 - 4 - CentOS 7 - 5 - Debian 7 - 6 - Debian 8 - 7 - Fedora 24 - 8 - Fedora 25 - 9 - Gentoo 2017-01-05 - 10 - Slackware 13.37 - 11 - Slackware 13.37 32bit - 12 - Slackware 14.1 - 13 - Slackware 14.2 - 14 - Ubuntu 12.04 LTS - 15 - Ubuntu 14.04 LTS - 16 - Ubuntu 16.04 LTS - 17 - Ubuntu 16.10 - 18 - openSUSE Leap 42.1 - 19 - openSUSE Leap 42.2 - Choose[ 1-19 ] or Enter to skip>> - - Default data center when deploying a new Linode. (Optional) - Valid options are: - 1 - atlanta - 2 - dallas - 3 - frankfurt - 4 - fremont - 5 - london - 6 - newark - 7 - shinagawa1 - 8 - singapore - 9 - tokyo - Choose[ 1-9 ] or Enter to skip>> - - Default plan when deploying a new Linode. (Optional) - Valid options are: - 1 - Linode 1024 - 2 - Linode 2048 - 3 - Linode 4096 - 4 - Linode 8192 - 5 - Linode 12288 - 6 - Linode 16384 - 7 - Linode 24576 - 8 - Linode 32768 - 9 - Linode 49152 - 10 - Linode 61440 - 11 - Linode 65536 - 12 - Linode 81920 - 13 - Linode 102400 - 14 - Linode 204800 - Choose[ 1-14 ] or Enter to skip>> - - Path to an SSH public key to install when deploying a new Linode. (Optional) - >> /home/user1/.ssh/id_rsa.pub - - Config written to /Users/user1/.linodecli/config - ``` - -Once the CLI has your Linode Manager username and password, it will generate and use a new API key automatically. - -{{< note >}} -If you have [two-factor authentication](/docs/products/platform/accounts/guides/user-security-controls/#2fa-two-factor-authentication) enabled, you will receive a prompt for the code after entering your password: - -Two-factor authentication code -> 123456 - -Enter your code at the prompt, then continue with the configuration tool as described above. Once the Linode CLI has access to your API key, you will no longer have to enter the code. -{{< /note >}} - -You can run the `linode configure` command again if your settings change. New answers will overwrite the old ones in the `/Users/user1/.linodecli/config` file in your user's home directory. - -{{< note >}} -If you don't run the configuration tool, you can add these options manually in the `.linodecli/config` file. -{{< /note >}} - -### API Key - -The Linode CLI requires your API key to function. If you need to generate an API key manually, read the [API Key](/docs/products/platform/accounts/guides/manage-api-tokens/) article. There are three ways to provide the key to the CLI. The configuration tool generates a new key and adds it to the `.linodecli/config` file automatically. - -- In the `.linodecli/config` file: - - ```file {title=".linodecli/config"} - api-key SampleKey123456... - ``` - -- As an environment variable: - - ```command - LINODE_API_KEY=SampleKey123456... - ``` - -- Passed directly in the command: - - ```command - linode --api-key SampleKey123456... - ``` - -If you add your API key in the `.linodecli/config` file, or if you set it as an environment variable, the Linode CLI will have persistent access to your account. If you don't save or set the API key beforehand, you will have to enter it in the command whenever you use the CLI. The `--api-key` option should come at the end of the command. For example, your command would look like: - -```command -linode options --api-key SampleKey123456... -``` - -### Multiple Users - -The default Linode CLI user is stored in the `.linodecli/config` file. - -To set up the API for additional Linode users, you can run the `linode configure` command again, supplying a different username. Configuration files for additional users are stored with the filename pattern `.linodecli/config_user1`, with **user1** being replaced by the actual username. - -To invoke the CLI with a particular username, use the `-u user1` option, with **user1** being your actual username, at the end of the command. - -## Using the CLI - -Invoke the CLI by prefacing your commands with `linode`. Make sure the `linode-cli` folder has been appended to your PATH variable (see the previous [Setup](#setup) section). In general, commands are in the format: - -```command -linode [object] [action] [action-options...] [options...] -``` - -If no object is given, the **linode** object is assumed. Available objects include: - -- `linode` -- `domain` -- `nodebalancer` -- `stackscript` -- `account` - -To specify a particular Linode user, add the `-u user1` option, with **user1** being your actual username, at the end of the command. If no user is specified, the default user described in the `.linodecli/config` file will be used. - -The Linode CLI has many options available. In the rest of this article, we'll go over some common examples relating to Linodes, domains, NodeBalancers, StackScripts, and account details. To see all of the available options, view the man pages: - -```command -man linode -man linode-linode -man linode-domain -man linode-nodebalancer -man linode-stackscript -man linode-account -``` - -Press `q` to exit the man pages. You can also view more examples and options on the project's [README](https://github.com/linode/cli/blob/master/README.md) page on GitHub. - -{{< note >}} -If you do something via the CLI that costs money (creating a Linode, upgrading a Linode, enrolling in a new service, etc.), the CLI *will* attempt to charge the credit card on file for your account or use any account credit available. -{{< /note >}} - -### Linodes - -The Linode CLI lets you spin up new Linodes, issue reboots, upgrade plan sizes, and more. - -Listing Linodes: - -```command -linode list -``` - -Creating a new Linode: - -```command -linode create --location --plan --payment-term --distribution "" --group --stackscript "" -``` - -Restarting a Linode: - -```command -linode restart -``` - -Resizing a Linode: - -```command -linode resize -``` - -Rebuilding a Linode (rebuilding with a StackScript is available): - -```command -linode rebuild --distribution "" --password "" -``` - -For your convenience, several of the options are explained below. For details on all the Linode options, please check the appropriate man page: - -```command -man linode-linode -``` - -#### --plan options - -To view available [Linode plan sizes](https://www.linode.com/pricing/) for the `--plan` option, use the following command: - -```command -linode plans -``` - -Choose from the options below: - -- Linode 1024 -- Linode 2048 -- Linode 4096 -- Linode 8192 -- Linode 12288 -- Linode 16384 -- Linode 24576 -- Linode 32768 -- Linode 49152 -- Linode 61440 -- Linode 65536 -- Linode 81920 -- Linode 102400 -- Linode 204800 - -#### --location options - -To view available data centers for new Linodes for the `--location` option, use either of the following commands: - -```command -linode locations -linode datacenters -``` - -Choose from the options below: - -- atlanta -- dallas -- frankfurt -- fremont -- london -- newark -- shinagawa1 -- singapore -- tokyo - -#### --distribution options - -To view available distributions for new Linodes for the `--distribution` option, use either of the following commands: - -```command -linode distros -linode distributions -``` - -Choose from the options below: - -- Arch 2017.01.01 -- CentOS 5.6 -- CentOS 6.5 -- CentOS 7 -- Debian 7 -- Debian 8 -- Fedora 24 -- Fedora 25 -- Gentoo 2017-01-05 -- Slackware 13.37 -- Slackware 13.37 32bit -- Slackware 14.1 -- Slackware 14.2 -- Ubuntu 12.04 LTS -- Ubuntu 14.04 LTS -- Ubuntu 16.04 LTS -- Ubuntu 16.10 -- openSUSE Leap 42.1 -- openSUSE Leap 42.2 - -### Domains - -With the Linode CLI, you can add and remove domains, update DNS records, and more. - -Listing domains: - -```command -linode domain list -``` - -Listing domain records: - -```command -linode domain record-list -``` - -Creating a domain record: - -```command -linode domain record-create -``` - -Updating a domain record: - -```command -linode domain record-update [--priority ] -``` - -To see all the available options, check the man pages: - -```command -man linode-domain -``` - -### NodeBalancers - -The Linode CLI lets you manage your [NodeBalancers](/docs/products/networking/nodebalancers/) from the command line. - -Listing NodeBalancers: - -```command -linode nodebalancer list -``` - -Creating a NodeBalancer: - -```command -linode nodebalancer create -``` - -Configuring a NodeBalancer to handle traffic on a specific port: - -```command -linode nodebalancer config-create -``` - -Configuring a node on a NodeBalancer: - -```command -linode nodebalancer node-create : -``` - -To see all the available options, check the man pages: - -```command -man linode-nodebalancer -``` - -### StackScripts - -The Linode CLI lets you create and show StackScripts, and more. - -Creating a StackScript: - -```command -linode stackscript create --label "" --codefile "" --distribution "" -``` - -Showing a StackScript: - -```command -linode stackscript show -``` - -StackScripts can be used to create or rebuild a Linode. Creating and rebuilding Linodes is covered in the [Linodes](#linodes) section. - -To see all the available options, check the man pages: - -```command -man linode-stackscript -``` - -### Account - -The CLI lets you view your account billing details at a glance. Run the following command: - -```command -linode account show -``` - -Sample output: - -```output -managed: yes -balance: $ 0.00 -transfer pool: 6732.00GB -transfer used: 13.02GB -transfer billable: 0.00GB -billing method: prepay -``` - -To see all the available options, check the man pages: - -```command -man linode-account -``` - -## Updating the CLI - -Follow these instructions to update your Linode CLI package. - -### Mac OS X - -Run the following Homebrew commands: - -```command -brew update -brew upgrade linode-cli -``` - -### Debian and Ubuntu - -Run the following commands: - -```command -sudo apt-get update -sudo apt-get upgrade linode-cli -``` \ No newline at end of file diff --git a/docs/products/tools/cli/guides/cli-v3/linode-cli.png b/docs/products/tools/cli/guides/cli-v3/linode-cli.png deleted file mode 100644 index c399e10e2ac..00000000000 Binary files a/docs/products/tools/cli/guides/cli-v3/linode-cli.png and /dev/null differ diff --git a/docs/products/tools/cli/guides/domains/index.md b/docs/products/tools/cli/guides/domains/index.md deleted file mode 100644 index 6eee1f4ea93..00000000000 --- a/docs/products/tools/cli/guides/domains/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Linode CLI Commands for the DNS Manager" -description: "How to use the Linode CLI to create and manage Domains and DNS records." -published: 2020-07-20 -modified: 2022-05-02 ---- - -1. List the Domains on your account: - - linode-cli domains list - -1. View all domain records in a specific Domain: - - linode-cli domains records-list $domain_id - -1. Delete a Domain: - - linode-cli domains delete $domain_id - -1. Create a Domain: - - linode-cli domains create --type master --domain www.example.com --soa_email email@example.com - -1. Create a new A record in a Domain: - - linode-cli domains records-create $domain_id --type A --name subdomain --target 192.0.2.0 \ No newline at end of file diff --git a/docs/products/tools/cli/guides/events/index.md b/docs/products/tools/cli/guides/events/index.md deleted file mode 100644 index 88ab5b991e3..00000000000 --- a/docs/products/tools/cli/guides/events/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Linode CLI Commands for Viewing Events" -description: "How to use the Linode CLI to view and manage account events." -published: 2020-07-22 -modified: 2022-05-02 ---- - -1. View a list of events on your account: - - linode-cli events list - -1. View details about a specific event: - - linode-cli events view $event_id - -1. Mark an event as read: - - linode-cli events mark-read $event_id diff --git a/docs/products/tools/cli/guides/install/index.md b/docs/products/tools/cli/guides/install/index.md deleted file mode 100644 index e10009320ee..00000000000 --- a/docs/products/tools/cli/guides/install/index.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: "Install and Configure the Linode CLI" -description: "Learn how to install the Linode CLI on most common operating systems" -modified: 2024-01-26 ---- - -## Install the Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is officially managed through [pip](https://pypi.org/project/pip/), the package installer for Python. - -1. Open your preferred terminal application. For Windows, you can use either Powershell or the command prompt. - -1. Ensure that Python 3 and `pip3` are both installed. If not, follow the instructions within the [Install Python 3 and pip3](#install-python-3-and-pip3) section. - - ```command - python3 --version - pip3 --version - ``` - -1. To install or upgrade the Linode CLI, run the following command: - - ```command - pip3 install linode-cli --upgrade - ``` - - If you receive an error like the one in the output below, you will need to add your Python's bin folder to your system PATH environment variable. Instructions for adding a directory to PATH vary for each operating system. - - ```output - WARNING: The script normalizer is installed in '/Users/{{< placeholder "USERNAME" >}}/Library/Python/3.9/bin' which is not on PATH. - Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. - `````` - -1. Install the boto library if you intend to interact with Linode's Object Storage service. - - ```command - pip3 install boto3 - ``` - -1. To confirm that the Linode CLI has been successfully installed, run the help command. - - ```command - linode-cli --help - ``` - -## Configure the Linode CLI - -### Interactive Configuration - -The first time you interact with the Linode CLI, you need to complete the initial configuration steps discussed in this section. - -1. Initiate the Linode CLI configuration process. - - - **Web-based authentication:** Prompts you to sign in to your Linode account through a web browser. - - ```command - linode-cli configure - ``` - - - **Manually create a personal access token:** Prompts you for a token that you need to manually create. See [Linode API Keys and Tokens](/docs/products/platform/accounts/guides/manage-api-tokens/). - - ```command - linode-cli configure --token - ``` - -1. After authenticating or providing a token, you are presented with a series of prompts to select your preferred defaults, such as the region, Compute Instance type, and distribution. These are optional and can be overridden when running individual commands. Update these defaults at any time by running `linode-cli configure` again or by editing the `.config/linode-cli` configuration file. - -### Non-interactive Configuration - -To configure the CLI without any interactive prompts, you can set the token through the following environment variable, replacing *[token]* with the token you've manually generated. See [Linode API Keys and Tokens](/docs/products/platform/accounts/guides/manage-api-tokens/). - -```command -export LINODE_CLI_TOKEN="[token]" -``` - -This lets you bypass the initial configuration. If this variable is unset, the Linode CLI will stop working until it is set again or until the CLI is reconfigured through the interactive prompts. - -## Install Python 3 and pip3 - -### Windows - -Python 3 can be installed on Windows through downloading the installer package directly from Python's website. - -1. Open a web browser and navigate to [Python's Downloads page](https://www.python.org/downloads/). Download the latest stable Python 3 package for Windows. - -1. Open the installer package that was just downloaded. This is likely a `.exe` file. - -1. Within the installer window, check "Add Python 3.x to PATH" and then select **Customize installation**. - -1. Ensure that the `pip` option is checked and select **Next**. - -1. Under *Advanced Options*, ensure that the following options are checked: - - - Install for all users - - Associate files with Python - - Create shortcuts for installed applications - - Add Python to environment variables - - Precompiled standard library - -1. Select `Next` to proceed with the installation. Once the installation is complete, a message appears confirming that Python 3 was successfully installed. - -### macOS - -Installing Python 3 on macOS can also be done by downloading the package directly from Python's website. Advanced users can also install Python 3 through [Homebrew](https://formulae.brew.sh/formula/python@3.9#default) or manage multiple Python 3 versions through [pyenv](https://github.com/pyenv/pyenv). - -1. Open a web browser and navigate to [Python's Downloads page](https://www.python.org/downloads/). Download the latest stable Python 3 package for macOS. - -1. Open the installer package that was just downloaded to begin the installation. - -1. Follow the prompts to install Python3 and pip. - -### Linux - -On most Linux distributions, you can use the distribution's package manager to install both the `python3` and `python3-pip` packages. - -- **Ubuntu and Debian:** *Ubuntu 22.04, 20.04, 18.04, and 16.04 | Debian 11, 10, and 9* - - ```command - sudo apt update - sudo apt install python3 && sudo apt install python3-pip - ``` - -- **CentOS Stream, RHEL 8, and Fedora:** *CentOS Stream 9 (and 8), CentOS 8, other RHEL derivatives (including AlmaLinux 8, and Rocky Linux 8), and Fedora.* - - ```command - sudo dnf upgrade - sudo dnf install python3 && sudo dnf install python3-pip - ``` - -- **CentOS 7** - - ```command - sudo yum update - sudo yum install python3 && sudo yum install python3-pip - ``` - -### Confirming Python and Pip Installation - -If, when running `python3 --version` or `pip3 --version` you encounter `command not found`, you may need to add Python3 and Pip3's locations to your $PATH. \ No newline at end of file diff --git a/docs/products/tools/cli/guides/linode-instances/index.md b/docs/products/tools/cli/guides/linode-instances/index.md deleted file mode 100644 index 102ca03f191..00000000000 --- a/docs/products/tools/cli/guides/linode-instances/index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: "Linode CLI Commands for Compute Instances" -description: "How to use the Linode CLI to create and manage Linode instances." -published: 2020-07-22 -modified: 2022-05-02 ---- - -Tasks related to Linode instances are performed with `linode-cli linodes [ACTION]`. - -1. List all of the Linodes on your account: - - linode-cli linodes list - - Filter results to a particular region: - - linode-cli linodes list --region us-east - - Filtering works on many fields throughout the CLI. Use `--help` for each action to see which properties are filterable. - -1. Create a new Linode: - - linode-cli linodes create --root_pass mypassword - - The defaults you specified when configuring the CLI will be used for the new Linode's type, region, and image. Override these options by specifying the values: - - linode-cli linodes create --root_pass mypassword --region us-east --image linode/debian9 --group webservers - - If you are not writing a script, it is more secure to use `--root_pass` without specifying a password. You will then be prompted to enter a password: - - linode-cli linodes create --root_pass - -1. For commands targeting a specific Linode, you will need that Linode's ID. The ID is returned when creating the Linode, and can be viewed by listing the Linodes on your account as described above. Store the ID of the new Linode (or an existing Linode) for later use: - - export linode_id= - -1. View details about a particular Linode: - - linode-cli linodes view $linode_id - -1. Boot, shut down, or reboot a Linode: - - linode-cli linodes boot $linode_id - linode-cli linodes reboot $linode_id - linode-cli linodes shutdown $linode_id - -1. View a list of available IP addresses for a specific Linode: - - linode-cli linodes ips-list $linode_id - -1. Add a private IP address to a Linode: - - linode-cli linodes ip-add $linode_id --type ipv4 --public false - -1. Create a new disk for a Linode: - - linode-cli linodes disk-create $linode_id --size 2700 --root_pass mypassword --filesystem raw --no-defaults - - {{< note >}} - Even if you set the `--filesystem` to `raw`, the defaults you specified when configuring the CLI will be used for setting a Linode's disk image for this disk, overriding the filesystem setting. To create a disk without the default image, using only the parameters you send in this command, use the `--no-defaults` flag. - {{< /note >}} - -1. List all disks provisioned for a Linode: - - linode-cli linodes disks-list $linode_id - -1. Upgrade your Linode. If an upgrade is available for the specified Linode, it will be placed in the Migration Queue. It will then be automatically shut down, migrated, and returned to its last state: - - linode-cli linodes upgrade $linode_id - -1. Rebuild a Linode: - - linode-cli linodes rebuild $linode_id --image linode/debian9 --root_pass - -1. Rebuild a Linode, adding a populated `authorized_keys` file: - - linode-cli linodes rebuild $linode_id --image linode/debian9 --root_pass --authorized_keys "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEC+DOVfw+8Jsw1IPrYCcU9/HCuKayCsV8bXjsHqX/Zq email@example.com" - - If your key exists on your filesystem, you can also substitute its value in the CLI command with `cat`. For example: - - linode-cli linodes rebuild $linode_id --image linode/debian9 --root_pass --authorized_keys "$(cat ~/.ssh/id_rsa.pub)" - -Many other actions are available. Use `linode-cli linodes --help` for a complete list. diff --git a/docs/products/tools/cli/guides/linode-kubernetes-engine/index.md b/docs/products/tools/cli/guides/linode-kubernetes-engine/index.md deleted file mode 100644 index 6af875e741d..00000000000 --- a/docs/products/tools/cli/guides/linode-kubernetes-engine/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Linode CLI Commands for LKE" -description: "How to use the Linode CLI to create and manage Linode Kubernetes Engine (LKE) clusters." -published: 2020-07-20 -modified: 2022-05-02 ---- - -1. Lists current Kubernetes Clusters available on your account: - - linode-cli lke clusters-list - -1. Create a Kubernetes Cluster. The Kubernetes Cluster will be created asynchronously. You can use the events system to determine when the Kubernetes Cluster is ready to use: - - linode-cli lke cluster-create \ - --label cluster12345 \ - --region us-central \ - --k8s_version 1.16 \ - --node_pools.type g6-standard-4 --node_pools.count 6 \ - --node_pools.type g6-standard-8 --node_pools.count 3 \ - --tags ecomm - -1. Update Kubernetes Cluster: - - linode-cli lke cluster-update $cluster_id \ - --label lkecluster54321 \ - --tags ecomm \ - --tags blog \ - --tags prod \ - --tags monitoring - -1. Delete a Cluster you have permission to `read_write`: - - linode-cli lke cluster-delete $cluster_id - -1. List all active Node Pools on a Kubernetes Cluster: - - linode-cli lke pools-list $cluster_id - -1. Create a Node Pool on a Kubernetes Cluster: - - linode-cli lke pool-create $cluster_id \ - --type g6-standard-4 \ - --count 6 - -1. Update Node Pool in a Kubernetes Cluster. When a Node Pool's count is changed, the Nodes in that pool will be replaced in a rolling fashion. - - linode-cli lke pool-update $cluster_id $pool_id \ - --count 6 - -1. Delete a Node Pool from a Kubernetes Cluster: - - linode-cli lke pool-delete $cluster_id $pool_id - -1. View the Kubeconfig file for the Kubernetes Cluster: - - linode-cli lke kubeconfig-view $cluster_id - -Other actions are available. Use `linode-cli lke --help` for a complete list. \ No newline at end of file diff --git a/docs/products/tools/cli/guides/manage-multiple-accounts/index.md b/docs/products/tools/cli/guides/manage-multiple-accounts/index.md deleted file mode 100644 index 669c2c9d81d..00000000000 --- a/docs/products/tools/cli/guides/manage-multiple-accounts/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Manage Multiple Accounts with the Linode CLI" -description: "How to use the Linode CLI to manage multiple Linode accounts." -published: 2022-12-06 ---- - -The Linode CLI can be configured to run commands from multiple users on separate Linode Accounts. This lets you control multiple accounts, all through the same system, using the Linode CLI. Once multiple users are configured, you can execute commands as a particular user or set a specific user as the default. - -## Configure an Additional User - -To manage another Linode Account, you must configure the Linode CLI with a user on that account. This is accomplished by re-running the Linode CLI configuration utility (see [Configure the Linode CLI](/docs/products/tools/cli/guides/install/#configure-the-linode-cli)). - -```command -linode-cli configure -``` - -## View Users - -To see which users have already been configured on the Linode CLI, run the following command: - -```command -linode-cli show-users -``` - -This outputs a list containing the usernames of each user. An asterisks (`*`) marks the user that is currently active (the default user). - -```output -Configured Users: -* example-user - another-user -``` - -## Change the Default User - -The default user is used when running Linode CLI commands. Run the following command to change the default user, replacing *[username]* with the name of the user you wish to use. - -```command -linode-cli set-user [username] -``` - -## Run a Command as a Different User - -You can run a Linode CLI command as a specific user *without* needing to change the default user. This is helpful if you need to run a one-off command on a different account. In the command below, replace *[username]* with the name of the user you wish to use. - -```command -linode-cli set-user --as-user [username] -``` - -## Remove a User from the Linode CLI - -If you no longer wish to manage a particular user or account from the Linode CLI, you can remove that user. In the command below, replace *[username]* with the name of the user you wish to remove. - -{{< note >}} -This does not delete the user on the Linode Platform. It only removes the user from the Linode CLI so you can no longer execute commands as that user. -{{< /note >}} - -```command -linode-cli remove-user [username] -``` \ No newline at end of file diff --git a/docs/products/tools/cli/guides/nodebalancers/index.md b/docs/products/tools/cli/guides/nodebalancers/index.md deleted file mode 100644 index a3ed3a2c481..00000000000 --- a/docs/products/tools/cli/guides/nodebalancers/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Linode CLI Commands for NodeBalancers" -description: "How to use the Linode CLI to create and manage NodeBalancers." -published: 2020-07-20 -modified: 2022-05-02 ---- - -1. Create a new NodeBalancer: - - linode-cli nodebalancers create --region us-east --label new-balancer - -1. Create a configuration for a NodeBalancer: - - linode-cli nodebalancers config-create $nodebalancer_id - -1. Attach a Node to a NodeBalancer: - - linode-cli nodebalancers node-create --address 192.200.12.34:80 --label node-1 - -1. To delete a node, you will need the ID of the NodeBalancer, configuration, and node: - - linode-cli nodebalancers node-delete $nodebalancer_id $config_id $node_id - -Other actions are available. Use `linode-cli nodebalancers --help` for a complete list. \ No newline at end of file diff --git a/docs/products/tools/cli/guides/object-storage/index.md b/docs/products/tools/cli/guides/object-storage/index.md deleted file mode 100644 index 331c6f14044..00000000000 --- a/docs/products/tools/cli/guides/object-storage/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Linode CLI Commands for Object Storage" -description: "How to use the Linode CLI to create and manage Linode Object Storage buckets and objects." -published: 2020-07-20 -modified: 2022-05-02 ---- - -## Basic Commands - -List the current Object Storage Clusters available to use. - - linode-cli object-storage clusters-list - -## Manage Access Keys - -List all access keys on the account. - - linode-cli object-storage keys-list - -Create a new access key with the label *example-label*. - - linode-cli object-storage keys-create --label "example-label" - -Update the label of an access key, replacing *[id]* with the **ID** of the access key you wish to update. - - linode-cli object-storage keys-update --keyId [id] --label "new-label" - -Revoke an access key, replacing *[id]* with the **ID** of the access key you wish to revoke. - - linode-cli object-storage keys-delete [id] - -## TLS/SSL Certificates - -Upload a TLS/SSL Certificate. - - linode-cli object-storage ssl-upload us-east-1 example-bucket --certificate "my-full-certificate" --private_key "my-full-private-key" - -View an Active TLS/SSL Certificate: - - linode-cli object-storage ssl-view us-east-1 example-bucket - -Delete an Active TLS/SSL Certificate: - - linode-cli object-storage ssl-delete us-east-1 example-bucket - -## Cancel Object Storage - -Cancel Object Storage on your Account. All buckets on the Account must be empty before Object Storage can be cancelled. - - linode-cli object-storage cancel \ No newline at end of file diff --git a/docs/products/tools/cli/guides/support-tickets/index.md b/docs/products/tools/cli/guides/support-tickets/index.md deleted file mode 100644 index cbb476830cd..00000000000 --- a/docs/products/tools/cli/guides/support-tickets/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Linode CLI Commands for Support Tickets" -description: "How to use the Linode CLI to submit and manage support tickets." -published: 2020-07-22 -modified: 2022-05-02 ---- - -1. List your Support Tickets: - - linode-cli tickets list - -1. Open a new Ticket: - - linode-cli tickets create --description "Detailed description of the issue" --summary "Summary or quick title for the Ticket" - - If your issue concerns a particular Linode, Volume, Domain, or NodeBalancer, pass the ID with `--domain_id`, `--linode-id`, `--volume_id`, etc. - -1. List replies for a Ticket: - - linode-cli tickets replies $ticket_id - -1. Reply to a Ticket: - - linode-cli tickets reply $ticket_id --description "The content of your reply" diff --git a/docs/products/tools/cli/guides/upgrade-to-python-3/index.md b/docs/products/tools/cli/guides/upgrade-to-python-3/index.md deleted file mode 100644 index b6fa0475ae7..00000000000 --- a/docs/products/tools/cli/guides/upgrade-to-python-3/index.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: "Upgrade the Linode CLI to use Python 3" -description: "The Linode Command Line Interface (CLI) can be supported by both Python 2.x and Python 3.x, however As Python 2 has reached an end of life it is recommended that users upgrade to Python 3 as soon as they are able. This guide outlines the simplest methods for upgrading python and the Linode CLI." -published: 2022-01-14 -modified: 2022-11-30 -external_resources: - - '[Linode API Documentation](https://developers.linode.com)' -keywords: ["api","linode api", "cli", "linode cli", "python cli"] -tags: ["linode platform"] -aliases: ['/guides/upgrade-to-linode-cli-python-3/'] ---- - -## In This Guide - -At the time of this writing, the Linode CLI is currently able to be fully supported by both Python 2.x and Python 3.x depending on user preference and needs. That being said, as Python 2 has [reached it's end-of-life in early 2020](https://www.python.org/doc/sunset-python-2/#:~:text=We%20have%20decided%20that%20January,a%20security%20problem%20in%20it.), it is strongly recommended that users upgrade to the latest version of the CLI supported by python3 as soon as they are able. - -In this guide, steps are provided to uninstall the version of the Linode CLI that relies on Python 2, and immediately replace it with the version of the Linode CLI built with Python 3. - -## Uninstalling the Python 2 CLI - -Before proceeding, users should first uninstall the Python 2 based version of the Linode CLI from their Linode using python 2's package manager `pip`: - -```command -sudo pip uninstall linode-cli -``` - -While uninstalling, you may be prompted to agree to the removal of some configuration files. Select `Y` to proceed and complete the removal process. - -## Installing the Python 3 Linode CLI - -The upgrade path for the Python 3 Linode CLI depends on the Distro and package manager that you're using. - -### Ubuntu/Debian - -1. Ensure that all available packages are up to date: - - ```command - sudo apt update - ``` - -1. Install python3 and pip3: - - ```command - sudo apt install python3 && sudo apt install python3-pip - ``` - -1. Install the Linode CLI using pip3: - - ```command - sudo pip3 install linode-cli - ``` - -### CentOS/RHEL Stream and Fedora - -1. Ensure that all available packages are up to date: - - ```command - dnf upgrade - ``` - -1. Install python3 and pip3: - - ```command - sudo dnf install python3 && sudo dnf install python3-pip - ``` - -1. Install the Linode CLI using pip3: - - ```command - sudo pip3 install linode-cli - ``` - -### CentOS 7 - -1. Ensure that all available packages are up to date: - - ```command - sudo yum update - ``` - -1. Install python3 and pip3: - - ```command - sudo yum install python3 && sudo yum install python3-pip - ``` - -1. Install the Linode CLI using pip3: - - ```command - sudo pip3 install linode-cli - ``` - -### Windows 10 - -1. Download the latest stable Windows package for python3 for your system at [Python's Downloads Page](https://www.python.org/downloads/windows/). - -1. Open up the installer `.exe` to begin the python installation process using Window's GUI. - -1. Before proceeding, ensure that your version of Python is added to PATH by checking the box which enables this option: - - ![Python WIndows Path Option](windows-python-path.png) - -1. Select the **Customize Installation** option to proceed. - -1. Ensure that `pip` all desired optional features are selected before proceeding to the next step. The `pip` installation is required by the Linode CLI. - -1. In the next step, ensure that the **Install for all users** option is enabled. Your configuration should reflect the following: - - ![Python on Windows Advanced Options](windows-python-options.png "Advanced Options on Windows Python3") - -1. Select `Next` to proceed with the installation. Once the installation is complete, a message will confirm Python3 was successfully installed will appear that can be safely closed. - -1. Open the windows command prompt and enter the following command to complete installation of the Linode CLI: - - ```command - pip3 install linode-cli - ``` - -### Mac OSx - -By default, python3 should already be installed and configured on the latest versions of Mac OSx. If for whatever reason it is not, you can use `brew` to install python3 which will additionally include `pip`: - -```command -brew install python3 -``` - -### Next Steps - -To confirm the Linode CLI has successfully been installed, the following command may be entered: - -```command -linode-cli --version -``` - -If your installation was successful, the latest version of Linode CLI will be outputted. - -Once the Linode CLI is installed, no further steps should be needed for configuration as both python based versions of the CLI will use a configuration file that will persist between the change. If for whatever reason you need to reconfigure the Linode CLI, the following command may be entered: - -```command -linode-cli configure -``` - -For more information on how to use the Linode CLI, see our [Overview Guide](/docs/products/tools/cli/get-started/) \ No newline at end of file diff --git a/docs/products/tools/cli/guides/upgrade-to-python-3/windows-python-options.png b/docs/products/tools/cli/guides/upgrade-to-python-3/windows-python-options.png deleted file mode 100644 index efe1d9a8f68..00000000000 Binary files a/docs/products/tools/cli/guides/upgrade-to-python-3/windows-python-options.png and /dev/null differ diff --git a/docs/products/tools/cli/guides/upgrade-to-python-3/windows-python-path.png b/docs/products/tools/cli/guides/upgrade-to-python-3/windows-python-path.png deleted file mode 100644 index 89a5d3241a9..00000000000 Binary files a/docs/products/tools/cli/guides/upgrade-to-python-3/windows-python-path.png and /dev/null differ diff --git a/docs/products/tools/cli/guides/v3-uninstall/index.md b/docs/products/tools/cli/guides/v3-uninstall/index.md deleted file mode 100644 index d41946ee1d7..00000000000 --- a/docs/products/tools/cli/guides/v3-uninstall/index.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: 'Uninstalling the Deprecated Linode CLI using API v3' -description: 'The new Linode API includes a number of additional features and changes from previous API versions. This guide is intended to help existing users uninstall the previous version of the CLI in preparation of upgrading to the new version of the CLI using APIv4.' -published: 2022-02-25 -modified: 2022-11-30 -external_resources: - - '[Linode API Documentation](https://developers.linode.com)' - - '[Deprecated CLI Github](https://github.com/linode/cli)' -keywords: ["api","linode api", "cli"] -tags: ["linode platform"] -aliases: ['/guides/uninstall-linode-api-cli-v3/'] ---- - -Following the release of the [Linode API v4](/docs/api/), both the Linode API v3 and [earlier versions of the CLI](/docs/products/tools/cli/guides/cli-v3/) using that API version have been deprecated. While earlier versions remained functional for some time, they have officially been deprecated and can not be leveraged to use the full extent of the Linode Platform. - -To ensure that all users continue to use a currently supported version of the API in their production pipelines, it is recommended that users upgrade to the newest version of the Linode CLI as soon as they are able. This guide walks you through uninstalling the old version of the CLI. After the old version has been removed, you can follow the instructions within the [Linode CLI Overview](/docs/products/tools/cli/guides/install/) guide to install the latest version. - -## Uninstall the Linode CLI - -### Uninstall Through a Package Manager - -If the Linode CLI was installed through a package manager, it can be uninstalled through the same package manager. Follow the instructions below for your operating system. - -- **Ubuntu and Debian:** Use the following command to uninstall the Linode CLI through the [APT package manager](/docs/guides/apt-package-manager/): - - ```command - sudo apt remove linode-cli - ``` - -- **Fedora:** Use the following command to uninstall the Linode CLI through the [DNF package manager](/docs/guides/dnf-package-manager/): - - ```command - sudo dnf remove linode-cli - ``` - -- **MacOS:** Use the following command to uninstall the Linode CLI through brew: - - ```command - brew uninstall linode-cli - ``` - -### Uninstall Manually - -If the Linode CLI was [installed manually](/docs/products/tools/cli/guides/cli-v3/#manual-installation-for-linux-all-distros), then all configurations files and modules can also be removed manually. The primary relevant files can usually be uninstalled using the following commands: - -```command -unlink /usr/local/bin/linode -unlink /usr/local/bin/linode-account -unlink /usr/local/bin/linode-domain -unlink /usr/local/bin/linode-linode -unlink /usr/local/bin/linode-nodebalancer -unlink /usr/local/bin/linode-stackscript -unlink /usr/local/share/man/man1/linode-account.1 -unlink /usr/local/share/man/man1/linode-domain.1 -unlink /usr/local/share/man/man1/linode-linode.1 -unlink /usr/local/share/man/man1/linode-nodebalancer.1 -unlink /usr/local/share/man/man1/linode-stackscript.1 -unlink /usr/local/share/man/man1/linode.1 -unlink /usr/local/share/perl5/Linode/CLI.pm -unlink /usr/local/share/perl5/Linode/CLI/Object.pm -unlink /usr/local/share/perl5/Linode/CLI/Object/Account.pm -unlink /usr/local/share/perl5/Linode/CLI/Object/Domain.pm -unlink /usr/local/share/perl5/Linode/CLI/Object/Linode.pm -unlink /usr/local/share/perl5/Linode/CLI/Object/Nodebalancer.pm -unlink /usr/local/share/perl5/Linode/CLI/Object/StackScript.pm -unlink /usr/local/share/perl5/Linode/CLI/SystemInfo.pm -unlink /usr/local/share/perl5/Linode/CLI/Util.pm -unlink /usr/local/lib64/perl5/auto/Linode/CLI/.packlist -``` - -{{< note >}} -In some cases, the path of some configuration files installed manually may be slightly different than the ones outlined in this guide. An audit may be necessary to for complete removal of the Linode CLI in cases where a manual installation was performed. -{{< /note >}} - -Additionally, if they are no longer needed, users may remove the following Perl modules using their tooling of choice: - -```command -JSON -LWP:UserAgent -Mozilla::CA -Try::Tiny -WebService::Linode -``` - -## Install the Latest Linode CLI Version - -Once the deprecated version of the Linode CLI has been safely removed, the newest version of the Linode CLI should be installed using Python 3. More information on this process can be found on our [Overview of the Linode CLI Guide](/docs/products/tools/cli/get-started/). \ No newline at end of file diff --git a/docs/products/tools/cli/resources/index.md b/docs/products/tools/cli/resources/index.md deleted file mode 100644 index 91ae0e1b56a..00000000000 --- a/docs/products/tools/cli/resources/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Resources -title_meta: "Resources for the Linode CLI" -description: "Resources and other information related to the Linode CLI including blog posts and community posts." -tab_group_main: - weight: 40 ---- -## Blog Posts - -- [Linode CLI](https://www.linode.com/blog/linode/linode-cli/) - -## Community Posts - -- [How to restore a backup to a new Linode using the Linode CLI?](https://www.linode.com/community/questions/18752/linode-cli-restore-a-backup-to-a-new-linode) - -- [How do deploy Linodes from a saved image using the Linode CLI?](https://www.linode.com/community/questions/20102/how-do-i-deploy-linodes-from-a-saved-image-using-the-linode-cli) - -- [How can I deploy 1-Click Apps from the CLI?](https://www.linode.com/community/questions/18509/how-can-i-deploy-1-click-apps-from-the-cli) - -- [CLI questions](https://www.linode.com/community/questions/367/cli-questions) - -- [How do I manage multiple accounts with the Linode CLI?](https://www.linode.com/community/questions/20161/how-do-i-manage-multiple-accounts-with-the-linode-cli) - -- [How do I change IP addresses using the Linode CLI/API?](https://www.linode.com/community/questions/20082/how-do-i-change-ip-addresses-using-the-linode-cliapi) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=cli). diff --git a/docs/products/tools/cloud-manager/_index.md b/docs/products/tools/cloud-manager/_index.md deleted file mode 100644 index 2131146d315..00000000000 --- a/docs/products/tools/cloud-manager/_index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Cloud Manager -title_meta: "Cloud Manager Product Documentation" -description: "Cloud Manager gives you access to simple account management, user control and security, and performance monitoring; supports self-service data center migration; allows you to deploy Linode Marketplace apps; and more." -published: 2020-06-02 -tab_group_main: - is_root: true - title: Overview - weight: 10 ---- - -Cloud Manager is an intuitive web-based interface for managing your account and services. Through Cloud Manager, you can deploy and manage virtual machines, configure networking, control user accounts, and access the full range of Akamai's cloud computing services. - -## Features - -### Self-Service Data Center Migration - -Cloud Manager supports you with self-serve migrations so you can conveniently move your infrastructure between data centers. - -### Simple Account Management - -Effortlessly create and configure your infrastructure with Cloud Manager. Assign SSH keys, deploy resources across the network, and add cloud storage volumes or buckets all from a single UI. - -Advanced search helps you quickly find your Linode resources. Search using simple strings, Boolean operators, parenthesis, or custom groups with tags you create in Cloud Manager. - -Manage your account, update payment information, review credits remaining, and print invoices. - -### Deploy Marketplace Apps - -Whether you want to set up a game server, your own VPN, or self-host your software with GitLab, Marketplace Apps make it quick and easy to get up and running on your Linodes. - -### Performance Monitoring - -Real-time analytics tracking, per-process and in aggregate, monitors the performance of your CPU, memory, and network bandwidth. - -### User Control and Security - -Share access to your Linodes with your team by adding multiple users. Controls are configurable for each individual user. Manage your API Keys and add personal access tokens for more control over your Linode services. - diff --git a/docs/products/tools/cloud-manager/developers/index.md b/docs/products/tools/cloud-manager/developers/index.md deleted file mode 100644 index bf6b9370a7e..00000000000 --- a/docs/products/tools/cloud-manager/developers/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Cloud Manager" -description: "Use the Linode API and CLI to access the full range of Linode services and account and user management capabilities offered by Cloud Manager." -published: 2020-06-02 -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services, and powers Cloud Manager. - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line, similar to Cloud Manager. \ No newline at end of file diff --git a/docs/products/tools/cloud-manager/feature.png b/docs/products/tools/cloud-manager/feature.png deleted file mode 100644 index a6253f54533..00000000000 Binary files a/docs/products/tools/cloud-manager/feature.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/feature.svg b/docs/products/tools/cloud-manager/feature.svg deleted file mode 100644 index d213db9b33c..00000000000 --- a/docs/products/tools/cloud-manager/feature.svg +++ /dev/null @@ -1,7 +0,0 @@ - - Cloud Manager - - - - - diff --git a/docs/products/tools/cloud-manager/guides/_index.md b/docs/products/tools/cloud-manager/guides/_index.md deleted file mode 100644 index acf2b45297e..00000000000 --- a/docs/products/tools/cloud-manager/guides/_index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Cloud Manager" -description: "These guides show you how to use Cloud Manager to access and deploy the full range of Linode services and how to complete account and user management tasks." -published: 2020-06-02 -modified: 2024-07-29 -tab_group_main: - weight: 30 -aliases: ['/platform/manager/','/manager/','/guides/platform/manager/','/quick-answers/linode-platform/'] ---- - -## Guides - -- [Overview of Cloud Manager](/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/) - -- [Understanding Events and the Activity Feed](/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/) - -- [Troubleshooting Cloud Manager Errors](/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/) - -- [How to Search in Cloud Manager](/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/) - -- [Tags and Groups](/docs/products/tools/cloud-manager/guides/tags-and-groups/) - -### Manage Your Account - -- [Manage Billing in Cloud Manager](/docs/products/platform/billing/guides/) - -- [Cancelling Your Account](/docs/products/platform/accounts/guides/cancel-account/) - -- [Changing Your Email Address](/docs/products/platform/accounts/guides/change-user-email/) - -- [User Security Controls](/docs/products/platform/accounts/guides/user-security-controls/) - -- [Manage SSH Keys](/docs/products/platform/accounts/guides/manage-ssh-keys/) diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/UnderstandingtheCloudManagerEventsandActivityFeeds.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/UnderstandingtheCloudManagerEventsandActivityFeeds.png deleted file mode 100644 index dacb1366bb0..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/UnderstandingtheCloudManagerEventsandActivityFeeds.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/classic-to-cloud-cloud-manager-email-notifications.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/classic-to-cloud-cloud-manager-email-notifications.png deleted file mode 100644 index 13523559800..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/classic-to-cloud-cloud-manager-email-notifications.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-events-panel.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-events-panel.png deleted file mode 100644 index f82ea1ff207..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-events-panel.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-events.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-events.png deleted file mode 100644 index 8e4f0f7b6ed..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-events.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-notification-bell.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-notification-bell.png deleted file mode 100644 index d06ddd29baa..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-notification-bell.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-notification-settings.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-notification-settings.png deleted file mode 100644 index d64f2ec9dc1..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-notification-settings.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-user-dropdown.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-user-dropdown.png deleted file mode 100644 index 8da5f61d116..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/cloud-manager-user-dropdown.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/events.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/events.png deleted file mode 100644 index d1536ff81de..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/events.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/index.md b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/index.md deleted file mode 100644 index 02abd0299de..00000000000 --- a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Understanding Events and the Activity Feed" -title_meta: "What Are Cloud Manager Events and Activity Feeds" -description: "Understanding events and a Linode's activity feed in Cloud Manager" -published: 2019-12-26 -modified: 2021-08-25 -keywords: ["accounts", "passwords", "linode manager", "manager"] -license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' -image: UnderstandingtheCloudManagerEventsandActivityFeeds.png -tags: ["linode platform","cloud manager"] -aliases: ['/platform/manager/what-are-the-cloud-manager-events-and-activity-feeds/', '/guides/what-are-the-cloud-manager-events-and-activity-feeds/','/products/tools/cloud-manager/guides/cloud-email-notifications/','/guides/cloud-manager-events-and-activity-feeds/'] ---- - -Most actions that occur on an account or to a particular service are logged as *events*. These events include services being created (or deleted), a change in a Linode's power state (such as powering off or rebooting), and many other actions. All events are stored to an account for 90 days. - -{{< note >}} -Events are only shown to a logged in user if that event is within the scope of the user's permissions. This means that a restricted user only sees events for services that they have been granted access to. For more information, see our [Manage User Permissions](/docs/products/platform/accounts/guides/user-permissions/) guide. -{{< /note >}} - -## Viewing Events - -Events for all services and account functions can be viewed in Cloud Manager, either through the Events panel or the [Events](https://cloud.linode.com/events) page. - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and press the notification bell on the top right of the page. - - ![The notification bell icon on Cloud Manager](cloud-manager-notification-bell.png) - - This displays an Events panel containing notifications and the most recent events for all services on the account. Each item in the **Events** list includes a brief description of the action, the label of the service, the user who initiated the action, the duration, and the timestamp. - - ![The Events panel](cloud-manager-events-panel.png) - -1. To view more events, click the **View all events** link at the top of the **Events** list. This displays the [Events](https://cloud.linode.com/events) page, which contains the same information as the previous list. All events that occurred during the last 90 days are listed on this page. - -## Viewing a Linode's Activity Feed - -A Linode's Activity Feed is similar to the Account's [Events](#events) page. However, this is a filtered list of events only relevant to the specific Linode. Follow the instructions below to access a Linode's Activity Feed. - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select **Linodes** from the sidebar menu. - -1. Locate the Linode you wish to see events for and click on the Linode's label. - -1. Within the chosen Linode's page, navigate to the **Activity Feed** tab. - - ![A Linode's Activity Feed](linode-activity-feed.png) - - This displays a list of events for the selected Linode that have occurred during the last 90 days. Each item includes a brief description of the action, the label of the service, the user who initiated the action, the duration, and the timestamp. - -## Managing Email Notifications for Events - -Each time an event occurs, you can automatically receive an email notifying you of the event. If desired, you can enable or disable these email event notifications using Cloud Manager. Instead, if you want to configure the email notifications you receive for resource usage (like CPU usage) on your Compute Instances, see the [Configure Email Alerts for Resource Usage on Compute Instances](/docs/products/compute/compute-instances/guides/resource-usage-email-alerts/). - -{{< note >}} -Only unrestricted users can receive threshold notification emails. -{{< /note >}} - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and click the user dropdown menu on the top right of the page. - - ![The username dropdown link on Cloud Manager](cloud-manager-user-dropdown.png) - -1. Within the dropdown, click the **My Settings** link under **My Profile**. - -1. In the [My Settings](https://cloud.linode.com/profile/settings) page that opens, toggle the *Email alerts for account activity are enabled* option (under **Notifications**) to the desired setting. - - ![The email alerts toggle button](cloud-manager-notification-settings.png) \ No newline at end of file diff --git a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/linode-activity-feed.png b/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/linode-activity-feed.png deleted file mode 100644 index 47e6dc73860..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/linode-activity-feed.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/AnOverviewoftheLinodeCloudManager.png b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/AnOverviewoftheLinodeCloudManager.png deleted file mode 100644 index 29461cebb5e..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/AnOverviewoftheLinodeCloudManager.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-import-display-groups.png b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-import-display-groups.png deleted file mode 100644 index 4144e09d185..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-import-display-groups.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-domains.png b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-domains.png deleted file mode 100644 index 58eb8e7c034..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-domains.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-images.png b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-images.png deleted file mode 100644 index 5157dd28e3b..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-images.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-stackscripts.png b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-stackscripts.png deleted file mode 100644 index 08dad2da24c..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-stackscripts.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-volumes.png b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-volumes.png deleted file mode 100644 index cf945ee940c..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/classic-to-cloud-cloud-manager-volumes.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-new-dark.jpg b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-new-dark.jpg deleted file mode 100644 index 8261ffccf6a..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-new-dark.jpg and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-new-light.jpg b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-new-light.jpg deleted file mode 100644 index 7a958b1e47a..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-new-light.jpg and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-previous-dark.jpg b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-previous-dark.jpg deleted file mode 100644 index 1060c69a6e8..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-previous-dark.jpg and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-previous-light.jpg b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-previous-light.jpg deleted file mode 100644 index da05cd0608f..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/cloud-manager-previous-light.jpg and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/index.md b/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/index.md deleted file mode 100644 index 37f763ff896..00000000000 --- a/docs/products/tools/cloud-manager/guides/overview-of-cloud-manager/index.md +++ /dev/null @@ -1,186 +0,0 @@ ---- -slug: overview-of-cloud-manager -title: "Overview of Cloud Manager" -description: "This guide provides you with an overview of Cloud Manager and covers how to locate features within Cloud Manager, create Linodes and more." -published: 2019-12-20 -modified: 2024-07-25 -keywords: ["classic manager","cloud manager","linode"] -aliases: ['/platform/manager/a-classic-to-cloud-manager-overview-guide/','/platform/manager/an-overview-of-the-linode-cloud-manager/', '/guides/an-overview-of-the-linode-cloud-manager/','/guides/an-overview-of-the-cloud-manager/','/products/tools/cloud-manager/guides/cloud-create-linode/','/products/tools/cloud-manager/guides/cloud-block-storage/','/products/tools/cloud-manager/guides/cloud-object-storage/','/products/tools/cloud-manager/guides/cloud-nodebalancers/','/products/tools/cloud-manager/guides/cloud-domains/','/products/tools/cloud-manager/guides/cloud-longview/','/products/tools/cloud-manager/guides/cloud-marketplace/','/products/tools/cloud-manager/guides/cloud-kubernetes/','/products/tools/cloud-manager/guides/cloud-stackscripts/','/products/tools/cloud-manager/guides/cloud-images/','/products/tools/cloud-manager/guides/cloud-billing/','/products/tools/cloud-manager/guides/cloud-oauth/','/products/tools/cloud-manager/guides/an-overview-of-the-cloud-manager/'] -image: AnOverviewoftheLinodeCloudManager.png -tags: ["linode platform","cloud manager"] ---- - -[Cloud Manager](https://cloud.linode.com/) provides a user-friendly interface to manage your infrastructure, user accounts, billing and payments, and to open and track support tickets. You can easily create Linode instances, manage Kubernetes clusters, add backups to your Linodes, deploy Marketplace Apps, track event notifications, create Object Storage buckets, and more. Cloud Manager is implemented solely atop our public [API](/docs/api), which gives you access to all our latest products and services. - -## In this Guide - -This guide provides an overview of the features and services available in Cloud Manager. Some of the topics that will be discussed are: - -- An introduction to each section of Cloud Manager, including links to related guides throughout our documentation library. -- The location of commonly used Cloud Manager features. -- Settings that might make your overall Cloud Manager experience better - -## Linodes - -The Linodes section of Cloud Manager lets you create and manage your Linodes. Each Linode instance in Cloud Manager includes: - -- [Summary information](/docs/products/compute/compute-instances/guides/monitor-and-maintain/#cloud-manager) about your Linode, like CPU usage, IPv4 and [IPv6 traffic](/docs/products/compute/compute-instances/guides/ipv6/), and Disk IO -- Access to any of your Linode's attached Volumes and the ability to [create a Volume](/docs/products/storage/block-storage/guides/manage-volumes/) -- Networking information and features, including the ability to add IPv4 and IPv6 addresses, [IP transfer](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#transferring-ip-addresses) and [IP sharing](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#configuring-ip-sharing) -- The ability to [resize your Linode](/docs/products/compute/compute-instances/guides/resize/), boot your Linode into [Rescue Mode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rescue-mode-overview), and [rebuild your Linode](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rebuilding) -- Access to Linode's [Backup service](/docs/products/storage/backups/) -- An [Activity Feed](/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/#viewing-a-linodes-activity-feed) that displays any relevant events related to this Linode -- Settings that allow you to update your Linode's label, [reset your Linode's root password](/docs/products/compute/compute-instances/guides/reset-root-password/), [manage system usage email notifications](/docs/products/compute/compute-instances/guides/monitor-and-maintain/#configure-cloud-manager-email-alerts), [manage Watchdog](/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/) (Linode's automatic reboot feature), and delete your Linode -- Areas to [manage disks](/docs/products/compute/compute-instances/guides/disks-and-storage/) and [manage configuration profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) -- [Cross data center migrations](/docs/products/compute/compute-instances/guides/migrate-to-different-dc/) - -## Volumes - -The **Volumes** section of Cloud Manager gives you access to Linode's [Block Storage](https://www.linode.com/products/block-storage/) service. To learn how to create and manage Block Storage volumes using Cloud Manager, see our [Block Storage Overview](/docs/products/storage/block-storage/) guide. - -## Object Storage - -The **Object Storage** section of Cloud Manager gives you access to Linode’s [Object Storage service](https://www.linode.com/products/object-storage/) which is a globally-available, S3-compatible method for storing and accessing data. - -To learn how to use Object Storage, view the [Get Started with Object Storage](/docs/products/storage/object-storage/get-started/) guide or take a look through all the [Object Storage guides](/docs/products/storage/object-storage/guides/). - -## NodeBalancers - -Linode's [NodeBalancers service](https://www.linode.com/products/nodebalancers/) provides load balancing for your applications and services ensuring that they are highly available for users. To learn how to get started with NodeBalancers using Cloud Manager, see our [Getting Started with NodeBalancers](/docs/products/networking/nodebalancers/get-started/) guide. - -## Domains (DNS Manager) - -The DNS Manager lets you control and manage your domains. You can access the DNS Manager by navigating to the **Domains** link in Cloud Manager's sidebar. - -![Cloud Manager Domains](classic-to-cloud-cloud-manager-domains.png "Cloud Manager Domains") - -For more information on Cloud Manager's DNS Manager, see the following guides: - -- [DNS Manager](/docs/products/networking/dns-manager/). -- [Common DNS Configurations](/docs/products/networking/dns-manager/guides/common-dns-configurations/) -- [Configure Your Linode for Reverse DNS](/docs/products/compute/compute-instances/guides/configure-rdns/) - -## Longview - -The **Longview** section of Cloud Manager gives you access to Linode’s system data graphing service. It tracks metrics for CPU, memory, and network bandwidth, both aggregate and per-process, and it provides real-time graphs that can help expose performance problems. The Longview service offers both [free and paid plan tiers](/docs/products/tools/longview/). - -To get started using Longview, see the [Understanding Linode Longview](/docs/products/tools/longview/get-started/) guide. - -## Marketplace - -The **Marketplace** section of Cloud Manager gives you access to apps that make it easy to deploy and configure Marketplace Apps on a Linode. Some popular Marketplace Apps are [WordPress](/docs/marketplace-docs/guides/wordpress/), [Minecraft](/docs/marketplace-docs/guides/minecraft/), and [GitLab](/docs/marketplace-docs/guides/gitlab/). We are actively adding new and useful Marketplace apps. When a Marketplace App is deployed, a new Linode is created and the appropriate software is installed with the configurations you provide. - -See [How to Use Linode's Marketplace Apps](/docs/marketplace-docs/get-started/) to get started using Marketplace Apps in Cloud Manager. - -## Kubernetes (LKE) - -The Kubernetes section of Cloud Manager gives you access to our managed Kubernetes service, the Linode Kubernetes Engine (LKE). LKE is a fully-managed container orchestration engine for deploying and managing containerized applications and workloads. LKE combines Linode’s ease of use and [simple pricing](https://www.linode.com/pricing/) with the infrastructure efficiency of Kubernetes. - -To get started using LKE, see our [Tutorial for Deploying and Managing a Cluster with Linode Kubernetes Engine](/docs/products/compute/kubernetes/). - -## StackScripts - -[StackScripts](https://www.linode.com/stackscripts/) provide Linode users with the ability to automate the deployment of custom systems on top of our default Linux distribution images. StackScripts are usually Bash scripts, stored in Cloud Manager, and can be accessed when you deploy a Linode. Linodes deployed with a StackScript run the script as part of the first boot process. - -To get started using StackScripts in Cloud Manager, see the [Automate Deployment with StackScripts](/docs/products/tools/stackscripts/) guide. - -## Images - -The Images section of Cloud Manager gives you access to Linode Images which allow you to take snapshots of your disks, and then deploy them to any Linode under your account. This can be useful for bootstrapping an image for a large deployment, or retaining a disk for a configuration that you may not need running, but wish to return to in the future. - -To get started using Images with Cloud Manager, see [Linode Images](/docs/products/tools/images/). - -## Account (Management and Billing) - -The **Account** section of Cloud Manager lets you manage your account's billing information and users, and to configure various account-wide settings. - -You can manage the following account and billing settings in the Account section of Cloud Manager: - -- [Update contact information](/docs/products/platform/billing/guides/update-billing-contact-info/) -- [Adding a New Payment Method](/docs/products/platform/billing/guides/payment-methods/#add-a-new-payment-method) -- [Making a One-Time Payment](/docs/products/platform/billing/guides/make-a-payment/) -- [View recent invoices and payments](/docs/products/platform/billing/guides/view-history/) -- [Add new users and manage exiting user's profiles and permissions](/docs/products/platform/accounts/guides/user-permissions/) -- [Enable Backup auto enrollment for all new Linodes on your account](/docs/products/storage/backups/guides/enable/#auto-enroll-new-compute-instances-in-the-backup-service) -- [Enable Network Helper](/docs/products/compute/compute-instances/guides/network-helper/#global-account-wide-setting) -- [Cancel Object Storage](/docs/products/storage/object-storage/guides/cancel/) -- [Add the Linode Managed service to your account](/docs/products/services/managed/get-started/) - -### Password Management - -Cloud Manager does not support forcing password expirations. Forcing password resets on a schedule is [bad practice from a security perspective](https://pages.nist.gov/800-63-FAQ/#q-b05). Current security research indicates that forced password changes do more harm than good. If you want to force password resets for users of your Linode account, we recommend using a password manager for this purpose. - -## Tags - -Both Cloud Manager and [API v4](/docs/api) allow you to create tags to help organize and group your Linode resources. Tags can be applied to [Linode instances](#linodes), [Block Storage Volumes](#volumes), [NodeBalancers](#nodebalancers), and [Domains](#domains-dns-manager). See the [Tags and Groups](/docs/products/tools/cloud-manager/guides/tags-and-groups/) guide to learn how to create, apply, and search for tags. - -## Events and Activity Feeds - -Tasks performed using Cloud Manager or other account specific tools like Linode’s [CLI](/docs/products/tools/cli/get-started/) or [API](https://www.linode.com/products/api/) will be logged to an individual Linode’s activity feed, or on your account’s [Events Page](https://cloud.linode.com/events). The events and activity pages are user accessible logs, or histories of events taking place on your account. They contain details regarding the most notable events affecting your Linodes, like reboots, shutdowns, migrations, and more. - -For more details, see the [Understanding Events and Activity Feeds](/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/) guide. - -## My Profile - -The **My Profile** section of Cloud Manager provides access to various settings related to your Linode account's profile. This area of Cloud Manager contains access to the following features and settings: - -- [Changing your account's associated email address](/docs/products/platform/accounts/guides/change-user-email/) -- [Resetting your Account password](/docs/products/platform/accounts/guides/reset-user-password/) -- [Enabling two-factor authentication](/docs/products/platform/accounts/guides/user-security-controls/#2fa-two-factor-authentication) -- [Enabling Third Party Authentication (TPA)](/docs/guides/third-party-authentication/) -- Managing trusted devices -- [Adding and managing public SSH keys](/docs/products/platform/accounts/guides/manage-ssh-keys/) -- [Managing LISH authentication methods](/docs/products/compute/compute-instances/guides/lish/#add-your-public-key) -- [Adding and managing personal and third party API v4 access tokens](/docs/products/platform/accounts/guides/manage-api-tokens/) -- [Creating and managing OAuth Apps](/docs/guides/create-an-oauth-app-with-the-python-api-library/#obtaining-a-client-id-and-a-client-secret) -- [Linode Referral Program](/docs/products/platform/billing/guides/referral-program/) -- Enable email alerts for account activity - -### OAuth Apps - -Cloud Manager supports the OAuth 2 authorization protocol. OAuth 2 allows a user to safely grant a third-party app permission to act on their behalf. This means that a user could authorize an app to access data and / or make changes to their Linode account and services that are exposed by the Linode API. For example, an app could create or destroy Linodes, manage a NodeBalancer, or alter a domain. - -To learn how to get started with OAuth Apps see the [How To Create an OAuth App with the Linode Python API Library](/docs/guides/create-an-oauth-app-with-the-python-api-library/) guide. For details on the Linode API v4's OAuth workflow see the [Linode API v4 documentation](/docs/api/account/#oauth-clients-list). - -### Manage Email Event Notifications - -To learn more about events and how to enable or disable email notifications for these events, see the [Understanding Events and the Activity Feed](/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/) guide. - -### Change the Theme (Dark Mode) - -Cloud Manager provides a way to set your preferred UI theme, including a light theme, dark theme, and the system theme. - -1. Navigate to your profile by clicking on your username and select **My Settings**. - -1. Within the **Theme** section, select your preferred theme from the available options: *Light*, *Dark*, or *System*. Once a selection is made, Cloud Manager's interface immediately switches to that theme. - -### Set the Timezone - -All events displayed in Cloud Manager are shown using your user's timezone setting. The timezone can be modified in your display settings. - -1. Navigate to your profile by clicking on your username and select **Display**. - -1. In the **Timezone** field, select your preferred timezone from the menu. - -1. Click the **Update Timezone** button to save your settings. - -## Accessibility - -Cloud Manager has been built with accessibility in mind. Currently, Cloud Manager is actively being developed to achieve [WCAG 2.0 Level AA](https://www.w3.org/TR/WCAG20/). - -We have received much helpful feedback from our users regarding accessibility. While we have addressed a lot of your feedback, this is still a work in progress and will be iterated upon with time. If you have comments or requests regarding accessibility, let us know by filling out our [feedback form](https://www.linode.com/feedback/). - -## Experience Improvements - -We're making improvements to Cloud Manager so that we can deliver a high-quality and consistent user experience across product families. These experience updates are driven by our new Akamai Core Design System. - -*This section will be updated as we roll out additional experience improvements to Cloud Manager. For a list of all changes to Cloud Manager, review the [Cloud Manager changelog](https://github.com/linode/manager/releases).* - -### July 2024 - -In early July, we've made minor branding changes to Cloud Manager. As part of these changes, we've implemented higher color contrast to improve the accessibility of both text and interactive components. Review the screenshots below for a closer look at the changes. - -| Previous Design | Updated Design   | -| -- | -- | -| ![Screenshot of the previous light theme in Cloud Manager](cloud-manager-previous-light.jpg) | ![Screenshot of the new light theme in Cloud Manager](cloud-manager-new-light.jpg) | -| ![Screenshot of the previous dark theme in Cloud Manager](cloud-manager-previous-dark.jpg) | ![Screenshot of the new dark theme in Cloud Manager](cloud-manager-new-dark.jpg) | \ No newline at end of file diff --git a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/L_SearchInCloudManager.png b/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/L_SearchInCloudManager.png deleted file mode 100644 index e56ee39578a..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/L_SearchInCloudManager.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/Searchinginthe-CloudManager.png b/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/Searchinginthe-CloudManager.png deleted file mode 100644 index 68fc9d20d78..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/Searchinginthe-CloudManager.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/cloud-manager-search-error.png b/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/cloud-manager-search-error.png deleted file mode 100644 index 8c99b128c6a..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/cloud-manager-search-error.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/index.md b/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/index.md deleted file mode 100644 index 4e96c525695..00000000000 --- a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/index.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -slug: search-in-cloud-manager -title: "How to Search in Cloud Manager" -description: "How to Leverage the Advanced Search Function of Cloud Manager." -published: 2020-01-08 -modified: 2024-07-29 -keywords: ['search','advanced search','keywords','cloud manager'] -image: L_SearchInCloudManager.png -tags: ["linode platform","cloud manager"] -aliases: ['/quick-answers/linode-platform/how-to-search-in-the-cloud-manager/','/guides/how-to-search-in-the-cloud-manager/'] ---- - -Cloud Manager includes a search tool at the top of the dashboard which can be used to search for a large number of active services on your account, including Linodes, Volumes, NodeBalancers, Domains, Tags, and more. - -![Cloud Manager Search Bar](searchbar.png) - -This guide covers the capabilities of this search tool so that you and your team can leverage it to find and access your resources quickly and efficiently. - -## Standard Search - -A standard search without the use of any keywords or operators defaults to searching for active labels, tags, and IP addresses. In the following example, the search for the string "production" is used to pull up all of the resources which match this string, including both tags and labels. - -![Wildcard Search for Production](wildcardsearch.png) - -This kind of search is sufficient if you only have a few resources. However, if you have a large number of resources, the number of returned values can become difficult to parse. The following, more advanced tools, can be more helpful in these situations. - -## Keywords - -The search tool can also be used with keywords to help filter and refine the results. Here is a list of common keywords and their definitions: - -| Keyword | Definition | -| -- | -- | -| `type` | Type of resource. Linode, image, NodeBalancer, etc. | -| `tag` | Tag applied to your resources. See the guide on [Tags and Groups](/docs/products/tools/cloud-manager/guides/tags-and-groups/). | -| `label` | The label or identifier for your Linode. | -| `region` | The region for your resources, such as `us-east`. For a full list of regions, see the return values from the API or CLI [List Regions](/docs/api/regions/#regions-list) endpoint. | -| `IP` | The IP address of your resource. | -| `created` | The date your resource was created. | -| `status` | A brief description of a Linode's current state. See the API [View Linode](/docs/api/linode-instances/#linode-view) endpoint status field for all possible values. | - -The syntax for using keywords is: - -``` -keyword:string defined by the keyword to limit your search -``` - -For example, to search for all images on your account, you would enter the following: - -``` -type:image -``` - -To find all applicable resources created in the year 2020: - -``` -created:2020 -``` - -You can make this more focused by combining the standard search with the keywords. For example, the following query searches for NodeBalancers with the label or tag ecommerce: - -``` -type:NodeBalancer ecommerce -``` - -## Standard Logical Operators - -Cloud Manager includes support for standard logical operators `OR`, `AND`, and `-` (NOT) which can help to filter the results of your search further. - -### OR - -`OR` can be used to search for multiple different keywords in a single query. For example, use the following query to display all Linodes and Images on your account: - -``` -type:linode OR type:image -``` - -### AND - -`AND` will allow you to narrow your search more precisely for additional qualifiers. The following search finds all of the Linodes which also match the `production` tag: - -``` -type:linode AND tag:production -``` - -### NOT - -The **NOT**, or negate, operator is used by preceding the keyword with a `-` symbol. A negate operator can be used to return all values that are **NOT** defined by the negate operator. For example, this query will return everything except Linodes: - -``` --type:linode -``` - -## Aliases - -Some operators and keywords include one or more aliases that you can use as an alternative to standard usage. Aliases and their standard equivalent(s) are in the chart below. - -| Standard | Alias(es) | -|:--------------|:------------| -| **AND** | **&&** | -| **OR** | **|****|** | -| **tag** | **tags** or **group** | -| **label** | **name** or **title** | -| **type** | **is** | - -## Nested Queries - -You can nest queries using parentheses for an even higher level of control. For example, if you want to search for all of your domains created in 2010, as well as all of your Linodes that match the tag `my-tag`, you can use the following nested query: - -``` -(type:domain AND created:2010) OR (type:linode AND tag:my-tag) -``` - -## Combining Queries - -The most robust functionality of the search tool can be used by combining and grouping queries to create compound queries. For example, you can see all of the advanced features outlined in this guide in a single query: - -``` -type:linode AND -group:production || (type:NodeBalancer && tag:mytag) -``` - -## Invalid Search Results - -If you search for an invalid keyword, a string that doesn't match a keyword like an invalid status, or a search that comes up empty, Cloud Manager displays an error screen. - -![Search Error](cloud-manager-search-error.png) \ No newline at end of file diff --git a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/searchbar.png b/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/searchbar.png deleted file mode 100644 index 602392f2ba2..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/searchbar.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/wildcardsearch.png b/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/wildcardsearch.png deleted file mode 100644 index 07b2ec0fdf1..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/search-in-cloud-manager/wildcardsearch.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/add-tags-lke.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/add-tags-lke.png deleted file mode 100644 index 55f7e1c28a7..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/add-tags-lke.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/create-new-tag-lke.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/create-new-tag-lke.png deleted file mode 100644 index e4f7b10d03d..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/create-new-tag-lke.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/group-linode-tags.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/group-linode-tags.png deleted file mode 100644 index ea6a1cfd725..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/group-linode-tags.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/index.md b/docs/products/tools/cloud-manager/guides/tags-and-groups/index.md deleted file mode 100644 index c396029547c..00000000000 --- a/docs/products/tools/cloud-manager/guides/tags-and-groups/index.md +++ /dev/null @@ -1,273 +0,0 @@ ---- -slug: tags-and-groups -title: "Tags and Groups" -description: "This guide provides you with instructions for creating tags and groups in Cloud Manager to keep your Linodes and other services organized as needed." -published: 2019-02-22 -keywords: ['tags','cloud manager'] -tags: ["linode platform","cloud manager"] -aliases: ['/quick-answers/linode-platform/tags-and-groups/','/guides/tags-and-groups/'] ---- - -Both [Cloud Manager](https://cloud.linode.com) and the [Linode API](https://developers.linode.com) let you to create tags to help organize and group your Linode resources. Tags can be applied to Linodes, [Block Storage Volumes](/docs/products/storage/block-storage/), [NodeBalancers](/docs/products/networking/nodebalancers/get-started/), and [Domains](/docs/products/networking/dns-manager/). - -This guide demonstrates how to perform the following actions with Cloud Manager: - -- Create and apply tags to your Linode resources -- Search and group your Linode resources by tag -- Import tags from the Classic Manager - -## Tagging a Linode - -### Tag a Linode at Creation - -To tag a Linode at the time of its creation: - -1. In the **Create New Linode** form, click the dropdown menu labeled **Add Tags** located below the **Linode Label** field. - -1. Select one or more tags from the menu. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears: - - ![Add Tags field in the Linode creation form](tags-new-linode.png "Select an existing tag or tags, or provide a new tag with the 'Add Tags' dropdown.") - -1. Your tag will be applied when you finish creating the Linode. - -### Tag an Existing Linode - -To tag an existing Linode: - -1. Navigate to the Linode's detail page. - -1. Click on the **Summary** tab. - -1. Locate the **Tags** pane and click on the **Add New Tag** option. - -1. Select one or more tags from the dropdown menu that appears. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears: - - ![Location of Tags box for a Linode](tags-existing-linode.png "Find the 'Tags' box and select an existing tag or tags, or type to add a new one.") - -### Remove a Tag from a Linode - -To remove a tag from a Linode: - -1. Navigate to the Linode's detail page. - -1. Click on the **Summary** tab. - -1. Locate the **Tags** box. A list of your tags for the Linode will be displayed. - -1. Click on the **X** icon attached to the tag you would like to remove from your Linode. - -## Tagging a Volume - -### Tag a Volume at Creation - -To tag a Volume at the time of its creation: - -1. In the **Create a Volume** form, select the dropdown menu labeled **Tags**. - -1. Select one or more tags from the menu. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears. - - ![Tags field in the Volume creation form](tags-new-volume.png "Select the tag you would like to use from the 'Tags' dropdown menu, or type to create a new tag") - -1. Once you are done configuring the Volume, click **Submit**. - -### Tag an Existing Volume - -To tag an existing Volume: - -1. Navigate to the Volumes page of Cloud Manager. - -1. Select the more options **ellipsis (...)** corresponding to the Volume you would like to tag. - -1. Select **Edit Volume** from the menu that appears. - -1. The **Edit volume** form will appear. Click on the dropdown menu labeled **Tags**. - -1. Select one or more tags from the form. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears. - -1. When you are done, click **Submit**: - - ![Tags field in the Edit volume form](tags-existing-volume.png "Select the tag you would like to use from the 'Tags' dropdown menu, or type to create a new tag") - -### Remove a Tag from a Volume - -To remove a tag from a Volume: - -1. Navigate to the Volumes page of Cloud Manager. - -1. Select the more options **ellipsis (...)** corresponding to the Volume whose tags you would like to edit. - -1. Select **Edit Volume** from the menu that appears. - -1. The **Edit volume** form will appear. A list of your tags for the Volume will be displayed in the **Tags** field. - -1. Click on the **x** icon attached to the tag you would like to remove from your Volume. - -## Tagging a NodeBalancer - -### Tag a NodeBalancer at Creation - -To tag a NodeBalancer at the time of its creation: - -1. In the **Create a NodeBalancer** form, click the dropdown menu labeled **Add Tags** under the **NodeBalancer Label** field. - -1. Select one or more tags from the menu. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears. - - ![Add Tags field in the NodeBalancer creation form](tags-new-nodebalancer.png "Select the tag you would like to use from the 'Add Tags' dropdown menu, or type to create a new tag.") - -1. Once you are done configuring the NodeBalancer, click **Create**. - -### Tag an Existing NodeBalancer - -To tag an existing NodeBalancer: - -1. Navigate to the NodeBalancer's detail page. - -1. Click on the **Summary** tab. - -1. Locate the **Tags** pane and click on the **Add New Tag** option. - -1. Select one or more tags from the dropdown menu that appears. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears: - - ![Location of Tags box for a NodeBalancer](tags-existing-nodebalancer.png "Find the 'Tags' box and either select an existing tag, or type in a new one.") - -### Remove a Tag from a NodeBalancer - -To remove a tag from a NodeBalancer: - -1. Navigate to the NodeBalancer's detail page. - -1. Click on the **Summary** tab. - -1. Locate the **Tags** pane. A list of your tags for the NodeBalancer will be displayed. - -1. Click on the **x** icon attached to the tag you would like to remove from your NodeBalancer. - -## Tagging a Domain - -### Tag a Domain at Creation - -To tag a domain at the time of its creation: - -1. In the **Add a new Domain** form, click the dropdown menu labeled **Add Tags**. - -1. Select one or more tags from the menu. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears: - - ![Tags field in the domain creation form](tags-new-domain.png "Select the tag you would like to use from the 'Tags' dropdown menu, or type to create a new tag.") - -### Tag an Existing Domain - -To tag an existing domain: - -1. Navigate to the domain's detail page. - -1. Click on the **DNS Records** tab. - -1. Locate the pane labeled **Tags** and click on the **Add New Tag** option. - -1. Select one or more tags from the dropdown menu that appears. To create a new tag, type in the desired tag name and click the **Create "new-tag"** option that appears: - - ![Location of Tags box for a domain](tags-existing-domain.png "Find the 'Tags' box and select an existing tag or tags, or type to add a new one.") - -### Remove a Tag from a Domain - -To remove a tag from a domain: - -1. Navigate to the domain's detail page. - -1. Click on the **DNS Records** tab. - -1. Locate the **Tags** pane. A list of your tags for the Domain will be displayed. - -1. Click on the **x** icon attached to the tag you would like to remove from your domain. - -## Tagging an LKE Cluster - -### Tag an LKE Cluster at Creation - -1. Navigate to the **Kubernetes** section of Cloud Manager and [create your LKE cluster](/docs/products/compute/kubernetes/guides/create-cluster/). - -1. After the cluster is created, your cluster's summary page will appear. Click on the **Add a tag** link to begin adding tags to your cluster. - - ![Click on the Add Tags link to begin adding tags](add-tags-lke.png) - -1. You can create a new tag and assign it to your cluster by typing the tag into the text entry box and clicking on the **Create my-new-tag** entry that appears. - - ![Create a new tag and add it to your LKE cluster](create-new-tag-lke.png) - - If you'd like to use an existing tag, select it from the dropdown list that appears. - - ![Select and existing tag and add it to your LKE cluster](select-existing-tag-lke.png) - - When your tag has been added to your cluster, you will see it appear on your cluster's summary page. - - ![Select and existing tag and add it to your LKE cluster](view-clusters-tags-lke.png) - -### Tag an Existing LKE Cluster - -1. Navigate to the **Kubernetes** section of Cloud Manager and select the cluster you'd like to add a tag to. - -1. Viewing your cluster's summary page, click on the **Add a tag** link to begin adding tags to your cluster. - - ![Click on the Add Tags link to begin adding tags](add-tags-lke.png) - -1. You can create a new tag and assign it to your cluster by typing the tag into the text entry box and clicking on the **Create my-new-tag** entry that appears. - - ![Create a new tag and add it to your LKE cluster](create-new-tag-lke.png) - - If you'd like to use an existing tag, select it from the dropdown list that appears. - - ![Select and existing tag and add it to your LKE cluster](select-existing-tag-lke.png) - - When your tag has been added to your cluster, you will see it appear on your cluster's summary page. - - ![Your tag has been successfully added to your cluster](view-clusters-tags-lke.png) - -### Remove a Tag from an LKE Cluster - -1. Navigate to the **Kubernetes** section of Cloud Manager and select the cluster from which you'd like to remove a tag. - -1. Viewing the cluster's summary page, you will see a list of all of your cluster's tags. To remove a tag, click on the **x** next to the tag you'd like to remove. - - ![Remove an existing LKE cluster's tag.](remove-tag-lke.png) - -## Grouping by Tag - -You can group the following resources by tag: Linodes, Volumes, NodeBalancers, and Domains. - -1. To group by tag, navigate to the resource's page and toggle the **Group by Tag** switch at the top of the page: - - ![Cloud Manager Group by Tag switch](tags-group-linodes.png "To group Linodes by tag, toggle the 'Group by Tag' box at the top of the Linodes page") - -1. You will now be able to view your resources grouped by tag: - - ![Group your Linodes by tag](group-linode-tags.png "View all your grouped by tags Linodes") - -## Searching by Tag - -You can search your Linode resources by a tag's name: - -1. Type the tag name into the search bar at the top of Cloud Manager and the results will be populated in a dropdown list that appears: - - ![Cloud Manager tag search](tags-search-bar.png "Search for resources by tag") - -1. To see a more organized view of your tagged resources, click on the blue **View search results page** banner inside the dropdown list, or hit the **Enter** key on your keyboard. You will be taken to the search results page: - - ![Cloud Manager search results page](tags-search-results.png "The search results page") - -1. A second way to search by tag is to click on a tag wherever it appears in Cloud Manager. For example, if you previously applied a tag named `tag-example` to one of your Linodes, clicking on that tag where it is displayed in the Linode's detail page will take you to the search results page for `tag-example`. - -## Importing Groups as Tags - -If you have used the Display Groups feature in the Classic Manager, you can import your Display Groups to Cloud Manager as tags: - -1. Navigate to the **Account** page in the sidebar links menu, then click on the **Settings** tab. - -1. Expand the panel labeled **Import Display Groups as Tags** and then click **Import Display Groups**: - - ![Cloud Manager import display groups as tags](tags-import-groups.png "Import display groups from the Classic Manager with the 'Import Display Groups' button in Account Settings") - -1. A form will appear that lists your Display Groups and asks you to confirm the import action. To proceed, click the **Import Display Groups Now** button in this form. - - {{< note >}} - Importing your Display Groups is a **one-time** operation. If you don't have any Display Groups configured in the Classic Manager this feature will not appear in Cloud Manager. - {{< /note >}} \ No newline at end of file diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/remove-tag-lke.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/remove-tag-lke.png deleted file mode 100644 index 17a62821c65..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/remove-tag-lke.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/select-existing-tag-lke.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/select-existing-tag-lke.png deleted file mode 100644 index fba2076f0f2..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/select-existing-tag-lke.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-domain.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-domain.png deleted file mode 100644 index fb2b7aaee9c..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-domain.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-linode.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-linode.png deleted file mode 100644 index 313424f53d3..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-linode.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-nodebalancer.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-nodebalancer.png deleted file mode 100644 index 65e252bbf68..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-nodebalancer.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-volume.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-volume.png deleted file mode 100644 index 4ee4a9fe21f..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-existing-volume.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-group-linodes.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-group-linodes.png deleted file mode 100644 index c935230415e..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-group-linodes.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-import-groups.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-import-groups.png deleted file mode 100644 index 978f703986d..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-import-groups.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-domain.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-domain.png deleted file mode 100644 index a162d5fb44f..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-domain.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-linode.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-linode.png deleted file mode 100644 index 8717ed4c365..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-linode.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-nodebalancer.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-nodebalancer.png deleted file mode 100644 index 7a4750fd77c..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-nodebalancer.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-volume.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-volume.png deleted file mode 100644 index a1748658f34..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-new-volume.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-search-bar.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-search-bar.png deleted file mode 100644 index 2d212ae1b8c..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-search-bar.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-search-results.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-search-results.png deleted file mode 100644 index a0c50336424..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/tags-search-results.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/tags-and-groups/view-clusters-tags-lke.png b/docs/products/tools/cloud-manager/guides/tags-and-groups/view-clusters-tags-lke.png deleted file mode 100644 index ae76b37daa1..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/tags-and-groups/view-clusters-tags-lke.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/L_UnderstandCommonClManErrors.png b/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/L_UnderstandCommonClManErrors.png deleted file mode 100644 index bce2d8b3a46..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/L_UnderstandCommonClManErrors.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/UnderstandingCommonCloudManagerErrors.png b/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/UnderstandingCommonCloudManagerErrors.png deleted file mode 100644 index e7d43f29075..00000000000 Binary files a/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/UnderstandingCommonCloudManagerErrors.png and /dev/null differ diff --git a/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/index.md b/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/index.md deleted file mode 100644 index 9c952409f8c..00000000000 --- a/docs/products/tools/cloud-manager/guides/troubleshooting-cloud-manager-errors/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -slug: troubleshooting-cloud-manager-errors -title: "Troubleshooting Cloud Manager Errors" -description: "This guide provides information and troubleshooting steps for possible Cloud Manager errors." -published: 2019-02-22 -keywords: ['error','account limit','limit','activated', 'before you can', 'please try again', 'open a support ticket'] -aliases: ['/quick-answers/linode-platform/an-overview-of-common-cloud-manager-errors/','/quick-answers/linode-platform/understanding-cloud-manager-errors/','/guides/an-overview-of-common-cloud-manager-errors/'] -image: L_UnderstandCommonClManErrors.png -tags: ["linode platform","cloud manager"] ---- - -Have you ever encountered an error message while navigating Cloud Manager and wanted more information as to what may have triggered the error and what your best next steps may be? In this guide we'll go over some common error messages in a higher level of detail than are traditionally provided, and discuss your best path forward. - -{{< note >}} -For more information on troubleshooting, see the [Troubleshooting Section](/docs/guides/troubleshooting/) of our documentation. -{{< /note >}} - -## Error Retrieving Linodes - -**There was an error retrieving your Linodes. Please try again later.** - -The above error means that there is an issue retrieving your Linodes from our backend servers. As a first step, you should check our status page at [status.linode.com](https://status.linode.com) to ensure that there are no current issues that may be effecting your Linodes or our service. If you see a current issue, you can rest assured that we're investigating and will work to bring your services back online as quickly as possible. - -If the status page shows that everything is all clear, then the next step is to attempt to clear your web browser cache, as this can sometimes cause an issue in loading resources. The method for completing this process varies between browsers, however it usually involves opening your browsers full history and finding an option to clear it. - -If all else fails, you should reach out to our 24/7 [Support Team](https://www.linode.com/support/) for more direct assistance. Additionally, we can also recommend attempting to access your resources through alternative means such as our [API](/docs/products/tools/api/) or [CLI](/docs/products/tools/cli/get-started/) if our Manager is inaccessible for any reason. - -## Error Retrieving Network Information - -**There was an error retrieving network information for this Linode.** - -When you create a new Linode, it can take some time to gather enough data about your Linode's networking traffic to create an output for Cloud Manager. During the time that information is being gathered, the Network Tab will output the message **There was an error retrieving network information for this Linode** in place of the Network Transfer History graph. To confirm that there hasn't been enough analytical data gathered from the Linode, check the Analytics tab, which should state Graphs for this Linode are not yet available - check back later in place of its usual graphs. - -The amount of time it takes the Network Transfer History graph to populate can vary depending on multiple factors including which distribution you've chosen for your Linode, which data center the Linode is in, and any scripts which were used to deploy the Linode. - -If you are still seeing this message after a considerable amount of time, it is recommended that you attempt to clear your web browser cache, as this can sometimes cause an issue in loading resources. The method for completing this process varies between browsers, however it usually involves opening your browser's full history and finding an option to clear it. - -If clearing the browser cache doesn't clear the message or you are noticing networking issues on your Linode beyond this message please see the [Troubleshooting Basic Connection Issues guide](/docs/products/compute/compute-instances/guides/troubleshooting-connection-issues/). - -## Your Account Must Be Activated - -**Your account must be activated before you can use this endpoint** - -Generally the above message will occur when you've recently signed up for new services and your account has not yet fully activated. The best next step is to check your e-mail address for further instructions. - -## Account Limit Reached - -**Account Limit Reached. Please open a support ticket.** - -If you see the following message, then you'll be unable to create a resource due to a limit currently set on your account. Our [Support Team](https://www.linode.com/support/) will be able to help to either increase this limit, or provide insight into why the limit may be in place. - -The reasons behind these limits can vary, though in most cases are related to default resource limits set on your account. - -## Your DNS Zones are Not Being Served - -**Your DNS zones are not being served. Your domains will not be served by Linode's nameservers unless you have at least one Linode present on your account. You can create one here.** - -This message is seen when using the DNS Manager without any active Compute Instances. While the DNS Manager is a free service, it does require that at least one active Compute Instance is present on your account. See [DNS Manager Pricing and Availability](/docs/products/networking/dns-manager/#pricing-and-availability). \ No newline at end of file diff --git a/docs/products/tools/cloud-manager/release-notes/index.md b/docs/products/tools/cloud-manager/release-notes/index.md deleted file mode 100644 index bde97923f7b..00000000000 --- a/docs/products/tools/cloud-manager/release-notes/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Release Notes -title_meta: "Release Notes for Cloud Manager" -description: "Learn more about what's new and changing on Cloud Manager by reviewing the changelog entries." -published: 2022-11-07 -modified: 2024-06-11 -promo_default: false -tab_group_main: - weight: 100 ---- - -Release notes for Cloud Manager are located on Cloud Manager's public GitHub repository. See the [Releases](https://github.com/linode/manager/releases) page on the [linode/manager](https://github.com/linode/manager/) repository. \ No newline at end of file diff --git a/docs/products/tools/cloud-manager/resources/index.md b/docs/products/tools/cloud-manager/resources/index.md deleted file mode 100644 index 74a984c991b..00000000000 --- a/docs/products/tools/cloud-manager/resources/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Resources -title_meta: "Resources for Cloud Manager" -description: "Resources and other information related to Cloud Manager including videos, blog posts, community posts and customer stories." -published: 2020-06-02 -tab_group_main: - weight: 40 ---- - -## Videos - -- [Linode, Explained](https://www.linode.com/content/linode-explained/) - -## Blog Posts - -- [Notice: Linode Classic Manager Users](https://www.linode.com/blog/linode/notice-legacy-linode-manager-users/) - -- [Linode Manager Two-Step Authentication](https://www.linode.com/blog/linode/linode-manager-two-step-auth/) - -- [GitHub Third-Part Authentication Speeds Up Sign-In](https://www.linode.com/blog/linode/github-third-party-authentication/) - -- [Linode at 17: A bunch of updates](https://www.linode.com/blog/linode/linode-turns-17/) - -- [Linode Community Update - November 2018](https://www.linode.com/blog/cloud-computing/linode-community-update-november-2018/) - -- [Linode turns 14!](https://www.linode.com/blog/linode/linode-turns-14/) - -- [High-Memory Instances and $5 Linodes](https://www.linode.com/blog/linode/high-memory-instances-and-5-linodes/) - -- [PayPal Payments](https://www.linode.com/blog/linode/paypal-payments/) - -- [Linode’s 13th Birthday - Gifts for All!](https://www.linode.com/blog/linode/linodes-13th-birthday-gifts-for-all/) - -## Community Posts - -- [How do I go about adjusting my Cloud account’s preferred timezone?](https://www.linode.com/community/questions/18540/how-do-i-go-about-adjusting-my-cloud-accounts-preferred-timezone) - -- [Does New Linode Cloud Manager Use a JavaScript Framework?](https://www.linode.com/community/questions/18186/does-new-linode-cloud-manager-use-a-javascript-framework) - -- [How do I secure my Linode account?](https://www.linode.com/community/questions/307/how-do-i-secure-my-linode-account) - -- [Finding my Linodes when I have lots and lots of them](https://www.linode.com/community/questions/19373/finding-my-linodes-when-i-have-lots-and-lots-of-them) - -- [How does the Trusted Device option for Cloud Manager work?](https://www.linode.com/community/questions/18637/how-does-the-trusted-device-option-for-cloud-manager-work) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=cloud+manager). - -## Customer Stories - -- [Craft of Code Bernd Hilmar](https://www.linode.com/spotlight/bernd-hilmar/) diff --git a/docs/products/tools/feature.svg b/docs/products/tools/feature.svg deleted file mode 100644 index f8e404e3c4f..00000000000 --- a/docs/products/tools/feature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/products/tools/images/_index.md b/docs/products/tools/images/_index.md deleted file mode 100644 index 79584f8980f..00000000000 --- a/docs/products/tools/images/_index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Images" -title_meta: "Custom Images Product Documentation" -description: "Custom Images allow for rapid deployments of preconfigured disks to new or existing Compute Instances. They can be easily created by capturing a disk on an existing Instnace or uploading an image file." -published: 2020-06-02 -modified: 2023-11-29 -keywords: ["linode Images", "imagize"] -tags: ["linode platform","cloud manager"] -aliases: ['/guides/linode-images/','/linode-images/','/platform/disk-images/linode-images/','/platform/disk-images/linode-images-classic-manager/','/platform/linode-images/','/platform/disk-images/linode-images-new-manager/'] -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-06-02 - product_description: "Create preconfigured disk images that can be rapidly deployed to new or existing Compute Instances." ---- - -Linode's **Images** service allows users to store custom disk images in the Cloud. These images can be preconfigured with the exact software and settings required for your applications and workloads. Once created, they can be quickly deployed to new or existing Linode Compute Instances, saving users time from manually setting up their entire system after each deployment. - -## Create Golden Images - -Easily create, store, and deploy *golden images* on your Linode account. A golden image is a term for an image preconfigured with the exact software, settings, and data files you desire for a particular application. Configure your software once and then create a Custom Image based on that environment. This Custom Image can then be rapidly deployed to any Compute Instance, saving you time from having to manually configure each system. - -## Retain Disks - -Custom Images can also be used to quickly take a snapshot of a disk on an existing Compute Instance. This provides you with a copy of those disks should they need to be restored. For more comprehensive backups, including automated backups, consider using our [Backup Service](/docs/products/storage/backups/). - -## Recover Recently Deleted Compute Instances - -Accidentally deleting a production server will almost certainly impact your users and business. Linode's Custom Images service makes recovery easier by saving temporary **Recovery Images** on your account. These images can be used to quickly restore the disks from a recently deleted Compute Instance. Linode offers this service as a convenience and it's important to note that a well rounded backup strategy typically involves multiple solutions (see [Backing Up Your Data](/docs/guides/backing-up-your-data/)). - -## Recommended Workloads - -- Web or software agencies deploying similar starter configurations for clients -- Development workflows requiring the same base image for all developers or applications -- Workflows requiring distributions other than [those provided by Linode](/docs/products/compute/compute-instances/guides/distributions/) - -## Availability - -Images can be created and deployed across [all regions](https://www.linode.com/global-infrastructure/). - -## Pricing - -Custom Images cost $0.10/GB per month. - -{{< note >}} -Recovery Images, which are generated automatically after a Compute Instance is deleted, are provided at no charge. -{{< /note >}} - -## Technical Specifications - -- **Maximum image size:** A Custom Image can be up to **6 GB\*** in size. When uploading a custom image, this is the maximum _uncompressed_ size. - -- **Account limits:** Each account can store up to **25\*** Custom Images, offering **150 GB\*** of combined storage for all images on the account. - -- **File system support:** **ext3** and **ext4** file systems are supported. Raw disks or disks that have been formatted using other file systems are not supported. - -- **Upload image format and size limits:** The [.img](https://en.wikipedia.org/wiki/IMG_%28file_format%29) file format is supported when uploading an image file. This file should be compressed using [gzip](https://en.wikipedia.org/wiki/Gzip) (`.img.gz`). It can be up to **5GB** when compressed and, when uncompressed, up to the **maximum image size** as stated above. - -\* *If you need to store larger images (or more images), contact [Linode Support](https://www.linode.com/support/) with additional details of your applications or intended workloads.* - -### Additional Specifications - -- [Capture an Image > Requirements and Considerations](/docs/products/tools/images/guides/capture-an-image/#requirements-and-considerations) -- [Upload an Image > Requirements and Considerations](/docs/products/tools/images/guides/upload-an-image/#requirements-and-considerations) diff --git a/docs/products/tools/images/developers/index.md b/docs/products/tools/images/developers/index.md deleted file mode 100644 index 01b3cc99555..00000000000 --- a/docs/products/tools/images/developers/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Custom Images" -description: "Linode Images are managed easily with developer tools like the Linode API or CLI." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s API v4 provides the ability to programmatically manage the full range of Linode products and services. -[Linode Images Endpoint Collection](/docs/api/images/) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to [use and install the Linode CLI](/docs/products/tools/cli/get-started/) to get started. \ No newline at end of file diff --git a/docs/products/tools/images/feature.svg b/docs/products/tools/images/feature.svg deleted file mode 100644 index 501ddfd25af..00000000000 --- a/docs/products/tools/images/feature.svg +++ /dev/null @@ -1,9 +0,0 @@ - - Images - - - - - - - \ No newline at end of file diff --git a/docs/products/tools/images/get-started/index.md b/docs/products/tools/images/get-started/index.md deleted file mode 100644 index aa63aafb52f..00000000000 --- a/docs/products/tools/images/get-started/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with Custom Images" -description: "Get started with Linode Images. Learn to create an image with the Linode Images service." -tab_group_main: - weight: 20 ---- - -All Images stored on your Account are visible from the main **Images** page within Cloud Manager. Images are divided between two tables: *Custom Images* and *Recovery Images*. - -- **Custom Images:** Images that are manually created by a user on the account. These Images were either captured from an existing Compute Instance's disk or uploaded from an image file. Custom Images do not expire and remain on the account until they are manually deleted. - -- **Recovery Images:** Temporary Images that are automatically created when a Compute Instance is deleted (provided the Instance has been active for at least 12 hours). Recovery Images have a defined expiration date and, once expired, are automatically deleted. The expiration timeline is typically equal to the number of hours the Instance was active, up to 7 days. - -## Creating an Image - -Within the **Images** page of Cloud Manager, click **Create Image**. - -- To capture an Image from an existing Compute Instances's disk, complete the form under the **Capture Image** tab. See [Capture an Image](/docs/products/tools/images/guides/capture-an-image/) for full instructions. -- To upload an Image using an image file, complete the form under the **Upload Image** tab. See [Upload an Image](/docs/products/tools/images/guides/upload-an-image/) for full instructions. - -## Deploying and Managing Existing Images - -To take action on an Image, locate the Image within the **Images** page of Cloud Manager and click the corresponding **ellipsis** options menu. From here, there are a few actions that can be initiated: - -- **Edit:** Change the *Label* and *Description* for the Image. -- **Deploy to a New Compute Instance:** Create a new Compute Instance using the Image. See [Deploy an Image to a New Compute Instance](/docs/products/tools/images/guides/deploy-image-to-new-linode/). -- **Deploy to an Existing Compute Instance:** Rebuild an Instance or create a new disk using the Image. See [Deploy an Image to an Existing Compute Instance](/docs/products/tools/images/guides/deploy-image-to-existing-linode/). -- **Delete:** Delete the Image (cannot be undone). - diff --git a/docs/products/tools/images/guides/_index.md b/docs/products/tools/images/guides/_index.md deleted file mode 100644 index 013a0b50ea4..00000000000 --- a/docs/products/tools/images/guides/_index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Custom Images" -description: "Learn how to create and manage Linode Images and find guides on other related topics." -tab_group_main: - weight: 30 ---- - -## Basics - -### Create an Image - -- [Capture an Image](/docs/products/tools/images/guides/capture-an-image/): Create an Image from an existing Compute Instance. - -- [Upload an Image](/docs/products/tools/images/guides/upload-an-image/): Create an Image from an image file. - -### Deploy an Image - -- [Deploy an Image to a New Compute Instance](/docs/products/tools/images/guides/deploy-image-to-new-linode/): Create a new Compute Instance using an Image. - -- [Deploy an Image to an Existing Compute Instance](/docs/products/tools/images/guides/deploy-image-to-existing-linode/): Deploy an Image by either rebuilding an existing Compute Instance or adding a disk. - -## Going Further - -- [Using the Linode Packer Builder to Create Custom Images](/docs/guides/how-to-use-linode-packer-builder/) - -## Related Guides - -### Cloning and Disks - -- [Cloning a Linode](/docs/products/compute/compute-instances/guides/clone-instance/) - -- [Linode Disks and Storage](/docs/products/compute/compute-instances/guides/disks-and-storage/) - -- [Linode Configuration Profiles](/docs/products/compute/compute-instances/guides/configuration-profiles/) - -### Custom Distributions - -- [Install a Custom Distribution on a Linode](/docs/guides/install-a-custom-distribution/) - -### Migration - -- [Migrating a Google Cloud Platform VM Instance to Linode](/docs/guides/how-to-migrate-from-gcp-to-linode/) diff --git a/docs/products/tools/images/guides/capture-an-image/images-capture-status.png b/docs/products/tools/images/guides/capture-an-image/images-capture-status.png deleted file mode 100644 index 74c281c5242..00000000000 Binary files a/docs/products/tools/images/guides/capture-an-image/images-capture-status.png and /dev/null differ diff --git a/docs/products/tools/images/guides/capture-an-image/images-capture.png b/docs/products/tools/images/guides/capture-an-image/images-capture.png deleted file mode 100644 index 2791ad1cd90..00000000000 Binary files a/docs/products/tools/images/guides/capture-an-image/images-capture.png and /dev/null differ diff --git a/docs/products/tools/images/guides/capture-an-image/index.md b/docs/products/tools/images/guides/capture-an-image/index.md deleted file mode 100644 index 932745343a7..00000000000 --- a/docs/products/tools/images/guides/capture-an-image/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Capture an Image -description: "How to capture an Image from a Linode." -modified: 2023-06-01 ---- - -## Requirements and Considerations - -When capturing an image file from an existing Linode Compute Instance, keep the following limits, requirements, and considerations in mind. - -- Review the overall [Technical Specifications](/docs/products/tools/images/#technical-specifications) of the Custom Images service. - -- **The disk's internal storage utilization must be 10% less than the account's image size limit**. Since the default image size limit is 6 GB, your disk's storage usage should be under 5.4 GB in most cases. To check the internal disk usage, log in to the Compute Instance and run `df -h`. Within the output, locate the disk and review the value within the **Used** column. - -- **The disk must be formatted using ext3/ext4 filesystems.** Images cannot be created if you are using raw disks or disks that have been formatted using custom filesystems. CoreOS disk images are in RAW format. Images made from CoreOS disks can't be used to deploy new Linodes. - -- **Power off Linode to avoid database corruption.** If your Linode is running any active databases, it's recommended to power off the Linode down before creating the image. Creating an image that includes a running database can cause corruption or data loss in the imaged copy of the database. - -- **Only the selected disk is saved to the Image.** The Image is comprised only of the disk selected during the creation process. The Image does not store other aspects of the Linode, such as Configuration Profiles, Block Storage Volumes, IP Addresses, and other Linode-based settings. - -## Capturing an Image through Cloud Manager - -1. Log in to Cloud Manager and open the **[Capture Image](https://cloud.linode.com/images/create/disk)** form by navigating to the **Images** page, clicking the **Create Image** button, and staying on the **Capture Image** tab. - -1. Select your *Linode* and *Disk* from their respective dropdown lists and type in an optional *Label* and *Description* for the Image. If no *Label* is entered, the label for the disk will be used. When selecting a Linode and Disk, keep in mind any limitations that may prevent the Image from creating successfully. - - ![Select the Linode and disk](images-capture.png "Select the Linode and disk") - -1. Click the **Create** button to start creating the Image. It will take some time to fully complete. You can check the status of this process by navigating to the main **Images** page, finding the new image in the **Custom Images** table, and looking at the *Status* column. If the Image has been captured and processed, the status should be set to *Ready*. The *Size* of the Image is based on the disk's usage, not the size of the disk itself. - - ![Image status](images-capture-status.png "Image status") \ No newline at end of file diff --git a/docs/products/tools/images/guides/deploy-image-to-existing-linode/config-profile-boot.png b/docs/products/tools/images/guides/deploy-image-to-existing-linode/config-profile-boot.png deleted file mode 100644 index 48e0902f3f1..00000000000 Binary files a/docs/products/tools/images/guides/deploy-image-to-existing-linode/config-profile-boot.png and /dev/null differ diff --git a/docs/products/tools/images/guides/deploy-image-to-existing-linode/images-deploy-existing-linode.png b/docs/products/tools/images/guides/deploy-image-to-existing-linode/images-deploy-existing-linode.png deleted file mode 100644 index b5be134f8a4..00000000000 Binary files a/docs/products/tools/images/guides/deploy-image-to-existing-linode/images-deploy-existing-linode.png and /dev/null differ diff --git a/docs/products/tools/images/guides/deploy-image-to-existing-linode/index.md b/docs/products/tools/images/guides/deploy-image-to-existing-linode/index.md deleted file mode 100644 index 54055e9596a..00000000000 --- a/docs/products/tools/images/guides/deploy-image-to-existing-linode/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Deploy an Image to an Existing Compute Instance" -description: "Learn how to deploy an Image to an existing Linode Compute Instance by rebuilding it or adding a new disk." -aliases: ['/guides/deploy-an-image-to-a-linode/','/quick-answers/linode-platform/deploy-an-image-to-a-linode/','/quick-answers/linode-platform/deploy-an-image-to-a-linode-classic-manager/'] ---- - -While it's typically more common to [deploy an Image to a *new* Compute Instance](/docs/products/tools/images/guides/deploy-image-to-new-linode/), you are also able to deploy an Image to an *existing* Instance. You may wish to do this if you want to maintain consistent billing or if you wish to add the Image alongside the existing data. - -There are two methods to deploy an Image to an existing Compute Instance: - -- [Rebuilding the Compute Instance](#deploy-an-image-by-rebuilding-a-compute-instance) -- [Adding a disk to the Compute Instance](#deploy-an-image-by-adding-a-disk-to-a-compute-instance) - -## Deploy an Image by Rebuilding a Compute Instance - -A common method of deploying an Image is to rebuild an existing Compute Instance with your desired Image. This deletes all data and disks on that Instance and creates new disks for the selected Image. Use this method only if you no longer need the data that's stored on the Instance. - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and navigate to the **Images** page. - -1. Locate the Image you wish to deploy and click the corresponding **ellipsis** options menu. Select **Rebuild an Existing Linode**. - - ![Rebuild an existing Linode with an Image](images-deploy-existing-linode.png) - -1. Within the **Restore from Image** panel that appears, select the Compute Instance to use and click the **Restore Image** button. - - ![The 'Restore from Image' panel in Cloud Manager](restore-from-image-panel.png) - -1. You are redirected to the dashboard page for that Linode and the **Rebuild** form is displayed with the chosen Image preselected. Complete the remainder of this form, making sure to select your desired **Root Password**, and any other options that may be needed. See [Rescue and Rebuild → Rebuilding](/docs/products/compute/compute-instances/guides/rescue-and-rebuild/#rebuilding) for full instructions on rebuilding a Linode. - -1. Click the **Rebuild Linode** button to rebuild the Linode. All existing disks will be deleted and a new disk will be created using the selected Image. - -## Deploy an Image by Adding a Disk to a Compute Instance - -If you instead wish to retain the data on your Compute Instance, you can add a disk with your desired Image to that Instance. This is useful if you wish to have multiple bootable configurations and only need to access one at a time. - -1. Log in to [Cloud Manager](https://cloud.linode.com/), click the **[Linodes](https://cloud.linode.com/linodes)** link in the sidebar, and select a Compute Instance from the list. - -1. **Create a disk with the Image**. Follow the instructions to [create a disk](/docs/products/compute/compute-instances/guides/disks-and-storage/#create-a-disk) using [Cloud Manager](https://cloud.linode.com/). Keep the following considerations in mind: - - - Confirm there is enough unallocated storage space to accommodate the new disk for the desired Image. If you aren't sure of the size of the Image, open the **[Images](https://cloud.linode.com/images)** page, find the Image within the list, and view the *Size* column. - - When creating the disk, select the **Create from Image** option and select the Image you wish to deploy. - -1. **Optionally create a swap disk**. Your image *may* require a swap disk in order to boot. If you already have a swap disk on your Compute Instance from a previous image deployment (visible under the **Disks** panel), you can reuse that same disk with your new image. Otherwise, you can create a new swap disk: - - 1. Navigate back to the Linode's **Storage** tab and click the **Add a Disk** button. - - 1. In the **Add Disk** form, select **Create Empty Disk** and choose the *swap* option from the **Filesystem** dropdown menu. Then enter a *Label* and *Size* (usually 128MB, 256MB, or 512MB). Click the **Add** button to create the disk. - -1. **Create or edit a configuration profile**. To boot using the new disk, the disk needs to be properly assigned within a new or existing [configuration profile](/docs/products/compute/compute-instances/guides/configuration-profiles/) and selected as the *Root Device*. - - 1. Navigate to the Linode's **Configuration** tab and click the **Add Configuration** button. It's also possible to adjust an existing configuration profile by clicking the *Edit* link next to that configuration. - - 1. Within the **Add (or Edit) Configuration** form that appears, assign the disk under **Block Device Assignment** and select that device as the **Root Device**. Here are the important fields within this form: - - | Field | Value | - |-------|-------------| - | Label | A name for the configuration profile. | - | Comments | Enter any comments that may help you remember the purpose for your new configuration profile, or any other notes you'd like to record. | - | Select a Kernel | In most cases, select *GRUB 2*. | - | /dev/sda | Choose the disk for the new Image that was just deployed. | - | /dev/sdb | Choose the swap disk, if one is available. | - - For all of Linode's standard distribution images, the other fields can retain their default values. For Custom Images, you may need to update other parts of the configuration profile. Review the [Managing Configuration Profiles on a Linode](/docs/products/compute/compute-instances/guides/configuration-profiles//#editing-a-configuration-profile) and [Install a Custom Distribution on a Linode](/docs/guides/install-a-custom-distribution/) guides for further guidance. - -1. Reboot the Compute Instance using the new Image. Navigate to the **Configuration** tab, find the new configuration profile in the list, and click the corresponding **Boot** link. This link may be displayed with the **More Options** ellipsis dropdown menu. - - ![Boot the configuration profile](config-profile-boot.png "Boot the configuration profile") - -For help with configuring the software on your new disk, review the [Getting Started](/docs/products/platform/get-started/) and [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) guides. diff --git a/docs/products/tools/images/guides/deploy-image-to-existing-linode/restore-from-image-panel.png b/docs/products/tools/images/guides/deploy-image-to-existing-linode/restore-from-image-panel.png deleted file mode 100644 index 6481e5f3fca..00000000000 Binary files a/docs/products/tools/images/guides/deploy-image-to-existing-linode/restore-from-image-panel.png and /dev/null differ diff --git a/docs/products/tools/images/guides/deploy-image-to-new-linode/images-deploy-new-linode.png b/docs/products/tools/images/guides/deploy-image-to-new-linode/images-deploy-new-linode.png deleted file mode 100644 index a85bcb4257c..00000000000 Binary files a/docs/products/tools/images/guides/deploy-image-to-new-linode/images-deploy-new-linode.png and /dev/null differ diff --git a/docs/products/tools/images/guides/deploy-image-to-new-linode/index.md b/docs/products/tools/images/guides/deploy-image-to-new-linode/index.md deleted file mode 100644 index df89d92a46d..00000000000 --- a/docs/products/tools/images/guides/deploy-image-to-new-linode/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Deploy an Image to a New Compute Instance -description: "Learn how to create a new Compute Instance from a Custom or Recovery Image" -modified: 2022-07-12 ---- - -1. Log in to Cloud Manager and navigate to the **Images** page. - -1. On this page, locate the Image you wish to deploy and click the corresponding **ellipsis** options menu. Select **Deploy to a New Linode**. - - ![Click the button labeled Deploy to a New Linode](images-deploy-new-linode.png) - -1. You are redirected to the **Create Linode** form with the chosen Image preselected. Complete the remainder of this form, making sure to select your desired **Region**, **Linode Plan**, **Label**, **Root Password**, and any other options that may be needed. See [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) for full instructions on creating a Linode. - -1. Click the **Create Linode** button to create the Linode based on the selected Image. - -If your new Compute Instance is not accessible through SSH or it does not respond to pings, check to see if Network Helper is enabled (see [Network Helper: Auto-Configure Networking on Compute Instances](/docs/products/compute/compute-instances/guides/network-helper/#individual-compute-instance-setting)). If it is disabled, the internal network configuration on your new instance is not automatically configured. In this case, you may need to either enable Network Helper and reboot or manually edit your network configuration files (see [Manual Network Configuration on a Compute Instance](/docs/products/compute/compute-instances/guides/manual-network-configuration/)). \ No newline at end of file diff --git a/docs/products/tools/images/guides/upload-an-image/UploadAnImage.png b/docs/products/tools/images/guides/upload-an-image/UploadAnImage.png deleted file mode 100644 index 7f43154e1bc..00000000000 Binary files a/docs/products/tools/images/guides/upload-an-image/UploadAnImage.png and /dev/null differ diff --git a/docs/products/tools/images/guides/upload-an-image/images-upload-status.png b/docs/products/tools/images/guides/upload-an-image/images-upload-status.png deleted file mode 100644 index e6e5771ec8a..00000000000 Binary files a/docs/products/tools/images/guides/upload-an-image/images-upload-status.png and /dev/null differ diff --git a/docs/products/tools/images/guides/upload-an-image/index.md b/docs/products/tools/images/guides/upload-an-image/index.md deleted file mode 100644 index e17b4607e2b..00000000000 --- a/docs/products/tools/images/guides/upload-an-image/index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Upload an Image -description: "How to upload an image with Linode Images." -image: UploadAnImage.png ---- - -## Requirements and Considerations - -When creating an image file to upload as a Custom Image, keep the following limits, requirements, and considerations in mind. - -- Review the overall [Technical Specifications](/docs/products/tools/images/#technical-specifications) of the Custom Images service. - -- **Raw disk image:** The image file must be a [raw disk image](https://en.wikipedia.org/wiki/IMG_(file_format)) (`.img`). Other file formats will not work. - -- **Compressed using gzip:** The image file must be compressed using [gzip](https://en.wikipedia.org/wiki/Gzip) (`.gz`) before uploading it. Other compression algorithms are not compatible. - -- **Maximum file size is 5GB:** The maximum *compressed* size for an image file is 5GB. Larger file sizes are not supported through our current upload tooling. For the maximum *uncompressed* size, see the image size limit within the [Technical Specifications](/docs/products/tools/images/#technical-specifications). - -- **Pricing considerations:** Custom Images are billed based on the *uncompressed* size of the uploaded image file. - -- **For compatibility, use unpartitioned disks formatted with ext3 or ext4 file systems:** [Network Helper](/docs/products/compute/compute-instances/guides/network-helper/) and other Linode Helpers are compatible with non-partitioned image files formatted using the ext3 or ext4 file systems. Partitioned disks and other file systems may be used, but some manual configuration may be required. - -## Creating or Obtaining an Image File - -Creating a custom image file is typically a complex process intended for advanced system administrators. In most cases, users will be better suited creating a custom image directly from an existing Linode (see [Capture an Image](/docs/products/tools/images/guides/capture-an-image/)) or through the Linode Packer Builder (see [How to Use the Linode Packer Builder](/docs/guides/how-to-use-linode-packer-builder/)). These two methods ensure maximum compatibility with Linode and are easier to follow for a novice user. - -If you do intend on creating a custom image file to upload, here are a few methods to get you started. Depending on how you obtain or generate the image, the image or image file may need further configuration so it can be used with the Image Upload feature on Linode. Keep in mind all of the requirements and considerations listed above. - -- **Existing Image:** Use a compatible image from your own on-premise environment, existing cloud provider, or through an online repository (such as a distribution's official image repository). -- **Packer:** Use Packer's [QEMU Builder](https://www.packer.io/docs/builders/qemu) to automate the creation of custom images. Within the `.json` configuration file for your image, set `"accelerator": "kvm"` and `"format": "raw"`. If running Packer inside of a virtual machine, the hypervisor needs to support nested virtualization. -- **`dd`:** Install and configure an operating system on a local, remote, or virtualized system and create a disk image using the `dd` command-line tool. -- **QEMU disk image utility:** Use the [QEMU disk image utility](https://qemu-project.gitlab.io/qemu/tools/qemu-img.html) to create the image. - -#### Compressing the Image File - -After the image file has been created, it needs to be compressed using the gzip utility. - -- **Linux and macOS**: Run the following command, replacing *[file.img.gz]* with the filename of your image. See [Archiving and Compressing files with GNU Tar and GNU Zip](/docs/guides/archiving-and-compressing-files-with-gnu-tar-and-gnu-zip/) for additional information on gzip. - - gzip [file.img] - -- **Windows**: Use a third party tool that supports gzip compression, such as [7-Zip](https://www.7-zip.org/). - -#### Determining the Uncompressed File Size - -Knowing the *uncompressed* size of an image file is helpful for planning the storage requirements of Linodes deployed using that image. This information also ensures you stay within the [limits of the Images service](/docs/products/tools/images/guides/upload-an-image/#requirements-and-considerations). The best way to determine the uncompressed size of a gzip archive is to uncompress that archive and then examine its file size. Alternatively, use the zcat utility by run the following command, replacing *[file.img.gz]* with the filename of your image. - - zcat [file.img.gz] | wc -c - -## Uploading an Image File through Cloud Manager - -Once you have obtained a compatible image file that meets all the requirements, upload it through the **Upload Image** Cloud Manager form. After it's uploaded, you can then deploy Linodes using that Custom Image. - -1. Log in to Cloud Manager and open the **[Upload Image](https://cloud.linode.com/images/create/upload)** form by navigating to the **Images** page, clicking the **Create Image** button, and selecting the **Upload Image** tab. - -1. Type in the *Label* of the new Image along with an optional *Description*. Select the *Region* you would like the Image to be created within. Since Images can be deployed to any data center (regardless of where they are located), it's recommended that you select the one closest to you geographically for the fastest upload speed. - -1. Specify the image file you'd like to use by either dragging the file into the designated area or by clicking the **Browse Files** button and selecting the file. The filename will appear along with a progress bar indicating the percentage completed for the file upload. - -1. Once the image file has been successfully uploaded, the Custom Image is created and Cloud Manager will redirect you to the main Images page. Here, you should see the new Custom Image listed along with a status of *Pending Upload*. Once the Custom Image is ready to be deployed, the status will change to *Ready*. - - ![Image status](images-upload-status.png "Image status") - - If there is an error when processing the uploaded image file, the newly created Image may be deleted and an error message will be written to the [Events](https://cloud.linode.com/events) log. See [Understanding Events and the Activity Feed](/docs/products/tools/cloud-manager/guides/events-and-activity-feeds/) for more details on viewing Cloud Manager Events. - -## Uploading an Image File through the Linode CLI - -Another method for uploading a compatible image file is directly through the [Linode CLI](/docs/products/tools/cli/get-started/). - -1. Run the following command to install or update the Linode CLI: - - pip3 install linode-cli --upgrade - -2. If this is your first time using the CLI or if you encounter any authorization issues, reconfigure (and authorize) your installation: - - linode-cli configure - -3. Create a Custom Image and upload the image file using the following command, replacing *[Label]* with a unique label and *[File]* with the filename and path of the image file you'd like to use: - - linode-cli image-upload --label "[Label]" [File] - - You can also optionally specify additional details by adding the following options: - - - `--description "[Description]"`, replacing *[Description]* with the text you'd like to use. - - `--region "[region-id]"`, replacing *[region-id]* with the id of the region you'd like to use to upload the file. If this is left out, the default region you specified when configuring the Linode CLI will be used. - - In the example below, a Custom Image will be created in the Newark data center with the label of "Example Image", a description of "Some details about the image", and the image file "~/Downloads/image-file.img.gz" will be uploaded. - - linode-cli image-upload --label "Example Image" --description "Some details about the image" --region "us-east" ~/Downloads/image-file.img.gz - -4. After running the above command, a progress bar will be displayed that indicates the total progress of the file upload. Once completed, a single data row table will be outputted with the details regarding the new Custom Image and a status of `pending_upload`. - - The image upload may take a few minutes to fully process. To verify that the image is available for use, run the following command and make sure the new Custom Image has a status of *available*: - - linode-cli images list --is_public false diff --git a/docs/products/tools/images/linode-images.jpg b/docs/products/tools/images/linode-images.jpg deleted file mode 100644 index 8d2513b8446..00000000000 Binary files a/docs/products/tools/images/linode-images.jpg and /dev/null differ diff --git a/docs/products/tools/images/resources/index.md b/docs/products/tools/images/resources/index.md deleted file mode 100644 index f4c644570e5..00000000000 --- a/docs/products/tools/images/resources/index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Resources -title_meta: "Resources for Custom Images" -description: "Resources and other information related to Linode Images including blog posts and community posts." -tab_group_main: - weight: 40 ---- - -## Blog Posts - -Some of the blog posts about custom images: - -- [Resize Disk Images](https://www.linode.com/blog/linode/resize-disk-images/) - -- [Release Day: Automating the Linux Distro (featuring Ubuntu 20.04)](https://www.linode.com/blog/linux/release-day-automating-the-linux-distro-featuring-ubuntu-20-04/) - -- [Now Available: Linode Terraform Provider](https://www.linode.com/blog/devops/now-available-linode-terraform-provider/) - -- [Clone a Linode to another Linode](https://www.linode.com/blog/linode/clone-a-linode-to-another-linode/) - -## Community Posts - -Some of the community posts that answer questions related to custom images: - -- [What’s the deal with Linode Images?](https://www.linode.com/community/questions/17805/whats-the-deal-with-linode-images) - -- [How do I restore a deleted Linode?](https://www.linode.com/community/questions/17441/how-do-i-restore-a-deleted-linode) - -- [Unable to create an image of my disk from Cloud Manager's interface](https://www.linode.com/community/questions/17929/unable-to-create-an-image-of-my-disk-from-the-cloud-manager-interface) - -- [Is there a way to duplicate my current Linode?](https://www.linode.com/community/questions/20100/is-there-a-way-to-duplicate-my-current-linode) - -- [Want restore linode](https://www.linode.com/community/questions/18865/want-restore-linode) - -- [Restore Backup](https://www.linode.com/community/questions/18290/restore-backup) - -- [Cannot create an image](https://www.linode.com/community/questions/20205/cannot-create-an-image) - -- [Can I delete my Linode, but keep its backups?](https://www.linode.com/community/questions/19148/can-i-delete-my-linode-but-keep-its-backups) - -Browse our [Linode Community Questions & Answers](https://www.linode.com/community/questions/) page for more [related questions](https://www.linode.com/community/questions/search?query=images). \ No newline at end of file diff --git a/docs/products/tools/longview/_index.md b/docs/products/tools/longview/_index.md deleted file mode 100644 index 4df458ff4f2..00000000000 --- a/docs/products/tools/longview/_index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Longview -title_meta: "Longview Product Documentation" -description: "Longview is Linode’s system data graphing service. It tracks metrics for CPU, memory, and network bandwidth on both an aggregate and per-process basis." -published: 2023-05-24 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "View real-time system metrics and resource utilization to gain insight into your Linux-based cloud workloads." -aliases: ['/platform/longview/pricing/','/guides/linode-longview-pricing-and-plans/','/platform/longview/','/guides/platform/monitoring/'] ---- - -Longview is Linode’s system data graphing service. It tracks metrics for CPU, memory, and network bandwidth on both an aggregate and per-process basis. It also provides real-time graphs that can help expose performance problems. - -## Platform-agnoistic - -The Longview client is [open source](https://github.com/linode/longview) and provides an agent that can be installed on any Linux distribution – including systems not hosted on the Linode platform. - -## Pro Plan - -Longview is free for all customers for up to ten clients. You also have the option to purchase **Longview Pro** which includes additional analytics for an added cost. Longview's free version updates every 5 minutes and provides 12 hours of data history. Longview Pro gives you data resolution at 60 second intervals, and you can view a complete history of your Linode’s data instead of only the previous 12 hours. - -## Availability - -Longview can be installed on Compute Instances across [all regions](https://www.linode.com/global-infrastructure/). - -## Pricing - -There are four different Longview Pro plan tiers you can choose from. Each plan varies in the amount of clients that can be monitored by Longview. - -| Plan | Number of Clients | Price | -| -- | -- | -- | -| Longview Free | 10 | Free | -| Longview Pro 3 Pack | 3 | $20/mo ($0.03/hr) | -| Longview Pro 10 Pack | 10 | $40/mo ($0.06/hr) | -| Longview Pro 40 Pack | 40 | $100/mo ($0.15/hr) | -| Longview Pro 100 Pack | 100 | $200/mo ($0.30/hr) | - -## Technical Specifications - -- Compatible with most Linux systems, even those not on the Linode platform. Official support for **CentOS**, **Debian**, and **Ubuntu**. -- **Data retention:** Unlimited for Longview Pro, 12 hours for Longview Free. -- **Data resolution:** 1 minute for Longview Pro, 5 minutes for Longview Free. \ No newline at end of file diff --git a/docs/products/tools/longview/developers/index.md b/docs/products/tools/longview/developers/index.md deleted file mode 100644 index 73a3f1d94dc..00000000000 --- a/docs/products/tools/longview/developers/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for Longview" -description: "Manage Longview Clients with developer tools like the Linode API or CLI." -published: 2023-05-24 -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s API v4 provides the ability to programmatically manage the full range of Linode products and services. -[Linode API documentation](/docs/api/longview/) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. Learn how to [use and install the Linode CLI](/docs/products/tools/cli/get-started/) to get started. \ No newline at end of file diff --git a/docs/products/tools/longview/feature.png b/docs/products/tools/longview/feature.png deleted file mode 100644 index 0ba11879f5e..00000000000 Binary files a/docs/products/tools/longview/feature.png and /dev/null differ diff --git a/docs/products/tools/longview/feature.svg b/docs/products/tools/longview/feature.svg deleted file mode 100644 index 5e495b61f47..00000000000 --- a/docs/products/tools/longview/feature.svg +++ /dev/null @@ -1,5 +0,0 @@ - - Monitoring - - - \ No newline at end of file diff --git a/docs/products/tools/longview/get-started/index.md b/docs/products/tools/longview/get-started/index.md deleted file mode 100644 index 1679dba2f08..00000000000 --- a/docs/products/tools/longview/get-started/index.md +++ /dev/null @@ -1,215 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with Longview" -description: "Learn how to create a Longview Client, install the Longview Agent, and start capturing metrics for your Linux system" -published: 2023-05-24 -tab_group_main: - weight: 20 -aliases: ['/platform/longview/longview/','/platform/longview/what-is-longview/','/uptime/longview/','/longview/','/guides/what-is-longview/'] ---- - -To start using Longview to capture metrics from a Linux server, you need to create a new Longview Client instance and install the Longview Agent on that server. - -1. [Create a Longview Client](#create-client) -1. [SSH into the Compute Instance](#ssh) -1. [Install the Longview Agent](#install-agent) -1. [Start the Longview Agent](#start-agent) -1. [View Longview Client Statistics](#view-statistics) - -## Create a Longview Client {#create-client} - -1. Log in to [Cloud Manager](https://cloud.linode.com/dashboard) and click on the **Longview** link in the sidebar. - -1. On the Longview Clients page, click on the **Add a Client** link on the top right-hand corner. This creates a Longview Client instance. - -1. The new Longview Client instance is displayed along with its auto-generated label, its current status, installation instructions, and API key. Its status should be *"Waiting for data"* as you have not yet installed the Longview agent on your Linux system. - - {{< note >}} - The displayed `curl` command is used in the next section to install the Longview agent on the desired Linux system. The long string appended to the url `https://lv.linode.com/` is your Longview Client instance's GUID (globally unique identifier). - {{< /note >}} - - ![Screenshot of a new Longview client in Cloud Manager](longview-waiting.png) - -## SSH into the Compute Instance {#ssh} - -1. Open a terminal on your local computer and log in to your Compute Instance (or other Linux system) over SSH. In the command below, replace *[user]* with your remote username and *[ip-address]* with the IP address or fully qualified domain name of your instance. See [Managing IP Addresses on a Compute Instance](/docs/products/compute/compute-instances/guides/manage-ip-addresses/#viewing-ip-addresses). - - ```command - ssh [user]@[ip-address] - ``` - -1. Switch to the `root` user. - - ```command - su - root - ``` - -## Install the Longview Agent {#install-agent} - -### Automatic Installation - -Run the Longview Client instance's `curl` command on your Linux system. The installation will take a few minutes to complete. - -{{< note >}} -Ensure you replace the example `curl` command below with your own Longview Client instance's GUID. -{{< /note >}} - -```command -curl -s https://lv.linode.com/05AC7F6F-3B10-4039-9DEE09B0CC382A3D | sudo bash -``` - -{{< note title="Possible error messages (and how to overcome them)" type=warning isCollapsible=true >}} -- **Lock error:** This likely means that another program is attempting to update or install packages on your system. To overcome this error, you can delete the current Longview Client, wait a few minutes, create a new Longview Client, and try the installation process again. - - ```output - E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 12549 (apt-get) - N: Be aware that removing the lock file is not a solution and may break your system. - E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? - ``` - -- **Invaliad installer session error:** To overcome this error, delete the current Longview Client, create a new one, and try to install the Longview Agent again. - - ```output - Invalid Installer Session - Please see the Longview details page to start a new session - ``` - -If you are not able to overcome these error messages, follow the [manual installation](#manual-installation) instructions below. -{{< /note >}} - -### Manual Installation - -If the [automatic installation](#automatic-installation) instructions failed, you can also manually install the Longview Agent on CentOS, Debian, and Ubuntu. Other distributions, like Fedora and Alpine Linux, are not officially supported. - -1. Add a configuration file to store the repository information for the Longview agent: - - {{< tabs >}} - {{< tab "Debian and Ubuntu" >}} - Find the codename of the distribution running on your Linode. - - ```command - root@localhost:~# lsb_release -sc - ``` - - ```output - stretch - ``` - - Using the text editor of your choice, like [nano](/docs/guides/use-nano-to-edit-files-in-linux/), create a custom sources file that includes Longview's Debian repository and the Debian distribution codename. In the command below, replace *stretch* with the output of the previous step. - - ```file {title="/etc/apt/sources.list.d/longview.list" lang="config"} - deb http://apt-longview.linode.com/ stretch main - ``` - {{< /tab >}} - {{< tab "CentOS" >}} - Using the text editor of your choice, like [nano](/docs/guides/use-nano-to-edit-files-in-linux/), create a `.repo` file and copy the contents of the example file below. Replace `REV` in the repository URL with your CentOS version (e.g., 7). If unsure, you can find your CentOS version number with `cat /etc/redhat-release`. - - ```file {title="/etc/yum.repos.d/longview.repo" lang="config"} - [longview] - name=Longview Repo - baseurl=https://yum-longview.linode.com/centos/REV/noarch/ - enabled=1 - gpgcheck=1 - ``` - {{< /tab >}} - {{< /tabs >}} - -1. Download the repository's GPG key and import or move it to the correct location: - - {{< tabs >}} - {{< tab "Debian and Ubuntu" >}} - ```command - sudo curl -O https://apt-longview.linode.com/linode.gpg - sudo mv linode.gpg /etc/apt/trusted.gpg.d/linode.gpg - ``` - {{< /tab >}} - {{< tab "CentOS" >}} - ```command - sudo curl -O https://yum-longview.linode.com/linode.key - sudo rpm --import linode.key - ``` - {{< /tab >}} - {{< /tabs >}} - -1. Create a directory for the API key: - - ```command - sudo mkdir /etc/linode/ - ``` - -1. Copy the API key from the **Installation** tab of your Longview client's [detailed view](#access-your-longview-client-s-detailed-view) in the Linode Cloud Manager. Put the key into a file, replacing the key in the command below with your own. - - ```command - echo '266096EE-CDBA-0EBB-23D067749E27B9ED' | sudo tee /etc/linode/longview.key - ``` - -1. Install Longview: - - {{< tabs >}} - {{< tab "Debian and Ubuntu" >}} - ```command - sudo apt update - sudo apt install linode-longview - ``` - {{< /tab >}} - {{< tab "CentOS" >}} - ```command - sudo yum install linode-longview - ``` - {{< /tab >}} - {{< /tabs >}} - -## Start the Longview Agent {#start-agent} - -Once the installation is complete, verify that the Longview agent is running: - -```command -sudo systemctl status longview -``` - -You should see a similar output: - -{{< tabs >}} -{{< tab "Debian and Ubuntu" >}} -```output -● longview.service - LSB: Longview Monitoring Agent -Loaded: loaded (/etc/init.d/longview; generated; vendor preset: enabled) -Active: active (running) since Mon 2019-12-09 21:55:39 UTC; 2s ago - Docs: man:systemd-sysv-generator(8) -Process: 2997 ExecStart=/etc/init.d/longview start (code=exited, status=0/SUCCESS) - Tasks: 1 (limit: 4915) -CGroup: /system.slice/longview.service - └─3001 linode-longview -``` -{{< /tab >}} -{{< tab "CentOS" >}} -```output -● longview.service - SYSV: Longview statistics gathering - Loaded: loaded (/etc/rc.d/init.d/longview; bad; vendor preset: disabled) - Active: active (running) since Tue 2019-12-10 22:35:11 UTC; 40s ago - Docs: man:systemd-sysv-generator(8) - CGroup: /system.slice/longview.service - └─12202 linode-longview - -Dec 10 22:35:11 203-0-113-0.ip.linodeusercontent.com systemd[1]: Starting SYSV: Longview statistics gathering... -Dec 10 22:35:11 203-0-113-0.ip.linodeusercontent.com longview[12198]: Starting longview: [ OK ] -Dec 10 22:35:11 203-0-113-0.ip.linodeusercontent.com systemd[1]: Started SYSV: Longview statistics gathering. -``` -{{< /tab >}} -{{< /tabs >}} - -If the Longview agent is not running, start it with the following command: - -```command -sudo systemctl start longview -``` - -## View Longview Client Statistics {#view-statistics} - -Switch back to Cloud Manager's Longview Clients page in your browser and verify that system information and metrics have started to appear. To learn more about the metrics available on Longview, see [Understanding Longview Metrics](/docs/products/tools/longview/guides/metrics/). - -![Screenshot of a Longview Client in Cloud Manager](longview-data.png) - -{{< note >}} -It can take several minutes for data to load and display in Cloud Manager. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/tools/longview/get-started/longview-data.png b/docs/products/tools/longview/get-started/longview-data.png deleted file mode 100644 index 4dc84c8cc00..00000000000 Binary files a/docs/products/tools/longview/get-started/longview-data.png and /dev/null differ diff --git a/docs/products/tools/longview/get-started/longview-waiting.png b/docs/products/tools/longview/get-started/longview-waiting.png deleted file mode 100644 index 3d32e8876e0..00000000000 Binary files a/docs/products/tools/longview/get-started/longview-waiting.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/_index.md b/docs/products/tools/longview/guides/_index.md deleted file mode 100644 index d216e83adfa..00000000000 --- a/docs/products/tools/longview/guides/_index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for Longview" -description: "A collection of guides to help you use Longview to capture metrics on your Linux system." -published: 2023-05-24 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Getting Started with Longview](/docs/products/tools/longview/get-started/): Create a Longview Client, install the Longview Agent, and start capturing system metrics. -- [View and Manage Longview Clients](/docs/products/tools/longview/guides/manage/): Learn how to view, manage, and uninstall your Longview Clients -- [Change Longview Plan (Upgrade to Pro)](/docs/products/tools/longview/guides/change-plan/): Instructions for upgrading (and downgrading) your Longview plan. -- [Understanding Longview Metrics](/docs/products/tools/longview/guides/metrics/): An overview of viewing and understanding metrics collected by Longview. - -## Advanced Configuration and Troubleshooting - -- [Configure Longview with Apache](/docs/products/tools/longview/guides/apache/): Capture Apache metrics using Longview. -- [Configure Longview with NGINX](/docs/products/tools/longview/guides/nginx/): Capture NGINX metrics using Longview. -- [Configure Longview with MySQL](/docs/products/tools/longview/guides/mysql/): Capture MySQL metrics using Longview. -- [Troubleshooting Longview](/docs/products/tools/longview/guides/troubleshooting/): Learn how to troubleshoot and overcome any issues you might encounter when using Longview. \ No newline at end of file diff --git a/docs/products/tools/longview/guides/apache/1451-longview_apache_popup_crop.png b/docs/products/tools/longview/guides/apache/1451-longview_apache_popup_crop.png deleted file mode 100644 index a2a595438ba..00000000000 Binary files a/docs/products/tools/longview/guides/apache/1451-longview_apache_popup_crop.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/apache/index.md b/docs/products/tools/longview/guides/apache/index.md deleted file mode 100644 index a553cbadbab..00000000000 --- a/docs/products/tools/longview/guides/apache/index.md +++ /dev/null @@ -1,365 +0,0 @@ ---- -title: Capture Apache Metrics with Longview -title_meta: Capture Apache Metrics with Linode Longview -description: 'This guide discusses the Linode Longview client, including how to configure Longview for the Apache web server, how to interact with data from Longview, and more.' -published: 2013-11-04 -modified: 2023-05-24 -keywords: ["Longview", " Apache", " statistics", " mod\\_status"] -tags: ["apache","cloud manager","statistics","monitoring","linode platform"] -aliases: ['/longview/longview-for-apache/','/platform/longview/what-is-the-linode-longview-app-for-apache/','/platform/longview/longview-app-for-apache/','/guides/what-is-the-linode-longview-app-for-apache/'] -relations: - platform: - key: what-is-longview - keywords: - - distribution: Apache ---- - -In addition to capturing general system metrics, Longview can also be used to capture metrics for Apache. The Apache tab appears in Cloud Manager when Longview detects that you have Apache installed on your system. It can help you keep track of Apache's settings, workers and requests, system resource consumption, and other information. - -{{< note >}} -In order to use Longview to capture data for Apache, you must have the Longview Agent successfully installed on the system you wish to monitor. See [Create a Longview Client and Install the Longview Agent](/docs/products/tools/longview/get-started/). -{{< /note >}} - -## In this Guide: - -This guide covers using Longview with Apache and includes the following topics: - -- [Configuring Longview for Apache](#configure-longview). -- [Interacting with the Apache data provided by Longview in Cloud Manager](#view-metrics). -- [Troubleshooting Longview for Apache](#troubleshooting). - -## Configure Longview for Apache {#configure-longview} - -### Automatic Configuration - -*These instructions are compatible only with Debian and Ubuntu and do not work on CentOS.* - -If Apache is installed and running when you install the Longview agent, Longview should automatically configure itself for Apache. If you install Apache *after* setting up the Longview agent, you can perform the steps below to configure Longview with any available software integrations (Apache, NGINX, and MySQL). Any existing Longview data is not affected and will remain accessible. - -1. [SSH into the Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) you are monitoring with Longview. - -1. Ensure that Apache is running. - - ```command - sudo systemctl status apache2 - ``` - -1. Run the automatic Longview configuration command. - - ```command - dpkg-reconfigure -phigh linode-longview - ``` - - For most systems, Longview should be able to configure itself automatically. If this is the case, your output should be similar to the following: - - ```output - Checking Apache configuration... - Found Apache status page at http://127.0.0.1/server-status?auto specified in /etc/linode/longview.d/Apache.conf - ``` - - Once you see this successful message, the Longview should automatically start collecting Apache data. Refresh Longview in Cloud Manager to start viewing your Apache stats for your Longview Client instance. - - If you receive a failure message or the popup shown below, you should visit the [Troubleshooting](#troubleshooting) section at the end of this article. - - ![Screenshot of Apache notice when configuring Longview](1451-longview_apache_popup_crop.png) - -### Manual Configuration - -*These instructions work for all supported distributions, including Debian, Ubuntu, and CentOS.* - -To enable the Apache Longview integration manually, follow these steps on your system via SSH: - -1. [SSH into the Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) you are monitoring with Longview. - -1. Verify that **mod\_status** is enabled for Apache (it should be by default). For more information, see the [Apache Module mod\_status](https://httpd.apache.org/docs/2.4/mod/mod_status.html) documentation. - - {{< tabs >}} - {{< tab "Debian and Ubuntu" >}} - ```command - sudo a2enmod status - ``` - {{< /tab >}} - {{< tab "CentOS" >}} - ```command - sudo yum install links - httpd -M | grep status - ``` - - The output should be similar to: - - ```output - status_module (shared) - ``` - {{< /tab >}} - {{< /tabs >}} - -1. Update your Apache configuration file to include the block in the example file below. Depending on your Linux distribution and version, your Apache configuration file may be stored in one of the following locations: - - - `/etc/apache2/httpd.conf` - - `/etc/apache2/apache2.conf` - - `/etc/httpd/httpd.conf` - - `/etc/httpd/conf/httpd.conf` - - ```file {title="httpd.conf or apache2.conf" lang=apache} - - ExtendedStatus On - - SetHandler server-status - Require local - - - ``` - -1. Edit the Longview configuration file for Apache (`/etc/linode/longview.d/Apache.conf`) so that it includes the following line. If this line is commented out, you can uncomment it. - - ```file {title="/etc/linode/longview.d/Apache.conf" lang=apache} - location http://127.0.0.1/server-status?auto - -1. Restart Apache: - - {{< tabs >}} - {{< tab "Debian and Ubuntu" >}} - ```command - sudo systemctl restart apache2 - ``` - {{< /tab >}} - {{< tab "CentOS" >}} - ```command - sudo systemctl restart httpd - ``` - {{< /tab >}} - {{< /tabs >}} - -1. Restart Longview: - - ```command - sudo systemctl restart longview - ``` - -1. Refresh the Longview in your Cloud Manager. - -You should now be able to see Longview data for Apache. If that's not the case, proceed to the [Troubleshooting](#troubleshooting) section at the end of this article. - -## View Apache Metrics {#view-metrics} - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select the **Longview** link in the sidebar. - -1. Locate the Longview Client you have configured for Apache and click the corresponding **View details** link. - -1. Select the **Apache** tab. - - ![The Longview Apache App.](longview_apache_stats.png) - - You'll see the current version of Apache listed on the upper left hand side of the page. - - Hover over a data point to see the exact numbers for that time. With [Longview Pro](/docs/products/tools/longview/), you can view older time periods for your data. The next sections cover the Longview Apache App in detail. - -### Requests - -The **Requests** graph shows the total number of requests Apache handled at the selected time. This is every HTTP and HTTPS request to your system. - -### Throughput - -The **Throughput** graph shows the amount of data that Apache sent and received via web requests at the time selected. - -### Workers - -The **Workers** graph shows all of the Apache workers at the selected time. The workers are broken down by state: - -- Waiting -- Starting -- Reading -- Sending -- Keepalive -- DNS Lookup -- Closing -- Logging -- Finishing -- Cleanup - -### CPU - -The **CPU** graph shows the percentage of your system's CPU being used by Apache at the selected time. If you want to see the total CPU used instead, check the [Overview tab](/docs/products/tools/longview/guides/metrics/#overview). - -### Memory - -The **Memory** graph shows the amount of RAM being used by Apache at the selected time. If you want to see your system's total memory use instead, check the [Overview tab](/docs/products/tools/longview/guides/metrics/#overview). - -### Disk IO - -The **Disk IO** graph shows the amount of input to and output from the disk caused by Apache at the selected time. To see the total IO instead, visit the [Disks tab](/docs/products/tools/longview/guides/metrics/#disks). - -### Process Count - -The **Process Count** graph shows the total number of processes on your system spawned by Apache at the selected time. If you want to see more details, and how this stacks up against the total number of processes on your system, see the [Processes tab](/docs/products/tools/longview/guides/metrics/#processes). - -## Troubleshooting - -If you don't see Longview data for Apache, you'll instead get an error on the page and instructions on how to fix it. As a general tip, you can check the `/var/log/linode/longview.log` file for errors as well. You should also compare your mod\_status configuration file to the example shown in Step 2 of the [Manual Configuration (All Distributions)](#manual-configuration-all-distributions) section of this article. - -By default Longview uses port 80 for its automatic configuration. In the event you are experiencing problems you may need to edit the `/etc/apache2/ports.conf` file to use port 8080 or another non-standard port. - -### Autoconfigure mod\_status Popup - -If you run the [automatic Longview configuration tool](#configure-longview), and get the popup message shown below: - -![Screenshot of Apache notice when configuring Longview](1451-longview_apache_popup_crop.png) - -This indicates that Longview can't locate the Apache status page. In turn, this could indicate that either: - -- The status page is in an unusual and unspecified location. -- **mod\_status** isn't enabled. -- An Apache virtual host setting is interfering with requests to the status page. -- Apache itself is misconfigured. - -If you choose: - -- **\**: the Longview tool will quit, and you can do a [manual configuration](#manual-configuration-all-distributions). This is the safer option. -- **\**: the Longview tool will attempt to enable mod\_status, set the status page location, and restart Apache. This option is easier, but has the potential to disrupt your current Apache configuration. If you choose yes, and the configuration is successful, you should see output like the following: - - ```output - [ ok ] Stopping Longview Agent: longview. - Checking Apache configuration... - Enabling module status. - To activate the new configuration, you need to run: - service apache2 restart - [....] Reloading web server config: . ok - Apache mod_status enabled - [ ok ] Starting Longview Agent: longview. - update-rc.d: using dependency based boot sequencing - ``` - - Refresh the Longview Apache tab in Cloud Manager to verify that it's working now. - - If instead you receive a failure message, such as: - - ```output - [FAIL] Reloading web server config: apache2 failed! - ``` - - You will need to double-check your Apache installation, and then do a [manual configuration](#manual-configuration-all-distributions). - -### Unable to Access Local Server Status for Apache - -This error will state `Unable to access local server status for Apache at : :`. This error occurs when either: - -- Apache's mod\_status setting is disabled or has been changed from the default location. - -- An Apache virtual host configuration is interfering with web requests to the mod\_status location. - - {{< note >}} - This error occurs when Longview attempts to check the status page `location` listed in `/etc/linode/longview.d/Apache.conf`, or the default page at `127.0.0.1/server-status?auto`, but receives a non-200 HTTP response code. Basically, it means that the status page Longview is expecting is not being returned by the server. - {{< /note >}} - -To fix this, follow these steps: - -1. Make sure Apache is running: - - ```command - sudo systemctl restart apache2 - ``` - -1. Make sure mod\_status is enabled. See the [Apache website](https://httpd.apache.org/docs/2.4/mod/mod_status.html#page-header) for details. You can also check the output of the following command: - - ```command - apachectl -M - ``` - -1. Check the location for mod\_status. The default location on Debian and Ubuntu systems is `http://127.0.0.1/server-status?auto` on localhost. In the Apache configuration file, this is designated with the lines: - - ```file {title="httpd.conf or apache2.conf" lang=apache} - - SetHandler server-status - ``` - - The `SetHandler server-status` line indicates that this is the location block for mod\_status. The location line itself sets the location. - - **On cPanel/WHM:** - - To direct Longview to the cPanel customized status page, edit the `location` line in `/etc/linode/longview.d/Apache.conf` to match the following: - - ```file {title="/etc/linode/longview.d/Apache.conf" lang=apache} - location http://localhost/whm-server-status?auto - ``` - -1. Longview is designed to check the default location automatically. If you use the default location shown above, you should be done. Refresh the Longview in Cloud Manager to verify that it's working now. - -1. If you're not using the default location, you need to create a new file, `/etc/linode/longview.d/Apache.conf`, and set the `location` variable to match what you set in the Apache configuration file: - - ```file {title="/etc/linode/longview.d/Apache.conf" lang=apache} - location http://127.0.0.1/custom/location/path - `` - -1. Determine if an Apache virtual host configuration is interfering with requests to the mod\_status location. Use a tool like `curl` or `wget` to request the server status location: - - ```command - curl http://127.0.0.1/server-status?auto - ``` - - Observe the output. If the output looks like something other than a simple status page, then you'll have to fix your [Apache virtual host](/docs/web-servers/apache-tips-and-tricks/) configuration. - -1. Restart Longview: - - ```command - sudo service longview restart - ``` - -1. Refresh the Longview in Cloud Manager to verify that it's working now. - -### The Apache Status Page Doesn't Look Right - -This error states `The Apache status page doesn't look right. Check and investigate any redirects for misconfiguration.` This error occurs when Longview is able to reach the mod\_status page, but doesn't receive the expected content. - -{{< note >}} -This error occurs when Longview attempts to check the status page, and receives a 200 HTTP response code, but can't scrape the expected status content from the page. That is, the page exists on your system, but it doesn't have the right content. If, for example, Longview was to check your website's home page, you would get this error. -{{< /note >}} - -To resolve this issue, follow these steps: - -1. Visit the URL shown in the error. See if it directs or redirects you to a page that isn't the Apache status page. - -1. Update your Apache and Longview settings so that they specify the same location: - - - The **\** line in your Apache configuration file - - The **location** line in `/etc/linode/longview.d/Apache.conf` - - If neither of these is set, the default location of `http://127.0.0.1/server-status?auto` on localhost will be used. - -1. Make sure there aren't any Apache redirects or other settings that are affecting this page. - -1. Restart Longview: - - ```command - sudo systemctl restart longview - ``` - -1. Refresh the Longview in Cloud Manager to verify that it's working now. - -### Missing Graphs: Enable ExtendedStatus - -If some of your Apache graphs are missing, you may see the error `Enable ExtendedStatus in your Apache configuration for throughput and request graphs.` - -This indicates that you need to add the following line to your Apache configuration file in the `` section: - -```file {title="httpd.conf" lang=apache} -ExtendedStatus On -``` - -When you've finished modifying the configuration file, restart Apache: - -{{< tabs >}} -{{< tab "Debian and Ubuntu" >}} -```command -sudo systemctl restart apache2 -``` -{{< /tab >}} -{{< tab "CentOS" >}} -```command -sudo systemctl restart httpd -``` -{{< /tab >}} -{{< /tabs >}} - -### Apache Tab is Missing - -If the Longview Apache tab is missing entirely, this indicates that Apache is either not installed, or has stopped. If you restart Apache, you will be able to see the tab again and view all of your old data. \ No newline at end of file diff --git a/docs/products/tools/longview/guides/apache/longview_apache_stats.png b/docs/products/tools/longview/guides/apache/longview_apache_stats.png deleted file mode 100644 index d63de623595..00000000000 Binary files a/docs/products/tools/longview/guides/apache/longview_apache_stats.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/change-plan/LongviewPricingandPlans.png b/docs/products/tools/longview/guides/change-plan/LongviewPricingandPlans.png deleted file mode 100644 index cb157c58f48..00000000000 Binary files a/docs/products/tools/longview/guides/change-plan/LongviewPricingandPlans.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/change-plan/access-longview.png b/docs/products/tools/longview/guides/change-plan/access-longview.png deleted file mode 100644 index 0d154a617e3..00000000000 Binary files a/docs/products/tools/longview/guides/change-plan/access-longview.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/change-plan/index.md b/docs/products/tools/longview/guides/change-plan/index.md deleted file mode 100644 index 83687fda3af..00000000000 --- a/docs/products/tools/longview/guides/change-plan/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Change Longview Plan (Upgrade to Pro)" -description: "Information on upgrading your Longview to a Pro plan or downgrading to the Free plan." -published: 2023-05-24 -keywords: ['longview','billing','pricing','price','limit','transfer', 'plan'] -tags: ["linode platform","cloud manager","statistics","monitoring"] ---- - -{{< note >}} -Currently, it is not possible to have both *Longview Free* and *Longview Pro* clients. If you have active Longview clients under the Longview Free plan tier, when you switch to a Longview Pro plan, all of your currently active clients will be counted towards your new Longview Pro plan's client count. -{{< /note >}} - -To change your plan level or to view all available Longview Pro plans, follow these steps: - -1. Log in to [Cloud Manager](https://cloud.linode.com/dashboard) and click on the **Longview** link in the sidebar. - -1. Viewing the Longview Clients listing page, click on the **Plan Details** tab. - -1. On the Longview Plan Details page, you can view all available Longview plans and verify the plan you are currently subscribed to. - -1. If you would like to change your current plan, select your preferred plan and click on the **Change Plan** button. You will see the page update to denote your current Longview plan. - -![Screenshot of the Longview Plan Details screen in Cloud Manager](longview-change-plan.png) - -{{< note type="warning" >}} -If you change your plan, your Longview Client data will temporarily be in a transitional state. Any irregularities in your displayed Longview data will clear up shortly. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/tools/longview/guides/change-plan/longview-change-plan.png b/docs/products/tools/longview/guides/change-plan/longview-change-plan.png deleted file mode 100644 index c0ba1dc3312..00000000000 Binary files a/docs/products/tools/longview/guides/change-plan/longview-change-plan.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/change-plan/longview-plan-details-page.png b/docs/products/tools/longview/guides/change-plan/longview-plan-details-page.png deleted file mode 100644 index 8b3e6edcf94..00000000000 Binary files a/docs/products/tools/longview/guides/change-plan/longview-plan-details-page.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/change-plan/longview-plan-details.png b/docs/products/tools/longview/guides/change-plan/longview-plan-details.png deleted file mode 100644 index 3effc26f6e9..00000000000 Binary files a/docs/products/tools/longview/guides/change-plan/longview-plan-details.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/manage/index.md b/docs/products/tools/longview/guides/manage/index.md deleted file mode 100644 index f9bb72cac0f..00000000000 --- a/docs/products/tools/longview/guides/manage/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "View and Manage Longview Clients" -description: "Learn how to view, manage, and delete your Longview Clients." -published: 2023-05-24 -keywords: ["system monitoring", "longview", "metrics"] -tags: ["linode platform","cloud manager","statistics","monitoring"] ---- - -## View Longview Clients {#view-clients} - -Log in to the [Linode Cloud Manager](https://cloud.linode.com/) and click the **Longview** link in the sidebar. - -![](longview-view-all.png) - -All existing Longview clients are displayed along with some basic system information and metrics, including: - -- Hostname -- System uptime -- Available package updates -- Number of CPUs and CPU utilization -- Amount of system memory and memory utilization -- Amount of swap memory and swap utilization -- Average CPU load -- Network traffic -- Amount of disk space and disk utilization - -## Create a New Longview Client {#create-client} - -To start capturing metrics for one of your Compute Instances (or other Linux systems), you can create a new Longview Client instance and install the Longview Agent. See [Create a Longview Client and Install the Longview Agent](/docs/products/tools/longview/get-started/) for instructions. - -## Delete a Longview Client {#delete-client} - -1. Log in to the [Linode Cloud Manager](https://cloud.linode.com/dashboard) and click on the **Longview** link in the sidebar. - -1. Click the **ellipsis** button corresponding to the Longview Client instance you'd like to remove and select **delete**. - - ![Delete your Longview Client](longview-delete.png) - -1. Next, SSH into the Compute Instance or Linux system that the Longview Client was monitoring. - - ```command - ssh user@192.0.2.17 - ``` - -5. Uninstall the Longview Agent by removing the `linode-longview` package. - - {{< tabs >}} - {{< tab "Debian and Ubuntu" >}} - ```command - sudo apt-get remove linode-longview - ``` - {{< /tab >}} - {{< tab "CentOS" >}} - ```command - sudo yum remove linode-longview - ``` - {{< /tab >}} - {{< tab "Other Distributions" >}} - ```command - sudo rm -rf /opt/linode/longview - ``` - {{< /tab >}} - {{< /tabs >}} \ No newline at end of file diff --git a/docs/products/tools/longview/guides/manage/longview-delete.png b/docs/products/tools/longview/guides/manage/longview-delete.png deleted file mode 100644 index c8123bf7509..00000000000 Binary files a/docs/products/tools/longview/guides/manage/longview-delete.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/manage/longview-view-all.png b/docs/products/tools/longview/guides/manage/longview-view-all.png deleted file mode 100644 index 027c91a068d..00000000000 Binary files a/docs/products/tools/longview/guides/manage/longview-view-all.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/index.md b/docs/products/tools/longview/guides/metrics/index.md deleted file mode 100644 index 22a906a4db6..00000000000 --- a/docs/products/tools/longview/guides/metrics/index.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "Understanding Longview Metrics" -description: "An overview of metrics collected by Longview, including how to view the metrics and understand the data." -published: 2023-05-24 -keywords: ["system monitoring", "longview", "metrics"] -tags: ["linode platform","cloud manager","statistics","monitoring"] ---- - -This guide provides an overview of the data and graphs available to you after successfully installing Longview on a Compute Instance or other Linux system. - -## Access your Longview Client Metrics - -1. To view a Longview Client's detailed graphs and metrics, log in to [Cloud Manager](https://cloud.linode.com/) and click on the **Longview** link in the sidebar. - -1. On the Longview Clients listing page, click on the **View Details** button corresponding to the client whose system statistics you'd like to view. This displays the information and metrics for the corresponding system. From here, you can select from the following tabs to view specific metrics: - - - [Overview](#overview) - - [Processes](#processes) - - [Network](#network) - - [Disks](#disks) - - [Apache (optional)](#apache) - - [NGINX (optional)](#nginx) - - [MySQL (optional)](#mysql) - -{{< note >}} -If your Compute Instance has NGINX, Apache, or MySQL installed *and* your Longview Agent has been configured for this software, you will see a corresponding tab appear containing related system data. -{{< /note >}} - -## Change the Timeframe - -For all graphs and most other metrics, you can change the timeframe of the data that's shown. By default, 12 hours of historical data is visible. You can change this to a smaller timeframe or, if using Longview Pro, to a larger timeframe. - -![Screenshot of the timeframe dropdown menu](longview-metrics-timeframe.png) - -{{< note noTitle=true type=warning >}} -The graphs only show data captured *after* the Longview Agent was installed on the system. -{{< /note >}} - -## View Data Points on Graphs - -When viewing graphs in Cloud Manager, you can hover over data points in the x-axis to view specific metrics for that data point. - -![Screenshot of a data point on a graph in Cloud Manager](longview-metrics-graph-data-point.png) - -## Overview - -The Overview tab shows all of your system’s most important statistics in one place and includes the following sections: - -- **System Overview:** This section includes information about your system hardware, basic resource utilization charts, and the top 6 processes running on your system (sorted by CPU utilization by default). -- **Resource Allocation History:** Detailed graphs of system resource utilization. -- **Listening Services:** A list of all services that are listening on a system port. This includes the corresponding process, the user, the protocol of the service, and the IP address that's being used. -- **Active Connections:** A list of all active connections, including the name of the service, the user, and the number of connections for that service. - -![Screenshot of the Overview page](longview-metrics-overview.png) - -## Processes - -The Processes tab lists all running processes currently on your system, along with additional statistics including the UID of the user that has ownership of the process, the *Max Count* of duplicate processes, average I/O per process, average CPU percentage used per process, and average memory consumption per process. You can use the search bar above the list to filter the chart by the name of the process or the user that owns it. - -When a process is selected, several graphs are displayed. These graphs show historical data for the process, including resource usage and the number instances for this process. - -![Screenshot of the Processes page](longview-metrics-processes.png) - -## Network - -The Network tab gives you access to charts you can use to sort traffic analytics by network interface available on your system. - -![Screenshot of the Network page](longview-metrics-network.png) - -## Disks - -The disks tab includes information on disk I/O, disk space usage, and [inode](https://en.wikipedia.org/wiki/Inode) usage over time. - -![Screenshot of the Disks page](longview-metrics-disks.png) - -{{< note noTitle=true type=warning >}} -Longview does not gather data on swap disks. -{{< /note >}} - -## Apache - -The Apache tab is visible when Apache is installed on your system *and* the Longview Agent has been properly configured to interface with Apache. The Apache software version is displayed at the top of the page. Underneath that, there are graphs for the number of incoming requests, the throughout, and the number of workers. This page also shows resource utilization graphs for the Apache processes, including the CPU usage, RAM usage, and disk I/O. - -![Screenshot of the Apache tab](longview-metrics-apache.png) - -## NGINX - -This tab is only displayed when NGINX is installed on your system *and* the Longview Agent has been configured to observe NGINX. It shows the software version as well as the number of requests, connections, and workers. This page also displays the resource utilization for the NGINX processes, including the CPU usage, RAM usage, and disk I/O. - -![Screenshot of the NGINX tab](longview-metrics-nginx.png) - -## MySQL - -The MySQL tab is only displayed when MySQL is installed on your system *and* the Longview Agent has been configured to observe MySQL. Along with the software version, this page also displays the number of queries (broken down by SELECT, UPDATE, INSERT, and DELETE), the throughput, the number of connections, the number of slow queries, and the number of aborted queries. Further down the page is the resource utilization for the MySQL processes, including the CPU usage, RAM usage, and disk I/O. - -![Screenshot of the MySQL tab](longview-metrics-mysql.png) \ No newline at end of file diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-apache.png b/docs/products/tools/longview/guides/metrics/longview-metrics-apache.png deleted file mode 100644 index de15002b31f..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-apache.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-disks.png b/docs/products/tools/longview/guides/metrics/longview-metrics-disks.png deleted file mode 100644 index ef591ba3d3e..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-disks.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-graph-data-point.png b/docs/products/tools/longview/guides/metrics/longview-metrics-graph-data-point.png deleted file mode 100644 index 91c725b2d1c..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-graph-data-point.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-mysql.png b/docs/products/tools/longview/guides/metrics/longview-metrics-mysql.png deleted file mode 100644 index fd6ccc78a63..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-mysql.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-network.png b/docs/products/tools/longview/guides/metrics/longview-metrics-network.png deleted file mode 100644 index 53551631b12..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-network.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-nginx.png b/docs/products/tools/longview/guides/metrics/longview-metrics-nginx.png deleted file mode 100644 index b2dc4cdbb3d..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-nginx.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-overview.png b/docs/products/tools/longview/guides/metrics/longview-metrics-overview.png deleted file mode 100644 index 056083cb826..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-overview.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-processes.png b/docs/products/tools/longview/guides/metrics/longview-metrics-processes.png deleted file mode 100644 index fafbb89bdbe..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-processes.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/metrics/longview-metrics-timeframe.png b/docs/products/tools/longview/guides/metrics/longview-metrics-timeframe.png deleted file mode 100644 index c111047a28f..00000000000 Binary files a/docs/products/tools/longview/guides/metrics/longview-metrics-timeframe.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/mysql/index.md b/docs/products/tools/longview/guides/mysql/index.md deleted file mode 100644 index 88a20174caf..00000000000 --- a/docs/products/tools/longview/guides/mysql/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Capture MySQL Metrics with Longview -title_meta: Capture MySQL Metrics with Linode Longview -description: "This guide discusses the Linode Longview client, including how to configure Longview for the MySQL database server, how to interact with data from Longview, and more." -published: 2013-11-06 -modified: 2023-05-24 -keywords: ["Longview", "MySQL", "statistics"] -tags: ["cloud manager","statistics","monitoring","linode platform","mysql"] -aliases: ['/longview/longview-for-mysql/','/platform/longview/longview-app-for-mysql/','/platform/longview/what-is-the-linode-longview-app-for-mysql/','/guides/what-is-the-linode-longview-app-for-mysql/'] -relations: - platform: - key: what-is-longview - keywords: - - distribution: MySQL ---- - - -In addition to capturing general system metrics, Longview can also be used to capture metrics for MySQL. The MySQL tab appears in Cloud Manager when Longview detects that you have MySQL installed on your system. It can help you keep track of MySQL's queries, system resource consumption, and other information. - -{{< note >}} -In order to use Longview to capture data for MySQL, you must have the Longview Agent successfully installed on the system you wish to monitor. See [Create a Longview Client and Install the Longview Agent](/docs/products/tools/longview/get-started/). -{{< /note >}} - -## In this Guide: - -This guide covers using Longview with MySQL and includes the following topics: - -- [Configuring Longview for MySQL](#configure-longview). -- [Interacting with the MySQL data provided by Longview in Cloud Manager](#view-metrics). -- [Troubleshooting Longview for MySQL](#troubleshooting). - -## Configure Longview with MySQL {#configure-longview} - -### Automatic Configuration - -*These instructions are compatible only with Debian and Ubuntu and do not work on CentOS.* - -If MySQL is installed and running when you install the Longview agent, Longview should automatically configure itself for MySQL. If you install MySQL *after* setting up the Longview agent, you can perform the steps below to configure Longview with any available software integrations (Apache, NGINX, and MySQL). Any existing Longview data is not affected and will remain accessible. - -1. [SSH into the Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) you are monitoring with Longview. - -1. Ensure that MySQL is running. - - ```command - sudo systemctl status mysql - ``` - -1. Run the automatic Longview configuration command on your system: - - ```command - dpkg-reconfigure -phigh linode-longview - ``` - - On many systems, Longview should be able to configure itself automatically. If this is the case, your output should be similar to the following: - - ```output - Checking MySQL configuration... - Successfully connected to MySQL - ``` - - Once you see this successful message, the Longview should automatically start collecting MySQL data. Refresh Longview in Cloud Manager to start viewing your MySQL metrics for your Longview Client instance. - - {{< note >}} - Unless you already have a specific Longview database user set up in the `/etc/linode/longview.d/MySQL.conf` file, Longview will locate and use the `debian-sys-maint` database user credentials if it can, located at `/etc/mysql/debian.cnf`. - {{< /note >}} - - If you receive a failure message or the popup shown below, you should visit the [Troubleshooting](#troubleshooting) section at the end of this article. - - ![Screenshot of MySQL notice when configuring Longview](longview-mysql-1.png) - -### Manual Configuration - -*These instructions work for all supported distributions, including Debian, Ubuntu, and CentOS.* - -To enable the MySQL Longview integration manually, follow these steps on your system via SSH: - -{{< note >}} -You cannot configure the location of a socket for the Longview client. -{{< /note >}} - -1. [SSH into the Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) you are monitoring with Longview. - -1. Log into MySQL. For example, to log in as the root user: - - ```command - sudo mysql -u root -p - ``` - -1. Create a new MySQL user with minimal privileges for Longview. Run the following queries on your database as the root MySQL user to create the new user. Ensure your replace `*****************` with your desired password. - - ```command - CREATE USER 'linode-longview'@'localhost' IDENTIFIED BY '***************'; - flush privileges; - ``` - -1. Exit the MySQL: - - ```command - exit - ``` - -1. Edit `/etc/linode/longview.d/MySQL.conf` to include the same username and password you just added. It should look like the following: - - ```file {title="/etc/linode/longview.d/MySQL.conf" lang=aconf} - username linode-longview - password example_password - ``` - -1. Restart Longview: - - ```command - sudo systemctl restart longview - ``` - -1. Refresh Longview in Cloud Manager to verify that the MySQL tab is now present and collecting data for your Longview client instance. - -You should now be able to see Longview data for MySQL. If that's not the case, proceed to the [Troubleshooting](#troubleshooting) section at the end of this article. - -## View MySQL Metrics {#view-metrics} - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select the **Longview** link in the sidebar. - -1. Locate the Longview Client you have configured for MySQL and click the corresponding **View details** link. - -1. Select the **MySQL** tab. - -![The Longview MySQL App.](longview_mysql_stats.png) - -You'll see the current version of MySQL listed on the upper left-hand corner. - -Hover over a data point to see the exact numbers for that time. You can also zoom in on data points, or view older time periods with Longview Pro. For details, jump to this section in the main article about [navigating the Longview interface](/docs/products/tools/longview/guides/metrics/). The next sections cover the Longview MySQL App in detail. - -### Queries - -The **Queries** graph shows the total number of select, update, insert, and delete queries MySQL handled at the selected time. - -### Throughput - -The **Throughput** graph shows the amount of data that MySQL sent and received at the time selected. - -### Connections - -The **Connections** graph shows all of the MySQL connections at the selected time. - -### Slow Queries - -The **Slow Queries** graph shows the number of slow MySQL queries at the selected time. - -### Aborted - -The **Aborted** graph shows the number of aborted MySQL connections and clients at the selected time. - -### CPU - -The **CPU** graph shows the percentage of your system's CPU being used by MySQL at the selected time. If you want to see the total CPU use instead, check the [Overview tab](/docs/products/tools/longview/guides/metrics/#overview). - -### RAM - -The **RAM** graph shows the amount of RAM or memory being used by MySQL at the selected time. If you want to see your system's total memory use instead, check the [Overview tab](/docs/products/tools/longview/guides/metrics/#overview). - -### Disk IO - -The **Disk IO** graph shows the amount of input to and output from the disk caused by MySQL at the selected time. To see the total IO instead, visit the [Disks tab](/docs/products/tools/longview/guides/metrics/#disks). - -### Process Count - -The **Process Count** graph shows the total number of processes on your system spawned by MySQL at the selected time. If you want to see more details, and how this stacks up against the total number of processes on your system, see the [Processes tab](/docs/products/tools/longview/guides/metrics/#processes). - -## Troubleshooting - -If you don't see Longview data for MySQL, you'll instead get an error on the page and instructions on how to fix it. As a general tip, you can check the `/var/log/linode/longview.log` file for errors as well. - -### Unable to Automatically Configure MySQL Popup - -If you run the [automatic Longview configuration tool](#debian-and-ubuntu-automatic-configuration), and get the popup message shown below: - -![Screenshot of MySQL notice when configuring Longview](longview-mysql-1.png) - -This indicates that Longview can't locate any valid MySQL user credentials, so it will create some for itself (in the `/etc/linode/longview.d/MySQL.conf` file) and ask you to add them to MySQL. To finish getting Longview set up: - -1. Copy the command shown in the popup message. You will need it for the next steps. - -1. Log in to your database as the root MySQL user: - - ```command - sudo mysql -u root -p - ``` - -1. Run the query that was shown in the popup message to create the Longview user. Ensure you replace `*****************` with the password provided to you by the popup. - - ```command - CREATE USER 'linode-longview'@'localhost' IDENTIFIED BY '***************'; - flush privileges; - ``` - - Refresh Longview in Cloud Manager to verify that the MySQL tab is now present and collecting data for your Longview client instance. - -If you've added the credentials to MySQL and it still doesn't work, double-check your MySQL installation, and then do a [manual configuration](#manual-configuration-all-distributions). - -### Unable to Connect to the Database, No Credentials Found - -- You may receive this error: - - ```output - Unable to connect to the database, no credentials found. - ``` - - This indicates that you need to add a MySQL user for Longview, and make sure the Longview configuration file has the appropriate credentials. See the [manual configuration](#manual-configuration-all-distributions) section for details. - -- You may also encounter this error message: - - ```output - Unable to connect to the database: Authentication plugin 'sha256_password' cannot be loaded: /usr/lib/x86_64-linux-gnu/mariadb18/plugin/sha256_password.so: cannot open shared object file: No such file or directory. - ``` - - If this is the case, follow the above instructions for [manual configuration](#manual-configuration-all-distributions). - -### Unable to Connect to the Database - -This error will state `Unable to connect to the database:` and then specify a reason. An incorrect password is one example of something that can generate this type of error. The list of errors that could cause this issue is pretty long, so you may want to reference the [MySQL documentation](https://dev.mysql.com/doc/) if you need help understanding a specific error message. - -### Unable to Collect MySQL Status Information - -If you receive the error `Unable to collect MySQL status information`, this indicates that Longview was able to connect to the MySQL database, but the query it uses to collect statistics has failed. This could occur if the database crashes while the query is being executed. The specific reason that it failed will be listed with the error. If the problem persists, contact Linode [support](/docs/products/platform/get-started/guides/support/). - -### MySQL Tab is Missing - -If the Longview MySQL tab is missing entirely, this indicates that MySQL is either not installed, or has stopped. If you restart MySQL, you will be able to see the tab again and view all of your old data. \ No newline at end of file diff --git a/docs/products/tools/longview/guides/mysql/longview-mysql-1.png b/docs/products/tools/longview/guides/mysql/longview-mysql-1.png deleted file mode 100644 index ab556bba2d5..00000000000 Binary files a/docs/products/tools/longview/guides/mysql/longview-mysql-1.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/mysql/longview_mysql_stats.png b/docs/products/tools/longview/guides/mysql/longview_mysql_stats.png deleted file mode 100644 index 41f971bcc77..00000000000 Binary files a/docs/products/tools/longview/guides/mysql/longview_mysql_stats.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/nginx/index.md b/docs/products/tools/longview/guides/nginx/index.md deleted file mode 100644 index 701e9514e29..00000000000 --- a/docs/products/tools/longview/guides/nginx/index.md +++ /dev/null @@ -1,268 +0,0 @@ ---- -title: Capture NGINX Metrics with Longview -title_meta: Capture NGINX Metrics with Linode Longview -description: 'This guide discusses the Linode Longview client, including how to configure Longview for the Nginx web server, how to interact with data from Longview, and more.' -published: 2013-11-05 -modified: 2023-05-24 -keywords: ["Longview", " Nginx", " statistics", " HttpStubStatusModule"] -tags: ["cloud manager","statistics","monitoring","linode platform","nginx"] -aliases: ['/platform/longview/longview-app-for-nginx/','/longview/longview-for-nginx/','/platform/longview/what-is-the-linode-longview-app-for-nginx/','/guides/what-is-the-linode-longview-app-for-nginx/'] -relations: - platform: - key: what-is-longview - keywords: - - distribution: NGINX ---- - -In addition to capturing general system metrics, Longview can also be used to capture metrics for NGINX. The NGINX tab appears in Cloud Manager when Longview detects that you have NGINX installed on your system. It can help you keep track of NGINX workers, requests, system resource consumption, and other information. - -{{< note >}} -In order to use Longview to capture data for NGIXN, you must have the Longview Agent successfully installed on the system you wish to monitor. See [Create a Longview Client and Install the Longview Agent](/docs/products/tools/longview/get-started/). -{{< /note >}} - -## In this Guide - -This guide covers using Longview with NGINX and includes the following topics: - -- [Configuring Linode Longview for NGINX](#configure-longview). -- [Interacting with the NGINX data provided by Longview in Cloud Manager](#view-metrics). -- [Troubleshooting Linode Longview for NGINX](#troubleshooting). - -## Configure Longview for NGINX {#configure-longview} - -### Automatic Configuration - -*These instructions are compatible only with Debian and Ubuntu and do not work on CentOS.* - -If NGINX is installed and running when you install the Longview agent, Longview should automatically configure itself for NGINX. If you install NGINX *after* setting up the Longview agent, you can perform the steps below to configure Longview with any available software integrations (Apache, NGINX, and MySQL). Any existing Longview data is not affected and will remain accessible. - -1. [SSH into the Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) you are monitoring with Longview. - -1. Ensure that NGINX is running. - - ```command - sudo systemctl status NGINX - ``` - -1. Run the automatic Longview configuration command. - - ```command - dpkg-reconfigure -phigh linode-longview - ``` - - For many systems, Longview should be able to configure itself automatically. If this is the case, your output should be similar to the following: - - ```output - Checking Nginx configuration... - Found nginx status page at http://127.0.0.2/nginx_status specified in /etc/linode/longview.d/Nginx.conf - ``` - - If this output appears, Longview is configured and you can skip to the last step. - -1. If Longview can't locate the NGINX status page, a prompt may appear. This could indicate that the status page is in an unusual and unspecified location, or that the status module isn't enabled, or that NGINX itself is misconfigured. - - ![Screenshot of the NGINX notice for Longview](longview-ningx-1.png) - - Select one of the options: - - - **No**: The configuration tool exits and you can perform a [manual configuration](#manual-configuration). This may be safer if you have a delicate NGINX setup. - - - **Yes**: The configuration tool attempts to enable the status module, set the status page location in a new vhost configuration file, and restart NGINX. This option is easier, but has the potential to disrupt your current NGINX configuration. If you choose yes, and the configuration is successful, you should see output similar to the following: - - ```output - [ ok ] Stopping Longview Agent: longview. - Checking Nginx configuration... - Restarting nginx: nginx. - Finished configuring nginx, writing new configuration to /etc/linode/longview.d/Nginx.conf - [ ok ] Starting Longview Agent: longview. - update-rc.d: using dependency based boot sequencing - ``` - - {{< note >}} - The automatic configuration sets the status page location to `http://127.0.0.2/nginx_status`. - {{< /note >}} - -1. Refresh Longview in Cloud Manager to verify that the NGINX tab is now present and collecting data for your Longview client instance. - - If instead you received a failure message similar to the output example, double-check your NGINX installation and then perform a [manual configuration](#manual-configuration). You can also visit the [Troubleshooting](#troubleshooting) section at the end of this guide. - - ```output - [FAIL] Reloading web server config: nginx failed! - ``` - -### Manual Configuration - -*These instructions work for all supported distributions, including Debian, Ubuntu, and CentOS.* - -To enable the NGINX Longview integration manually, follow these steps on your system via SSH: - -1. [SSH into the Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) you are monitoring with Longview. - -1. Add the following lines to your NGINX configuration to enable the status module and set the location of the status page. The lines should be placed within your main configuration file's `http` block (`/etc/nginx/nginx.conf`) or in a separate [site configuration file](/docs/guides/getting-started-with-nginx-part-2-advanced-configuration/#host-multiple-websites). - - ```file {title="/etc/nginx/nginx.conf"} - server { - listen 127.0.0.1:80; - server_name 127.0.0.1; - location /nginx_status { - stub_status on; - allow 127.0.0.1; - deny all; - } - } - ``` - -1. Restart NGINX: - - ```command - sudo systemctl restart nginx - ``` - -1. Edit the Longview configuration file for NGINX (`/etc/linode/longview.d/Nginx.conf`) so that it includes the following line. If this line is commented out, you can uncomment it. - - ```file {title="/etc/linode/longview.d/Nginx.conf"} - location http://127.0.0.1/nginx_status - ``` - -1. Restart Longview: - - ```command - sudo systemctl restart longview - ``` - -1. Refresh Longview in Cloud Manager to verify that the NGINX tab is now present and collecting data for your Longview client instance. - -You should now be able to see Longview data for NGINX. If that's not the case, proceed to the [Troubleshooting](#troubleshooting) section at the end of this article. - -## View NGINX Metrics {#view-metrics} - -1. Log in to [Cloud Manager](https://cloud.linode.com/) and select the **Longview** link in the sidebar. - -1. Locate the Longview Client you have configured for NGINX and click the corresponding **View details** link. - -1. Select the **NGINX** tab. - - ![The Longview Nginx App.](nginx-overview.png) - - You'll see the current version of NGINX listed on the upper left-hand side of the page. - - Mouse over a data point to see the exact numbers for that time. With [Longview Pro](/docs/products/tools/longview/), you can view older time periods for your data. The next sections cover the Longview Nginx App in detail. - -### Requests - -The **Requests** graph shows the total number of requests NGINX handled at the selected time. This is every HTTP and HTTPS request to your system. - -### Connections - -The **Connections** graph shows the amount of data that NGINX accepted and handled via web requests at the time selected. - -### Workers - -The **Workers** graph shows all of the NGINX workers at the selected time. The workers are broken down by state: - -- Waiting -- Reading -- Writing - -### CPU - -The **CPU** graph shows the percentage of your system's CPU being used by NGINX at the selected time. If you want to see the total CPU use instead, check the [Overview tab](/docs/products/tools/longview/guides/metrics/#overview). - -### RAM - -The **RAM** graph shows the amount of RAM or memory being used by NGINX at the selected time. If you want to see your system's total memory use instead, check the [Overview tab](/docs/products/tools/longview/guides/metrics/#overview). - -### Disk IO - -The **Disk IO** graph shows the amount of input to and output from the disk caused by NGINX at the selected time. To see the total IO instead, visit the [Disks tab](/docs/products/tools/longview/guides/metrics/#disks). - -### Process Count - -The **Process Count** graph shows the total number of processes on your system spawned by NGINX at the selected time. If you want to see more details, and how this stacks up against the total number of processes on your system, see the [Processes tab](/docs/products/tools/longview/guides/metrics/#processes). - -## Troubleshooting - -If you don't see Longview data for Nginx, you'll instead get an error on the page and instructions on how to fix it. As a general tip, you can check the `/var/log/linode/longview.log` file for errors as well. - -### Unable to Access Server Status Page for NGINX - -The error will state `Unable to access server status page (http://example.com/example) for Nginx: `. This error occurs when NGINX's status setting is disabled or has been changed from the default location. - -{{< note >}} -This error occurs when Longview attempts to check the status page `location` listed in `/etc/linode/longview.d/Nginx.conf`, or the default page at `http://127.0.0.1/nginx_status`, but receives a non-200 HTTP response code. Basically, it means that the status page Longview is checking doesn't exist. -{{< /note >}} - -To fix this, follow these steps: - -1. Make sure NGINX is running: - - ```command - sudo systemctl restart nginx - ``` - -1. Check the status page location, and make sure it's available over Port 80. The default location Longview checks is `http://127.0.0.1/nginx_status` on localhost, but NGINX doesn't typically have a status page location set up by default. In the NGINX configuration file (typically `/etc/nginx/nginx.conf`) or in a [separate site configuration file](/docs/guides/getting-started-with-nginx-part-2-advanced-configuration/#host-multiple-websites), this is designated with the lines in the example file below. If your configuration file does not contain these lines, add them to the file within the `http` block. For more details, see the [Manual Configuration](#manual-configuration) section of this guide. - - ```file {title="/etc/nginx/nginx.conf"} - server { - listen 127.0.0.1:80; - server_name 127.0.0.1; - location /nginx_status { - stub_status on; - allow 127.0.0.1; - deny all; - } - } - ``` - -1. Longview is designed to check the default location automatically. If you use the default location shown above, you should be done. Refresh Longview in Cloud Manager to verify that the NGINX tab is now present and collecting data for your Longview client instance. - -1. If you're not using the default location, you need to create a new file, `/etc/linode/longview.d/Nginx.conf`, and set the `location` variable to match what you set in the NGINX configuration file: - - ```file {title="/etc/linode/longview.d/Nginx.conf"} - location http://127.0.0.1/url-goes-here - ``` - -1. Restart Longview: - - ```command - sudo systemctl restart nginx - ``` - -1. Refresh Longview in Cloud Manager to verify that the NGINX tab is now present and collecting data for your Longview client instance. - -{{< note >}} -If you originally compiled NGINX without the status module, you will need to recompile it with `--with-http_stub_status_module` and all your other settings. Then go back and try to enable the Longview Nginx App. -{{< /note >}} - -### The NGINX Status Page Doesn't Look Right - -The error will state `The Nginx status page doesn't look right. Check and investigate any redirects for misconfiguration.` This error occurs when Longview is able to reach the status page, but doesn't receive the expected content. - -{{< note >}} -This error occurs when Longview attempts to check the status page, and receives a 200 HTTP response code, but can't scrape the expected status content from the page. That is, the page exists on your system, but it doesn't have the right content. If, for example, Longview was to check your website's home page, you would get this error. -{{< /note >}} - -To resolve this issue, follow these steps: - -1. Visit the URL shown in the error. See if it directs or redirects you to a page that isn't the NGINX status page. - -1. Update your NGINX and Longview settings so that they specify the same status page location: - - - The **server_name** and **location** lines in your NGINX configuration file. See the [Manual Configuration](#manual-configuration-all-distributions) section for more details. - - The **location** line in `/etc/linode/longview.d/Nginx.conf` - - If the location line isn't set in `/etc/linode/longview.d/Nginx.conf`, Longview will check the default location of `http://127.0.0.1/nginx_status` on localhost. - -1. Make sure there aren't any NGINX redirects or other settings that are affecting this page. - -1. Restart Longview: - - ```command - sudo systemctl restart longview - ``` - -1. Refresh Longview in Cloud Manager to verify that the NGINX tab is now present and collecting data for your Longview client instance. - -### NGINX Tab is Missing - -If the Longview Nginx tab is missing entirely, this indicates that NGINX is either not installed, or has stopped. If you restart NGINX, you will be able to see the tab again and view all of your old data. \ No newline at end of file diff --git a/docs/products/tools/longview/guides/nginx/longview-ningx-1.png b/docs/products/tools/longview/guides/nginx/longview-ningx-1.png deleted file mode 100644 index ff8f698835c..00000000000 Binary files a/docs/products/tools/longview/guides/nginx/longview-ningx-1.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/nginx/nginx-overview.png b/docs/products/tools/longview/guides/nginx/nginx-overview.png deleted file mode 100644 index 8cd5d036736..00000000000 Binary files a/docs/products/tools/longview/guides/nginx/nginx-overview.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/troubleshooting/TroubleshootLinodeLongview.png b/docs/products/tools/longview/guides/troubleshooting/TroubleshootLinodeLongview.png deleted file mode 100644 index d9cc1aee5f4..00000000000 Binary files a/docs/products/tools/longview/guides/troubleshooting/TroubleshootLinodeLongview.png and /dev/null differ diff --git a/docs/products/tools/longview/guides/troubleshooting/index.md b/docs/products/tools/longview/guides/troubleshooting/index.md deleted file mode 100644 index 9bb3614a0d1..00000000000 --- a/docs/products/tools/longview/guides/troubleshooting/index.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: Troubleshooting Longview -title_meta: Troubleshooting Linode Longview -description: 'Longview is a server monitoring client from Linode you can use to watch server performance. This guide describes the process of troubleshooting Longview.' -og_description: "Learn how to troubleshoot Linode's Longview service." -published: 2020-01-22 -modified: 2023-05-24 -keywords: ["system monitoring", "longview", "metrics", "troubleshooting"] -tags: ["resolving","cloud manager","statistics","monitoring","linode platform"] -image: TroubleshootLinodeLongview.png -aliases: ['/platform/longview/troubleshooting-linode-longview/','/guides/troubleshooting-linode-longview/'] ---- - -This guide discusses basic troubleshooting steps to help you diagnose and resolve any issues you may encounter while using Longview. If you're experiencing problems with the Longview client, follow the steps outlined in this guide to help determine the cause. - -## Basic Diagnostics - -1. Ensure that your system is [fully updated](/docs/products/compute/compute-instances/guides/set-up-and-secure/#perform-system-updates). - - {{< note >}} - Longview requires Perl 5.8 or later. - {{< /note >}} - -1. Verify that the Longview client is running. Use the command that is appropriate for your distribution's initialization system: - - **Distributions with systemd** - - ```command - sudo systemctl status longview - ``` - - **Distributions without systemd** - - ```command - sudo service longview status - ``` - - If the Longview client is not running, start it with the command appropriate for your distribution's initialization system: - - **Distributions with systemd** - - ```command - sudo systemctl start longview - ``` - - **Distributions without systemd** - - ```command - sudo service longview start - ``` - - If the service fails to start, check Longview's log for errors. The log file is located in `/var/log/linode/longview.log`. - -## Debug Mode - -Restart the Longview client in debug mode for increased logging verbosity. - -1. First stop the Longview client: - - **Distributions with systemd** - - ```command - sudo systemctl stop longview - ``` - - **Distributions without systemd** - - ```command - sudo service longview stop - -1. Then restart Longview with the `debug` flag: - - ```command - sudo /etc/init.d/longview debug - ``` - -1. When you're finished collecting information, repeat the first two steps to stop Longview and restart it again without the debug flag. - - If Longview does not close properly, find the process ID and kill the process: - - ```comand - ps aux | grep longview - sudo kill $PID - ``` - -## Firewall Rules - -If your Linode has a firewall, it must allow communication with Longview's aggregation host at `longview.linode.com` (IPv4: `96.126.119.66`). You can view your firewall rules with one of the commands below, depending on the firewall controller used by your Linux distribution: - -- **firewalld** - - ```command - sudo firewall-cmd --list-all - ``` - - {{< note >}} - Review our [Introduction to FirewallD on CentOS](/docs/guides/introduction-to-firewalld-on-centos/) guide for more help with FirewallD. - {{< /note >}} - -- **iptables** - - ```command - sudo iptables -S - ``` - - {{< note >}} - Review our [Control Network Traffic with iptables](/docs/guides/control-network-traffic-with-iptables/) guide for more help with iptables. - {{< /note >}} - -- **ufw** - - ```command - sudo ufw show added - ``` - - {{< note >}} - Review our [How to Configure a Firewall with UFW](/docs/guides/configure-firewall-with-ufw/) guide for more help with UFW. - {{< /note >}} - -If the output of those commands show no rules for the Longview domain (or for `96.126.119.66`, which is the IP for the Longview domain), you must add them. A sample iptables rule that allows outbound HTTPS traffic to Longview would be the following: - -```command -iptables -A OUTPUT -p tcp --dport 443 -d longview.linode.com -j ACCEPT -``` - -{{< note >}} -If you use iptables, you should also make sure to persist any of your firewall rule changes. Otherwise, your changes will not be enforced if your Linode is rebooted. Review the [iptables-persistent](/docs/guides/control-network-traffic-with-iptables/#introduction-to-iptables-persistent) section of our iptables guide for help with this. -{{< /note >}} - -## Verify API key - -The API key given in the Linode Cloud Manager should match that on your system in `/etc/linode/longview.key`. - -1. In Cloud Manager, the API key is located in the **Installation** tab of your Longview Client instance's [detailed view](/docs/products/tools/longview/get-started/). - -1. SSH into your Linode. The Longview key is located at `/etc/linode/longview.key`. Use `cat` to view the contents of that file and compare it to what's shown in Cloud Manager: - - ```command - cat /etc/linode/longview.key - ``` - - The two should be the same. If they are not, paste the key from the Linode Cloud Manager into `longview.key`, overwriting anything already there. - -## Cloned Keys - -If you clone a Linode which has Longview installed, you may encounter the following error: - -```output -Multiple clients appear to be posting data with this API key. Please check your clients' configuration. -``` - -This is caused by both Linodes posting data using the same Longview key. To resolve it: - -1. Uninstall the Longview agent on the cloned system. - - **CentOS**: - - ```command - sudo yum remove linode-longview - ``` - - **Debian or Ubuntu**: - - ```command - sudo apt-get remove linode-longview - ``` - - **Other Distributions**: - - ```command - sudo rm -rf /opt/linode/longview - ``` - -1. Add a new [Linode Longview Client instance](/docs/products/tools/longview/get-started/#create-client). This will create a new Longview API key independent from the system which it was cloned from. - - {{< note >}} - The GUID provided in the Longview Client's installation URL is not the same as the Longview API key. - {{< /note >}} - -1. [Install the Longview Agent](/docs/products/tools/longview/get-started/#install-agent) on the cloned Linode. - -## Contact Support - -If you still need assistance after performing these checks, please open a [support ticket](/docs/products/platform/get-started/guides/support/#contact-customer-support). \ No newline at end of file diff --git a/docs/products/tools/monitoring/_index.md b/docs/products/tools/monitoring/_index.md deleted file mode 100644 index 2cc67357cbe..00000000000 --- a/docs/products/tools/monitoring/_index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Monitoring -description: "Linode performance Monitoring lets you set custom thresholds and enable the shutdown watchdog, Lassie." -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - date: 2020-06-02 - product_description: "Easily analyze performance graphs and keep track of your transfer usage right from the Linode Cloud Manager. Create custom alerts for when you near thresholds you set." ---- - -## Availability - -Linode Monitoring tools are available across [all regions](https://www.linode.com/global-infrastructure/). - -## Features - -### Performance Monitoring -See how your Linodes are performing now and historically over time. Know when to scale up or down for better application performance. - -### Custom Thresholds -Create custom usage threshold alerts so you know when you’re close to exceeding resources and know when it's time to scale up your resources. See the [Monitoring and Maintaining your Server](/docs/products/compute/compute-instances/guides/monitor-and-maintain/#configure-cloud-manager-email-alerts) guide for instruction on how to configure custom email alerts for CPU usage, Disk IO rate, and more. - -### Shutdown Watchdog -When enabled, our Shutdown Watchdog automatically reboots your Linode if it should ever power off unexpectedly. "Lassie," as it's also known, gets your Linode back online before you even know it's off. - -## Pricing - -Linode's Monitoring is provided for free to all customers. diff --git a/docs/products/tools/monitoring/developers/index.md b/docs/products/tools/monitoring/developers/index.md deleted file mode 100644 index 6cc561d1b95..00000000000 --- a/docs/products/tools/monitoring/developers/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Developers -description: "Linode Monitoring is managed easily with developer tools like the Linode API or CLI." -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [View Linode Statistics](/docs/api/linode-instances/#view-linode-statistics) - -- [View Statistics (year/month)](/docs/api/linode-instances/#view-statistics-yearmonth) - -- [List Managed Stats](/docs/api/managed/#list-managed-stats) - -- [View NodeBalancer Statistics](/docs/api/nodebalancers/#view-nodebalancer-statistics) - -- [Longview Endpoints](/docs/api/longview/) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. diff --git a/docs/products/tools/monitoring/feature.png b/docs/products/tools/monitoring/feature.png deleted file mode 100644 index 0ba11879f5e..00000000000 Binary files a/docs/products/tools/monitoring/feature.png and /dev/null differ diff --git a/docs/products/tools/monitoring/feature.svg b/docs/products/tools/monitoring/feature.svg deleted file mode 100644 index 5e495b61f47..00000000000 --- a/docs/products/tools/monitoring/feature.svg +++ /dev/null @@ -1,5 +0,0 @@ - - Monitoring - - - \ No newline at end of file diff --git a/docs/products/tools/monitoring/guides/_index.md b/docs/products/tools/monitoring/guides/_index.md deleted file mode 100644 index 0faa1e8da6f..00000000000 --- a/docs/products/tools/monitoring/guides/_index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Guides -description: "Learn to get up and running with monitoring your Linode services and find guides on related monitoring tools." -tab_group_main: - weight: 30 ---- - -## Building Blocks - -These introductory guides help you get up and running with monitoring your Linode services. - -- [Configure Shutdown Watchdog](/docs/products/compute/compute-instances/guides/lassie-shutdown-watchdog/): "Lassie" the Shutdown Watchdog can monitor your Linodes and automatically restart them if they are shutdown unexpectedly. - -- [Cloud Manager Graphs](/docs/products/tools/monitoring/guides/monitoring-cloud-graphs): Cloud Manager provides several basic graphs to give you a view into the performance of your Linodes. - -- [Configure Email Alerts](/docs/products/compute/compute-instances/guides/resource-usage-email-alerts/): In Cloud Manager, you can configure several server alerts to automatically email you when certain thresholds are met. - -- [Use Third-Party Tools](/docs/products/tools/monitoring/guides/monitoring-third-party-tools): For a more detailed view of your systems, you can use third-party tools. - -For more basics, see the full guide on [Monitoring and Maintaining Your Server](/docs/products/compute/compute-instances/guides/monitor-and-maintain/). - -## Themes - -These additional guides help you with targeted topics like how to use command line and graphical tools to monitor your servers and applications. - -### Command Line Tools - -- [Use vmstat to Monitor System Performance](/docs/guides/use-vmstat-to-monitor-system-performance/) - -- [Using top to Monitor Server Performance](/docs/guides/top-htop-iotop/) - -- [Monitor System Logs with Logwatch](/docs/guides/logwatch-monitor-system-logs/) - -- [Installing Monit for Server Monitoring](/docs/guides/monitoring-servers-with-monit/) - -- [Monitor Remote Hosts with Icinga](/docs/guides/monitor-remote-hosts-with-icinga/) - -### Graphical Tools - -- [Monitor Your System with Graphite and a Grafana Dashboard](/docs/guides/install-graphite-and-grafana/) - -- [Longview Pricing and Plans](/docs/products/tools/longview/) - -- [Understanding Linode Longview](/docs/products/tools/longview/get-started/) - -- [Troubleshoot Linode Longview](/docs/products/tools/longview/guides/troubleshooting/) - -- [Using the Linode Longview App for MySQL](/docs/products/tools/longview/guides/mysql/) - -- [Using the Linode Longview App for Apache](/docs/products/tools/longview/guides/apache/) - -- [Using the Linode Longview App for Nginx](/docs/products/tools/longview/guides/nginx/) diff --git a/docs/products/tools/monitoring/guides/monitoring-cloud-graphs/index.md b/docs/products/tools/monitoring/guides/monitoring-cloud-graphs/index.md deleted file mode 100644 index 2f22345bbcd..00000000000 --- a/docs/products/tools/monitoring/guides/monitoring-cloud-graphs/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Cloud Manager Graphs -description: "How to use Cloud Manager graphs with the Linode Monitoring." ---- - -{{% content "monitoring-cloud-manager-graphs-shortguide" %}} \ No newline at end of file diff --git a/docs/products/tools/monitoring/guides/monitoring-third-party-tools/index.md b/docs/products/tools/monitoring/guides/monitoring-third-party-tools/index.md deleted file mode 100644 index 5f8e14f121d..00000000000 --- a/docs/products/tools/monitoring/guides/monitoring-third-party-tools/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Use Third Party Tools -description: "How to use monitoring third-party tools." ---- - -{{% content "monitoring-third-party-tools-shortguide" %}} \ No newline at end of file diff --git a/docs/products/tools/monitoring/resources/index.md b/docs/products/tools/monitoring/resources/index.md deleted file mode 100644 index 302bd440137..00000000000 --- a/docs/products/tools/monitoring/resources/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Resources -description: "Resources and other information related to Linode Monitoring including blog posts and community posts." -tab_group_main: - weight: 40 ---- - -## Blog Posts - -- [High Availability - What You Need to Know](https://www.linode.com/blog/cloud-consulting-services/high-availability-what-you-need-to-know/) - -## Community Posts - -- [How do I set up a monitor on my Linode?](https://www.linode.com/community/questions/152/how-do-i-set-up-a-monitor-on-my-linode) - -- [Simple monitoring solution](https://www.linode.com/community/questions/4006/help-dont-know-how-to-solve-this-server-stopped-respondin) - -- [Can I download the CPU, Network and Disk data from the graph tab?](https://www.linode.com/community/questions/17174/can-i-download-the-cpu-network-and-disk-data-from-the-graph-tab) - -- [Can I tell if I need to upgrade my Linode by looking at my graphs?](https://www.linode.com/community/questions/262/can-i-tell-if-i-need-to-upgrade-my-linode-by-looking-at-my-graphs) - -- [I see a message in Cloud Manager that Lassie rebooted my Linode. What exactly is Lassie?](https://www.linode.com/community/questions/19098/i-see-a-message-in-cloud-manager-that-lassie-rebooted-my-linode-what-exactly-is-) - -- [Why is my Linode suddenly using 100% of its CPU?](https://www.linode.com/community/questions/17820/why-is-my-linode-suddenly-using-100-of-its-cpu) - -- [Is CPU % per core or for the whole CPU?](https://www.linode.com/community/questions/309/is-cpu-per-core-or-for-the-whole-cpu) - -- [Linode graphs show 100% CPU usage for my Minecraft server, but top shows low CPU usage. Which one is right?](https://www.linode.com/community/questions/18660/linode-graphs-show-100-cpu-usage-for-my-minecraft-server-but-top-shows-low-cpu-u) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=monitoring). diff --git a/docs/products/tools/stackscripts/_index.md b/docs/products/tools/stackscripts/_index.md deleted file mode 100644 index 1c74f8bca36..00000000000 --- a/docs/products/tools/stackscripts/_index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: StackScripts -title_meta: "StackScripts Product Documentation" -description: "Linode StackScripts allow for quick and easy customization. Create your own and join the growing library of StackScripts." -modified: 2023-09-18 -tab_group_main: - is_root: true - title: Overview - weight: 10 -cascade: - product_description: "Custom deployment scripts used to install software or configure a system on new Compute Instances." -aliases: ['/platform/stackscripts-classic-manager/','/platform/stackscripts/','/platform/stackscripts-new-manager/','/stackscripts/','/guides/platform/stackscripts/'] ---- - -{{% content "metadata-stackscripts-notice" %}} - -[StackScripts](http://linode.com/stackscripts/) provide Linode users with the ability to automate the deployment of custom systems. They work by running a custom script when deploying a new Compute Instance. These custom scripts store tasks that you may need to repeat often on new Compute Instances, such as: - -- Automating common system administration tasks, such as installing and configuring software, configuring system settings, adding limited user accounts, and more. -- Running externally hosted deployment scripts. -- Quickly creating Compute Instances for yourself or clients with the exact starter configuration you need. - -All StackScripts are stored in the Linode Cloud Manager and can be accessed whenever you deploy a Compute Instance. A StackScript authored by you is an *Account StackScript*. A *Community StackScript* is a StackScript created by a Linode community member that has made their StackScript publicly available. - -## Features - -### Quick and Easy Customization - -Select a StackScript, fill out any required fields, and click to deploy. StackScripts run the first time a Compute Instance boots, allowing you to automatically customize the default Linux distribution. - -### A Library of StackScripts - -Customize your Compute Instance with one of the many StackScripts in our library or discover a community-sourced script. They include everything from installing a Linode-optimized LAMP stack to configuring an IPsec VPN server. - -### Create Your Own - -Writing new StackScripts is simple. If you can’t find the right StackScript for your needs, author your own. - -## Pricing and Availability - -StackScripts are available at no charge across [all regions](https://www.linode.com/global-infrastructure/). - -## Technical Specifications - -- Deployable on new Compute Instances -- Use any Linode-provided Linux distribution (see [Choosing a Linux Distribution](/docs/products/compute/compute-instances/guides/distributions/)) -- Supports the bash scripting language and any other scripting language supported by your chosen Linux distribution(s) (such as Python) -- Supports custom user-defined fields (UDFs) -- StackScripts can be made public to share with the community -- Manage StackScripts through an intuitive web-based control panel ([Cloud Manager](https://cloud.linode.com/)), the [Linode CLI](https://www.linode.com/products/cli/), or programmatically through the [Linode API](https://www.linode.com/products/linode-api/) \ No newline at end of file diff --git a/docs/products/tools/stackscripts/_shortguides/metadata-stackscripts-notice/index.md b/docs/products/tools/stackscripts/_shortguides/metadata-stackscripts-notice/index.md deleted file mode 100644 index 5914152ca24..00000000000 --- a/docs/products/tools/stackscripts/_shortguides/metadata-stackscripts-notice/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Shortguide: Information about the Metadata as a StackScripts alternative - -headless: true -show_on_rss_feed: false ---- - -{{< note type="warning" title="Consider Using Akamai's New Metadata Service" >}} -Akamai's Metadata service is now available in select data centers and should be considered for new projects as an alternative to StackScripts. Use Metadata to automate system configuration by adding directives or scripts when deploying Compute Instances. This user data can then be consumed by cloud-init, an industry standard system initialization tool, or accessed directly using the Metadata API. For instructions on using the Metadata service and for a list of supported regions and distributions, reference our [documentation](/docs/products/compute/compute-instances/guides/metadata/). -{{< /note >}} \ No newline at end of file diff --git a/docs/products/tools/stackscripts/developers/index.md b/docs/products/tools/stackscripts/developers/index.md deleted file mode 100644 index 3f620998f28..00000000000 --- a/docs/products/tools/stackscripts/developers/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Developers -title_meta: "Developer Resources for StackScripts" -description: "Linode StackScripts are managed easily with developer tools like the Linode API or CLI." -published: 2020-04-22 -tab_group_main: - weight: 50 ---- - -## Linode API - -Linode’s [API v4](/docs/api) provides the ability to programmatically manage the full range of Linode products and services. - -- [StackScripts Endpoint Collection](/docs/api/stackscripts) - -## Linode CLI - -The [Linode CLI](https://github.com/linode/linode-cli) is a wrapper around the Linode API v4 that lets you manage your Linode account and resources from the command line. diff --git a/docs/products/tools/stackscripts/feature.png b/docs/products/tools/stackscripts/feature.png deleted file mode 100644 index 6fe2a968337..00000000000 Binary files a/docs/products/tools/stackscripts/feature.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/feature.svg b/docs/products/tools/stackscripts/feature.svg deleted file mode 100644 index ea0d24656f3..00000000000 --- a/docs/products/tools/stackscripts/feature.svg +++ /dev/null @@ -1,11 +0,0 @@ - - StackScripts - - - - - - - - - \ No newline at end of file diff --git a/docs/products/tools/stackscripts/get-started/index.md b/docs/products/tools/stackscripts/get-started/index.md deleted file mode 100644 index 25a1d8be16f..00000000000 --- a/docs/products/tools/stackscripts/get-started/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Get Started -title_meta: "Getting Started with StackScripts" -description: "Get started with Linode StackScripts. Learn to create a StackScript and create a new Linode using a StackScript." -published: 2022-11-30 -modified: 2023-09-18 -tab_group_main: - weight: 20 -tags: ["managed hosting"] ---- - -{{% content "metadata-stackscripts-notice" %}} - -StackScripts allow you to reproduce specific software configurations when deploying Compute Instances, with more user control than static system images. This guide covers how to get started with StackScripts, including writing your custom script, creating the StackScript, and deploying a Compute Instance. - -## Write the Script - -When creating a StackScript, most of the time is spent writing the deployment script itself. This script runs the first time a Compute Instance boots up and lets you configure the system to fit your precise needs and requirements. Before you write the script, consider the following: - -- **What is the purpose of your script?** The first question you should ask is *what purpose will your script serve*. Do you want to build a web server? Are you building a script to take care of securing new servers? Consider each task you want your script to perform. - -- **Which scripting language should be used for your script?** You can write the StackScript in any language that the distribution supports out of the box. Specifically, you need to specify the interpreter that is used to execute the script. Common scripting languages are bash and python. - -- **Which Linux distributions should the script support?** Since each distribution bundles different core software, the commands needed to install applications or configure networking vary between distributions. You need to determine which distributions you want to have available when deploying the Compute Instance. Then, you can customize your script to include commands for those distributions. - -- **Which dynamic variables do you want the user to set when deploying a Compute Instance?** Determine what information you wish to collect during deployment. These user variables can be defined through the use of UDF fields within the script. All UDF fields are visible in Cloud Manager when creating a Compute Instance based on the StackScript. - -For more details on the components of a StackScript, see [Write a Custom Script for Use with StackScripts](/docs/products/tools/stackscripts/guides/write-a-custom-script/) guide. - -## Create the StackScript - -After your script has been written, you are ready to create the StackScript. See [Create a StackScript](/docs/products/tools/stackscripts/guides/create/) for complete instructions. - -1. Log into [Cloud Manager](https://cloud.linode.com/) and select **StackScripts** from the left navigation menu. Click the **Create StackScript** button on the top right of the page. - -1. Enter a **Label** and **Description** for your StackScript. - -1. Use the **Target Images** field to select each distribution your StackScript can support. When deploying a new Compute Instance based on this StackScript, only images selected here can be used. - -1. Enter your custom script within the **Script** field. - -1. Type in a **Revision Note** and click the **Create StackScript** button. - -## Deploy a Compute Instance - -When creating a new Compute Instance, you can use one of your Account StackScripts or a Community StackScript. For full instructions, see [Deploy a Compute Instance Using a StackScript](/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/). - -1. Log into [Cloud Manager](https://cloud.linode.com/) and select **StackScripts** from the left navigation menu. - -1. Navigate to either the **Account StackScript** tab (to deploy your own StackScript) or the **Community StackScript** tab (to deploy a public StackScript). - -1. Locate the StackScript you wish to deploy and click the corresponding **Deploy New Linode** button. - - ![Screenshot of the more options ellipsis menu for a StackScript](stackscript-deploy-button.png) - -1. This opens the **Create Linode** form with the StackScript pre-selected. From here, you can follow the instructions outlined in the [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) guide. If there are any UDF fields defined in the StackScript, they are displayed in the **StackScript Options** section. - -1. Click on the **Create Linode** button to complete the creation of your new Compute Instance. The StackScript is executed when the instance first boots up. \ No newline at end of file diff --git a/docs/products/tools/stackscripts/get-started/stackscript-deploy-button.png b/docs/products/tools/stackscripts/get-started/stackscript-deploy-button.png deleted file mode 100644 index 5cd38ea8c0f..00000000000 Binary files a/docs/products/tools/stackscripts/get-started/stackscript-deploy-button.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/_index.md b/docs/products/tools/stackscripts/guides/_index.md deleted file mode 100644 index 51e096cc920..00000000000 --- a/docs/products/tools/stackscripts/guides/_index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Guides -title_meta: "Guides and Tutorials for StackScripts" -description: "Learn to create and use StackScripts in Cloud Manager and other related topics, like best practices when writing scripts." -modified: 2022-11-30 -tab_group_main: - weight: 30 ---- - -## Basics - -- [Create a New StackScript](/docs/products/tools/stackscripts/guides/create/): Instructions for creating a new StackScript. - -- [Manage StackScripts](/docs/products/tools/stackscripts/guides/manage/): View, edit, and manage StackScripts on your account. - -- [Deploy a Compute Instance Using a StackScript](/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/): Instructions for creating a new Compute Instance based on a StackScript. - -- [Use Cases for StackScripts](/docs/products/tools/stackscripts/guides/use-cases/): Outlines several common reasons why StackScripts might be the right deployment tool. - -## Writing a Script - -- [Write a Custom Script for Use with StackScripts](/docs/products/tools/stackscripts/guides/write-a-custom-script/): A walk-through for creating custom scripts to use on your next StackScript. - -- [Use Externally Hosted Deployment Scripts](/docs/products/tools/stackscripts/guides/external-scripts/): Learn how to download an external script and use it within a StackScript. - -## Going Further - -- [Solving Real World Problems With Bash Scripts - A Tutorial](/docs/guides/solving-real-world-problems-with-bash-scripts-a-tutorial/) - -- [Deploy a WordPress Site Using Terraform and StackScripts](/docs/guides/deploy-a-wordpress-site-using-terraform-and-linode-stackscripts/) diff --git a/docs/products/tools/stackscripts/guides/create/index.md b/docs/products/tools/stackscripts/guides/create/index.md deleted file mode 100644 index 8eec83621fc..00000000000 --- a/docs/products/tools/stackscripts/guides/create/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Create a StackScript -description: "How to make a StackScript using Linode StackScripts." -published: 2022-11-30 -modified: 2023-09-18 -aliases: ['/products/tools/stackscripts/guides/stackscripts-create-stackscript/'] ---- - -{{% content "metadata-stackscripts-notice" %}} - -This guide walks you through creating a StackScript through Cloud Manager. - -1. [Open the Create StackScript Form in Cloud Manager](#open-the-create-stackscript-form-in-cloud-manager) -1. [Set the Label](#set-the-label) -1. [Add a Description](#add-a-description) -1. [Select Compatible Distribution Images](#select-compatible-distribution-images) -1. [Create the Custom Script](#create-the-custom-script) -1. [Enter a Revision Note](#enter-a-revision-note) -1. [Save the StackScript](#save-the-stackscript) - -## Open the Create StackScript Form in Cloud Manager - -Log in to [Cloud Manager](https://cloud.linode.com/) and select **StackScripts** from the left navigation menu. Click the **Create StackScript** button. This opens the *[StackScript Create](https://cloud.linode.com/stackscripts/create)* form. - -## Set the Label - -Within the **Label** field, enter the label you wish to use identify this StackScript. A good label should provide some indication as to what the StackScript will be used to deploy. The label must be alphanumeric, between 3 and 128 characters, and unique from other StackScript labels on your account. - -## Add a Description - -Enter a brief overview of your StackScript in the **Description** field, outlining what it does and any software it might be installing or configuring. If you intend on sharing this StackScript with other users on your account or making this StackScript public, this description should be sufficient to help others understand the purpose of the StackScript. - -## Select Compatible Distribution Images - -Within the **Target Images** field, select each distribution image that is compatible with your StackScript. When deploying a Compute Image based on this StackScript, the available images are limited to whichever images are selected here. At least one image must be selected, though you can add multiple images if you wish to provide an option during deployment. See [Choosing a Linux Distribution](/docs/products/compute/compute-instances/guides/distributions/) to learn more about the distributions that Linode supports. - -## Create the Custom Script - -Paste (or type) your custom script in the **Script** field. This is the script that the StackScript calls when deploying a Compute Instance. The interpreter needed to execute your script must exist in the distribution images that were previously selected. The first line of the script must include a shebang followed by the path to the interpreter you wish to use. - -- **Bash:** `#!/bin/bash` -- **Python:** `#!/usr/bin/env python` -- **Python 3:** `#!/usr/bin/python3` - -For more details on the components of a StackScript, see [Write a Custom Script for Use with StackScripts](/docs/products/tools/stackscripts/guides/write-a-custom-script/) guide. - -## Enter a Revision Note - -Each time you make a change to a StackScript (including creating it), you can set a **Revision Note** to indicate what changes were made. - -## Save the StackScript - -Once you are finished filling out all required fields, click the **Create StackScript** button to create the StackScript. After it has been created, you can edit all of the fields as needed. See [Edit a StackScript](/docs/products/tools/stackscripts/guides/manage/#edit-a-stackscript). - -{{< note >}} -To deploy a new Linode with your StackScript, follow the steps in the [Deploying a New Compute Instance Using a StackScript](/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/) guide. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/index.md b/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/index.md deleted file mode 100644 index 8af84ddd861..00000000000 --- a/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Deploy a Compute Instance Using a StackScript -description: 'In this guide, you will learn the various methods you can use in conjunction with Cloud Manager to deploy a new Linode with a StackScript.' -published: 2020-04-22 -modified: 2023-02-02 -keywords: ["stackscripts", "automation", "script", "custom instance", "deployment"] -tags: ["linode platform","automation","cloud manager"] -aliases: ['/platform/stackscripts/how-to-deploy-a-new-linode-using-a-stackscript/','/guides/how-to-deploy-a-new-linode-using-a-stackscript/'] ---- - -When deploying a Compute Instance, you can choose to select a StackScript. This causes the StackScript to run the first time the instance boots up. The StackScript can be from your own account or one that a member of the community has publicly shared. - -{{< note >}} -Linode does not verify the accuracy of any community submitted StackScripts. Before deploying a Compute Instance using a Community StackScript, you should review the script so that you understand what changes it will make on your new instance. -{{< /note >}} - -1. Log into [Cloud Manager](https://cloud.linode.com/) and select **StackScripts** from the left navigation menu. - -1. Navigate to either the *Account StackScripts* tab (for StackScripts on your own customer account) or *Community StackScripts* tab (for StackScripts publicly shared by other members of the community). - -1. Locate the StackScript you wish to deploy and click the corresponding **Deploy New Linode** button. - - ![Screenshot of the more options ellipsis menu for a StackScript](stackscript-deploy-button.png) - - {{< note >}} - To find a StackScript, you can scroll through the list or you can use the **Search** field. For advanced searches, you search a specific field for a search term by entering `[field]:[search-term]`. This field can be `label`,`description`, or `username`. The example below searches the label field for the search term "nginx". - - ```command - label:nginx - ``` - {{< /note >}} - -1. This opens the **Create Linode** form with the StackScript pre-selected. If there are any UDF fields defined in the StackScript, they are displayed in the **StackScript Options** section. UDFs that *do not have* a default value are marked as required. UDFs that *do have* a default value are optional and are listed under the **Advanced Options** section. - - {{< note type="warning" >}} - Do not use a double quotation mark character (`"`) within any of the StackScript-specific configuration fields, including user and database password fields. This special character may cause issues during deployment. - {{< /note >}} - -1. Next, select the Linux distribution you'd like to use within the **Select an Image** field. This list is limited to only images that the StackScript has targeted. - -1. Complete the remainder of the form by follow the instructions outlined in the [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) guide. - -1. Click on the **Create Linode** button to complete the creation of your new Compute Instance. The StackScript is executed when the instance first boots up. - -{{< note >}} -Depending on the contents of your StackScript, it may take a few minutes for the script to finish executing. -{{< /note >}} \ No newline at end of file diff --git a/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/stackscript-deploy-button.png b/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/stackscript-deploy-button.png deleted file mode 100644 index 5cd38ea8c0f..00000000000 Binary files a/docs/products/tools/stackscripts/guides/deploy-a-compute-instance/stackscript-deploy-button.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/external-scripts/index.md b/docs/products/tools/stackscripts/guides/external-scripts/index.md deleted file mode 100644 index b6e070ddf41..00000000000 --- a/docs/products/tools/stackscripts/guides/external-scripts/index.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: "Use an Externally Hosted Deployment Script" -description: "Learn how to download an external script and use it within a StackScript." -published: 2020-04-22 -modified: 2022-11-30 -aliases: ['/products/tools/stackscripts/guides/stackscripts-create-linode/'] ---- - -## External Deployment Script - -If you have an existing deployment script, you can use a StackScript to deploy Linode instances with it. The following example StackScript installs PHP on the Linode, downloads an external PHP script from the URL `http://example.com/deployment-script.php`, makes it executable, and then runs the downloaded script. - -### Bash Example - -```file {title="Bash StackScript Example" lang="bash"} -#!/bin/bash -if [ -f /etc/apt/sources.list ]; then - apt update - apt -y install php -elif [-f /etc/yum.conf ]; then - yum -y install php -elif [-f /etc/pacman.conf ]; then - pacman -Sy - pacman -S --noconfirm pacman - pacman -S --noconfirm php -else - echo "Your distribution is not supported by this StackScript" - exit -fi - -wget http://example.com/deployment-script.php --output-document=/opt/deployment-script.php -chmod +x /opt/deployment-script.php - -./opt/deployment-script.php -``` - -### Python Example - -The same script can be applied via python using the following syntax: - -```file {title="Python StackScript Example" lang="python"} -#!/usr/bin/python3 - -import os.path - -if os.path.isfile('/etc/apt/sources.list'): - os.system('sudo apt update && sudo apt -y upgrade') - os.system('sudo apt -y install php php-common') -elif os.path.isfile('/etc/yum.conf'): - os.system('sudo yum install -y wget && sudo yum -y install php') -elif os.path.isfile('/etc/pacman.conf'): - os.system('pacman -Sy && pacman -S --noconfirm pacman && pacman -S --noconfirm php') -else: - print("Your Distribution is not supported by this StackScript") - -os.system('wget http://example.com/deployment-script.php --output-document=/opt/deployment-script.php') -os.system('chmod +x /opt/deployment-script.php') - -print("StackScript Complete. Thank you!") -``` - -## Embedded Deployment Script - -If you do not want to rely on an existing external server to host your scripts for download, you can embed the bootstrapped script into the StackScript. - -```file {title="Embedded Script Example" lang="bash"} -#!/bin/bash - -if [ -f /etc/apt/sources.list ]; then - apt update - apt -y install php -elif [-f /etc/yum.conf ]; then - yum -y install php -elif [-f /etc/pacman.conf ]; then - pacman -Sy - pacman -S --noconfirm pacman - pacman -S --noconfirm php -else - echo "Your distribution is not supported by this StackScript" - exit -fi - -cat >/opt/deployment-script.php < -EOF - -chmod +x /opt/deployment-script.php - -./opt/deployment-script.php -``` - -## Install Software Dependencies - -When using scripts other than bash, the underlying software supporting the scripting language may need to be installed to the operating system as part of the StackScript. This issue can be resolved by creating a simple StackScript in bash to install the required software, and then importing and executing the second StackScript which is using the desired language. For CentOS for example, this StackScript could be used to install python3, and apply a script that was previously created for it: - -```file {title="Example StackScript to Install Dependencies" lang="bash"} -#!/bin/bash -sudo dnf install -y python3 -source -python3 /root/ssinclude-1111 -``` \ No newline at end of file diff --git a/docs/products/tools/stackscripts/guides/manage/index.md b/docs/products/tools/stackscripts/guides/manage/index.md deleted file mode 100644 index e5c49e9598b..00000000000 --- a/docs/products/tools/stackscripts/guides/manage/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Manage StackScripts -title_meta: Manage StackScripts on the Linode Platform -description: "Learn how to view, edit, and manage StackScripts on your Linode account." -published: 2020-04-22 -modified: 2022-11-30 -keywords: ["automation", "scripts", "deployments", "instance"] -tags: ["linode platform","automation","cloud manager"] -aliases: ['/platform/stackscripts/creating-and-managing-stackscripts-a-tutorial/','/guides/creating-and-managing-stackscripts-a-tutorial/','/products/tools/stackscripts/guides/stackscripts-edit-stackscript/','/products/tools/stackscripts/guides/stackscripts-delete-stackscript/','/products/tools/stackscripts/guides/stackscripts-create-public-stackscript/'] ---- - -## View StackScripts - -Log in to [Cloud Manager](https://cloud.linode.com) and select **StackScripts** from the left menu. If any StackScripts exist on your account, they are listed on this page. - -![Screenshot of the StackScripts page in Cloud Manager](view-stackscripts.png) - -The **Account StackScripts** tab includes all of your account StackScripts, including those that are public. The **Community StackScripts** tab lists all StackScripts that are public, including those from other users. - -Each StackScript is displayed along with the username of user that created it, its label, and a brief description. There is also a corresponding table row for the last revision and the number of Compute Instances that have been deployed using the StackScript. - -## Create a New StackScript - -See [Create a StackScript](/docs/products/tools/stackscripts/guides/create/) for instructions. - -## Edit a StackScript - -1. Navigate to the **StackScripts** page in Cloud Manager. See [View StackScripts](#view-stackscripts). - -1. Locate the StackScript you wish to view or edit. Click on the corresponding **Edit** link, which may appear within the ellipsis menu. - - ![Screenshot of the edit button for a StackScript](stackscript-edit-button.png) - -1. The **Edit StackScript** page appears, which is similar to the **Create StackScript** form that's discussed within the [Create a StackScript](/docs/products/tools/stackscripts/guides/create/) guide. From here, you can update any field - including the script. - -1. Add a brief description of your changes to the **Revision Note** field and click the **Save Changes** button. - -## Make a StackScript Public - -Making an Account StackScript public allows the rest of the Linode community to access your script as a *Community StackScript*. - -1. Navigate to the **StackScripts** page in Cloud Manager. See [View StackScripts](#view-stackscripts). - -1. Locate the StackScript you wish to view or edit. Click on the corresponding **Make StackScript Public** link, which may appear within the ellipsis menu. - - ![Screenshot of the make public button for a StackScript](stackscript-make-public-button.png) - -1. A dialog box appears asking you to confirm that you wish to make the StackScript public. - - {{< note type="alert" >}} - While you can edit a public *Community StackScript*, you cannot delete it or make it private again. - {{< /note >}} - -{{< note >}} -Your public StackScript is available to you for use on the Account StackScripts tab. For users on other accounts, your StackScript is available to them from the Community StackScripts tab. -{{< /note >}} - -## Delete a StackScript - -{{< note >}} -You cannot delete Account StackScripts that have been made public. -{{< /note >}} - -1. Navigate to the **StackScripts** page in Cloud Manager. See [View StackScripts](#view-stackscripts). - -1. Locate the StackScript you wish to delete. Click on the corresponding **Delete** link, which may appear within the ellipsis menu. - - ![Screenshot of the edit button for a StackScript](stackscript-delete-button.png) - -1. A dialog box appears asking you to confirm the action. Click the **Delete StackScript** button if you would like to continue with the deletion. \ No newline at end of file diff --git a/docs/products/tools/stackscripts/guides/manage/stackscript-delete-button.png b/docs/products/tools/stackscripts/guides/manage/stackscript-delete-button.png deleted file mode 100644 index 5ba82f314cc..00000000000 Binary files a/docs/products/tools/stackscripts/guides/manage/stackscript-delete-button.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/manage/stackscript-edit-button.png b/docs/products/tools/stackscripts/guides/manage/stackscript-edit-button.png deleted file mode 100644 index 4ab0c418355..00000000000 Binary files a/docs/products/tools/stackscripts/guides/manage/stackscript-edit-button.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/manage/stackscript-make-public-button.png b/docs/products/tools/stackscripts/guides/manage/stackscript-make-public-button.png deleted file mode 100644 index 8e1c8d253ac..00000000000 Binary files a/docs/products/tools/stackscripts/guides/manage/stackscript-make-public-button.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/manage/view-stackscripts.png b/docs/products/tools/stackscripts/guides/manage/view-stackscripts.png deleted file mode 100644 index f4aa8648815..00000000000 Binary files a/docs/products/tools/stackscripts/guides/manage/view-stackscripts.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/use-cases/CommonUse_LinodeStackScripts.png b/docs/products/tools/stackscripts/guides/use-cases/CommonUse_LinodeStackScripts.png deleted file mode 100644 index 50ec1312638..00000000000 Binary files a/docs/products/tools/stackscripts/guides/use-cases/CommonUse_LinodeStackScripts.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/use-cases/Common_Use_Cases_for_Linode_StackScripts_1200x631.png b/docs/products/tools/stackscripts/guides/use-cases/Common_Use_Cases_for_Linode_StackScripts_1200x631.png deleted file mode 100644 index 5cba95e3eec..00000000000 Binary files a/docs/products/tools/stackscripts/guides/use-cases/Common_Use_Cases_for_Linode_StackScripts_1200x631.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/use-cases/index.md b/docs/products/tools/stackscripts/guides/use-cases/index.md deleted file mode 100644 index 31391e2b0c6..00000000000 --- a/docs/products/tools/stackscripts/guides/use-cases/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Common Use Cases for StackScripts" -description: "This guide covers some of the common use cases for Linode StackScripts along with limitations of the service." -published: 2020-05-21 -modified: 2022-11-30 -keywords: ['scripting','automation','bash','open source'] -image: CommonUse_LinodeStackScripts.png -tags: ["linode platform","automation"] -aliases: ['/platform/stackscripts/common-stackscripts-use-cases/','/guides/common-stackscripts-use-cases/'] ---- - -## Automating Common System Administration Tasks - -Whenever you deploy a new Linode, there are basic system administration tasks that you must perform, like installing system software updates, setting your Linode's hostname, setting the timezone, and securing your server. You can create a StackScript to automate all these steps and use it each time you deploy a new Linode. There are few limitations to what you can automate using a StackScript, because its underlying mechanism works just like any script you might execute on a Linux system. StackScripts ensure that each Linode you deploy is configured exactly to your preferences each time. - -Since you can make any StackScript public to the Linode Community, your entire team can use the StackScripts you create to easily deploy base identical systems. - -## Demonstrating your Software - -If you develop software, you can use StackScripts to deploy a demonstration instance of your software. The resulting system may not need to be particularly durable or be fully configured, since you can redeploy a new Linode exactly as written in your StackScript. This is an easy and reproducible way to spin up quick demos of your software. - -## Distributing your Software - -Community StackScripts are publicly available to the entire Linode Community. This means if you have an open source project you'd like to make easily available to Linode users, you can write a StackScript that installs and configures your project's software on a Linode. Include [user defined variables](/docs/products/tools/stackscripts/guides/write-a-custom-script/#declare-user-defined-fields-udfs) in your StackScript to make it customizable to users during each deployment of the StackScript. - -{{< note >}} -If you would also like to make your open source project available to the Linode Community as an App in the Linode Marketplace, see the [Linode App Marketplace page](https://www.linode.com/marketplace/) for details. -{{< /note >}} - -## Deploy Cluster Instances - -If your application makes use of a cluster of nodes, you may be able to automate the deployment of a new cluster-member by using StackScripts to configure the instance. StackScripts, in combination with the [Linode API](/docs/products/tools/api/), can help you to elastically automate deployment and management of a cluster's node. Similarly, you can apply the same concept to creating a [server appliance instance](https://en.wikipedia.org/wiki/Computer_appliance). \ No newline at end of file diff --git a/docs/products/tools/stackscripts/guides/write-a-custom-script/Writing_Scripts_for_Use_with_Linode_StackScripts_1200x631.png b/docs/products/tools/stackscripts/guides/write-a-custom-script/Writing_Scripts_for_Use_with_Linode_StackScripts_1200x631.png deleted file mode 100644 index 996928f79f3..00000000000 Binary files a/docs/products/tools/stackscripts/guides/write-a-custom-script/Writing_Scripts_for_Use_with_Linode_StackScripts_1200x631.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/guides/write-a-custom-script/index.md b/docs/products/tools/stackscripts/guides/write-a-custom-script/index.md deleted file mode 100644 index cc12971318b..00000000000 --- a/docs/products/tools/stackscripts/guides/write-a-custom-script/index.md +++ /dev/null @@ -1,226 +0,0 @@ ---- -title: "Write a Custom Script for Use with StackScripts" -description: "This guide details the StackScript system including script requirements, how to import an existing StackScript into a new StackScript, and more." -published: 2020-05-21 -modified: 2022-11-30 -keywords: ["automation", "scripts", "deployments", "instance"] -tags: ["linode platform","automation","cloud manager"] -image: Writing_Scripts_for_Use_with_Linode_StackScripts_1200x631.png -aliases: ['/platform/stackscripts/writing-scripts-for-use-with-linode-stackscripts-a-tutorial/','/guides/writing-scripts-for-use-with-linode-stackscripts-a-tutorial/'] ---- - -At the core of all StackScripts is a custom script that is written to perform a certain task (or collection of tasks). These custom scripts are written in a language that's supported by the targeted Linux distributions. Writing a custom script for a StackScript is largely the same as writing a custom script that you would execute from the command line or another program. This guide explains some important considerations as well as the special features that StackScripts support. - -## Before You Begin - -When creating a StackScript, most of the time is spent writing the deployment script itself. This script runs the first time a Compute Instance boots up and lets you configure the system to fit your precise needs and requirements. Before you write the script, consider the following: - -- **What is the purpose of your script?** The first question you should ask is *what purpose will your script serve*. Do you want to build a web server? Are you building a script to take care of securing new servers? Consider each task you want your script to perform. - -- **Which scripting language should be used for your script?** You can write the StackScript in any language that the distribution supports out of the box. Specifically, you need to specify the interpreter that is used to execute the script. Common scripting languages are bash and python. - -- **Which Linux distributions should the script support?** Since each distribution bundles different core software, the commands needed to install applications or configure networking vary between distributions. You need to determine which distributions you want to have available when deploying the Compute Instance. Then, you can customize your script to include commands for those distributions. - -- **Which dynamic variables do you want the user to set when deploying a Compute Instance?** Determine what information you wish to collect during deployment. These user variables can be defined through the use of UDF fields within the script. All UDF fields are visible in Cloud Manager when creating a Compute Instance based on the StackScript. - -## Components of a StackScript - -- **Interpreter** *(required)*: The scripting language and interpreter needed to execute the script. In the example below, the bash interpreter is used. See [Set the Language and Interpreter](#set-the-language-and-interpreter). - - ```file - #!/bin/bash - ``` - -- **Declaration of user-defined fields** *(optional)*: These fields are presented to the user in Cloud Manager during the deployment process. See [Declare User-Defined Fields (UDFs)](#declare-user-defined-fields-udfs). - - ```file {linenostart="2"} - # - ``` - -- **Import external StackScripts** *(optional)*: You can optionally import other StackScripts to reuse code. See [Import a StackScript](#import-a-stackscript). - - ```file {linenostart="3"} - source - ``` - -- **Script:** The rest of the StackScript should your deployment script. This preforms the tasks that you've outlined in the [Before You Begin](#before-you-begin) section. For example, the script below updates the system and installs PHP, NGINX, and MariaDB. - - ```file {linenostart="4"} - apt-get update && apt-get upgrade -y - apt-get install -y php nginx mariadb-server - ``` - -## Set the Language and Interpreter - -The primary requirement for your scripts is that the interpreter needed to execute your script should exist in each Linux distribution you are targeting. While bash is an obvious choice that's support by all of Linode's distribution images, you may choose another scripting language. - -The first line of the script must include a [*shebang*](https://en.wikipedia.org/wiki/Shebang_(Unix)) followed by the path to the interpreter that should be use. - -- **Bash:** `#!/bin/bash` -- **Python:** `#!/usr/bin/env python` -- **Python 3:** `#!/usr/bin/python3` - -## Declare User-Defined Fields (UDFs) - -The StackScript system provides a basic markup specification that interfaces with the Linode deployment process. This syntax allows users to customize the behavior of a StackScript on a per-deployment basis. When a StackScript contains a *user-defined field (UDF)*, Cloud Manager presents the UDF as a form field. The user can then insert a corresponding custom value into the field. The values and their related variables are inserted into the script's environment when used to deploy a new Compute Instance. - -{{< note >}} -UDF fields are only usable by scripts written in bash. -{{< /note >}} - -Use the following format to insert a UDF tag into a StackScript. - -```command {lang="text"} -# -``` - -{{< note >}} -The UDF tags are commented out to prevent execution errors, as the StackScript system parses the tags without removing them. -{{< /note >}} - -### UDF Attributes - -A UDF tag accepts the following attributes: - -- **Variable name** (*required*): - - `name="[variable-name]"` - - The variable name is the string you wish to use to reference this variable within the StackScript. The string must be alphanumeric (can include underscores), less than 64 characters in length, and be unique within the StackScript. - - {{< note >}} - If you would like to create a masked password input field, use the word `password` anywhere in the UDF `name` attribute. - {{< /note >}} - -- **Field label** (*required*): - - `label="[field-label]"` - - The label attribute is used when displaying the field to the user in Cloud Manager. This should be a short string that clearly indicates what the field is used for. If needed, you can also enter helper text using the `example` attribute. - -- **Helper text** (*optional*): - - `example="[helper-text]"` - - This text is displayed in Cloud Manager underneath the field. It should be used to further explain to the user what the field is used for. - -- **Select one** (*optional*): - - `oneOf="[value1],[value2],..."` - - A comma separated list of acceptable values for the field. These values are displayed either as radio boxes (if just 2 values are provided) or within a dropdown menu (if 3 or more values are provided). Only one value can be selected by the user. This cannot be used within the *manyOf* attribute (discussed below) within the same UDF tag. - -- **Select multiple** (*optional*): - - `manyOf="[value1],[value2],..."` - - A comma separated list of acceptable values for the field in any quantity, combination, or order. These values are displayed within a dropdown menu in Cloud Manager. Multiple values can be selected by the user. This cannot be used within the *oneOf* attribute (discussed above) within the same UDF tag. - -- **Default value** (*optional*): - - `default="[default-value]"` - - This defines the default value for this UDF. If no value is specified by the user during deployment, this default value is used. The default value is displayed to the user within Cloud Manager. - - - **String** (neither `oneOf` or `manyOf` are used): The default value can be any string and is displayed as plain text within the form field in Cloud Manager. - - **Select one** (`oneOf` attribute is defined): The default value needs to correspond with a single value defined in the `oneOf` attribute. This value is pre-selected in the radio field or dropdown box in Cloud Manager. - - **Select multiple** (`manOf` attribute is defined): The default value needs to correspond with one or more values defined in the `manyOf` attribute. If setting multiple values as the default, delimit them with a comma. These values are pre-selected in the dropdown box in Cloud Manager. - -## Default Environment Variables - -Linode StackScripts provide a set of default environment variables that you can use to provide your script with information about the Linode it has deployed. - -| Environment Variable | Description | -| -- | -- | -| `LINODE_ID` | The deployed Linode's ID number. | -| `LINODE_LISHUSERNAME` | The deployed Linode's full [Linode Shell (LISH)](/docs/guides/using-the-lish-console/) accessible name. | -| `LINODE_RAM` | The [RAM available on this Linode's plan](/docs/products/compute/compute-instances/plans/choosing-a-plan/#compute-resources). | -| `LINODE_DATACENTERID` | The ID number of the data center containing the Linode. You can use the [Linode API](/docs/api/regions/#regions-list) to see a list of all data center IDs. | - -### Set your Environment Variables Using an External File - -It is possible to set your script's environment variables using externally hosted files. The example Bash script uses the wget utility to download two files named `base.env` and `$IPADDR.env` from the external site `http://example.com/`. The `source` command loads the downloaded files into the script. - -```file {title="Example StackScript" lang="bash"} -... -IPADDR=$(/sbin/ifconfig eth0 | awk '/inet / { print $2 }' | sed 's/addr://') - -wget http://example.com/base.env --output-document=/tmp/base.env -wget http://example.com/$IPADDR.env --output-document=/tmp/system.env - -source /tmp/base.env -source /tmp/system.env -... -``` - -{{< note >}} -The files you reference within your script must exist and be accessible via `HTTP`. Also, ensure that the files you host externally do not contain any sensitive information. -{{< /note >}} - -## Import a StackScript - -Your scripts can import any other StackScript, including those from within your own account or those shared with the community. This lets you reuse code between StackScripts, minimizing the amount of new code you might need to write. - -- **Bash:** - - ```file - source - ``` - -- **Other scripting languages:** - - ```file - - ./ssinclude-[ID] - ``` - -In the example syntax above, replace *[ID]* with the ID corresponding to the StackScript you wish to use. You can find the ID by viewing the StackScript in Cloud Manager and copying the value within the **StackScript ID** field, as shown below: - -![Screenshot of the StackScript ID in Cloud Manager](stackscript-id.png) - -### Using the Linode StackScript Bash Library - -Linode provides a [StackScript Bash Library](https://cloud.linode.com/stackscripts/1) that includes a set of functions that perform various common tasks users might wish to execute on their Linodes. This script creates the functions, but does not run them. A new StackScript can import the Bash Library and then execute functions from it. - -{{< note >}} -Linode's [StackScript Bash Library's](https://cloud.linode.com/stackscripts/1) ID number is `1`. -{{< /note >}} - - -```file {title="Example StackScript using the Linode Bash Library"} -#!/bin/bash -source -system_update -system_install_package php wget nginx -``` - -## Example StackScript - -The file below displays an example of a simple script that executes some basic set up steps on a Linode. Review the example's comments for details on what each line of the script does. - -```file {title="Example Script" lang="bash"} -#!/bin/bash -# This block defines the variables the user of the script needs to provide -# when deploying using this script. -# -# -# -# HOSTNAME= -# -# -# FQDN= - -# This sets the variable $IPADDR to the IP address the new Linode receives. -IPADDR=$(/sbin/ifconfig eth0 | awk '/inet / { print $2 }' | sed 's/addr://') - -# This updates the packages on the system from the distribution repositories. -apt-get update -apt-get upgrade -y - -# This section sets the hostname. -echo $HOSTNAME > /etc/hostname -hostname -F /etc/hostname - -# This section sets the Fully Qualified Domain Name (FQDN) in the hosts file. -echo $IPADDR $FQDN $HOSTNAME >> /etc/hosts -``` \ No newline at end of file diff --git a/docs/products/tools/stackscripts/guides/write-a-custom-script/stackscript-id.png b/docs/products/tools/stackscripts/guides/write-a-custom-script/stackscript-id.png deleted file mode 100644 index 3e15081d7c9..00000000000 Binary files a/docs/products/tools/stackscripts/guides/write-a-custom-script/stackscript-id.png and /dev/null differ diff --git a/docs/products/tools/stackscripts/resources/index.md b/docs/products/tools/stackscripts/resources/index.md deleted file mode 100644 index 32680aef8ce..00000000000 --- a/docs/products/tools/stackscripts/resources/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Resources -title_meta: "Resources for StackScripts" -description: "Resources and other information related to Linode StackScripts including blog posts, community posts, and press releases." -published: 2020-04-22 -tab_group_main: - weight: 40 ---- - -## Blog Posts - -- [Introducing StackScripts](https://www.linode.com/blog/linode/introducing-stackscripts/) - -## Community Posts - -- [How to Debug StackScripts](https://www.linode.com/community/questions/5897/stackscripts-how-to-debug) - -- [More information StackScripts guide?](https://www.linode.com/community/questions/479/stackscript-guide) - -- [Basic StackScript Info](https://www.linode.com/community/questions/7394/basic-stackscript-info) - -- [SSH Keys with StackScripts](https://www.linode.com/community/questions/10394/ssh-keys) - -- [StackScripts with the API](https://www.linode.com/community/questions/10693/stackscripts-api) - -- [How do I Rebuild with a StackScript](https://www.linode.com/community/questions/17655/resolved-how-do-i-rebuild-from-stackscript-in-the-new-linode-cloud-manager) - -Browse our [Linode Community Questions & Answers page](https://www.linode.com/community/questions/) for more [related questions](https://www.linode.com/community/questions/search?query=stackscripts). - -## Press Releases - -- [Simplify Your Linode Deployment with StackScripts](https://medium.com/linode-cube/simplify-your-linode-deployment-with-stackscript-automation-e39ab3a2affb)