API
The Gcore Customer Portal is being updated. Screenshots may not show the current version.
Edge Cloud
Edge Cloud
OverviewBillingTerraform
API
Chosen image
Home/Edge Cloud/Bare Metal servers/Create a Bare Metal server

Create a Bare Metal server

Bare Metal server in the cloud is a machine deployed on dedicated physical hardware for a single tenant.

Physical servers are being managed from the regular Cloud interface, but the virtualization software is not installed on the servers.

What is the difference between a Virtual Server and a Bare Metal?

A Virtual Server in the cloud does not interact directly with a physical computer; it uses a software layer called a hypervisor. The hypervisor allocates physical computing resources such as CPU, RAM, and Storage for each Virtual Machine (VM). The computing resources for these VMs are allocated from the shared physical hardware on which the created Virtual Server data is deployed. The hypervisor acts as a traffic cop of sorts, directing and allocating the Bare Metal's resources to each of the various new virtual machines, ensuring they don't disrupt each other.

The disadvantage of a Virtual Server is limited performance, which can be critical for some applications.

Bare Metal is considered to be a more high-performance solution.

In this case, all physical server resources are allocated to a single user and can provide better performance than a comparable Virtual Server. Resources are not shared, as in the case of Virtual Machine, and the hypervisor level is not required, which allows the application to allocate more computing resources.

Please note that due to the features of the Bare Metal infrastructure, creating a compatible custom image requires a special program to build the image for a physical server and code from a dedicated repository.

We have prepared very detailed instructions with all the necessary files available via the link.

Create a Bare Metal server

Physical machines are created inside the project. You can use the default project or create a new one (for more information, see the article "How to create and delete a project").

Note! By default, physical servers are not available for ordering. To create a physical server, you need to request a quota increase.

Quotas of physical machines are carried out according to the server types: "Basic", "High-frequency", and "Infrastructure". For more information on managing quotas, read the article "Reqest a quota increase.

To create a Bare Metal:

1. In the Gcore Customer Portal, navigate to Cloud > Bare Metal.

2. Click Create Bare Metal.

Bare metal page in Customer Portal

3. Select the region.

4. Select the image to install. You can choose a system from the prepared templates or from custom images that you've previously uploaded. You can find more information about uploading the images in the article "Upload an image to the storage". Consider that only prepared images can be used for Bare Metal servers.

A menu with available OS images

5. Select the server type. Currently, "High-Frequency" and "Infrastructure" servers are available.

A menu with available server types

6. Add network interfaces. You can create a public and private interface.

Note that after creating a Bare Metal server, you won’t be able to attach an external network to it. Additionally, you can’t attach more than six networks to the server.

If you select a public interface, you can also enable the Use reserved IP toggle and assign a reserved IP address to your Bare Metal.

A menu with available network settings and highlighed reserved ip toggle

If you select a private interface, configure a network and a subnetwork according to the following steps.

If you need both a public and private interface, disable the default gateway on the private network's subnetwork and assign a floating IP to the private interface.

Configure a network

If you previously created networks, select the needed network from the dropdown. To add a new network, click Private network radio button and configure the network as follows.

1. Enter the network name.

2. Ensure that the Bare Metal network toggle is enabled. This is required to connect Bare Metal servers to the network.

3. (Optional) Turn on the Add tags toggle to add metadata to the network.

4. Click Create network.

A menu with available network settings and highlighed reserved ip toggle

5. (Optional) Enable IPv6 dual-stack to assign both IPv4 and IPv6 addresses for network interfaces of worker nodes and pods. If the Enable IPv6 dual-stack toggle is not available, make sure that at least one pool from your cluster is in a public network. If your Kubernetes cluster is only connected to a private network, you also need to configure and add an IPv6 subnetwork.

Note that to activate IPv6 dual-stack, you only need to configure a network interface. The subnetwork will be automatically selected.

Configure a subnetwork

If your Bare Metal server has several subnetworks, ensure that only one subnetwork is routable. Otherwise, there will be a conflict with the default gateway on the server, and you might not be able to connect to the Bare Metal.

If you previously created subnetworks, select the needed subnetwork from the dropdown. If you choose Automatic, the system will use one of the existing subnetworks, which has most available resources.

To add a new subnetwork, click Add a new subnetwork and configure according to the following instructions: Create a subnetwork.

7. Add an SSH key or generate a new one for a remote connection to a server. For more information about adding a key, read the article Connect to your Bare Metal via SSH. You can connect via SSH to all machines except Windows servers.

A menu with ssh keys settings settings

If you select Windows OS, you should set a password for the Admin user. It can contain Latin letters (a-zA-Z), numbers (0-9) and special characters (!#$%&'()*+,-./:;<=>?@[]^_{|}~). Valid length is from 8 to 16 characters. You can connect to the Windows server from the Customer Portal or from your computer using the RDP protocol.

A menu with access settings

8. In Additional options, you can add metadata for processing by a cloud-init agent running on a Virtual Machine. To do it insert your script in the User data field.

A menu with user data settings

For example, you may insert a script that will allow connecting to a Linux server directly from the Customer Portal or via SSH (this script is not needed to connect to a Windows server). Enter this code with the password chosen by you into the User data field:

#cloud-config  
password: **your password**  
chpasswd: { expire: False }  
ssh_pwauth: True

Using the specified password you will be able to connect to the server. It is not necessary to specify the password explicitly, you can enter its hash (the same password, only in a converted form; the system will be able to read it, but for a person, it looks like a random set of symbols). Then, even if someone gets into the system, he or she won’t know the password — only the hash will be stored inside. And the system will open its doors only to the user who knows the password.

To generate a hash, you can use the Python script:

#!/usr/bin/env python3  
\# based on [https://stackoverflow.com/a/17992126/117471](https://stackoverflow.com/a/17992126/117471)  
\# pip3 install passlib  
import sys  
from getpass import getpass  
from passlib.hash import sha512_crypt  
passwd = input() if not sys.stdin.isatty() else getpass()  
print(sha512_crypt.hash(passwd , rounds = 5000 ))

9. Tags are key-value pairs that form the metadata of the machine description. Also, you can tag your server. To to do it, activate the Tags option, and set the necessary ones.

A menu with tag settings

10. If you want to create multiple Bare Metal machines with the same configuration, specify the number you want (the maximum is limited by your quotas) and add names (only Latin characters, underscores, spaces, and dots are allowed).

To complete the configuration, click Create server, and then the server will be deployed in the cloud.

A menu with option to choose a number of servers

Limitations of Bare Metal servers

There are several important limitations for Bare Metal servers:

  • You can't add an external volume to the server
  • You can't change the volume configuration
  • It's not possible to add more than 6 networks to the server
  • Once a Bare Metal server is deployed, the private network interface can be attached or detached only manually via the OS.

Was this article helpful?

Not a Gcore user yet?

Discover our offerings, including virtual instances starting from 3.7 euro/mo, bare metal servers, AI Infrastructure, load balancers, Managed Kubernetes, Function as a Service, and Centralized Logging solutions.

Go to the product page
// // Initialize a variable to undefined initially. // var growthBook = undefined; // (function() { // try { // var script = document.createElement('script'); // script.src = "https://cdn.jsdelivr.net/npm/@growthbook/growthbook/dist/bundles/auto.min.js"; // script.setAttribute("data-api-host", "https://cdn.growthbook.io"); // script.setAttribute("data-client-key", "sdk-truekA5wvhMYaqsu"); // document.head.appendChild(script); // script.onload = function() { // console.log("GrowthBook script loaded successfully."); // growthBook = window.GrowthBook; // Assuming GrowthBook attaches itself to window // }; // script.onerror = function() { // console.error("Failed to load the GrowthBook script."); // growthBook = undefined; // Explicitly set to undefined on error // }; // } catch (error) { // console.error("An error occurred while setting up the GrowthBook script:", error); // growthBook = undefined; // } // })(); // // Optional: Push to dataLayer if needed // window.dataLayer = window.dataLayer || []; // window.dataLayer.push({ // 'event': 'scriptLoadStatus', // 'growthBookStatus': growthBook ? "Loaded" : "Failed" // });