Skip to content

Commit

Permalink
Merge pull request #7160 from jddocs/rc-v1.357.0
Browse files Browse the repository at this point in the history
[Release Candidate] v1.357.0
  • Loading branch information
jddocs authored Dec 5, 2024
2 parents 259fd42 + 21a554c commit 7528b0c
Show file tree
Hide file tree
Showing 10 changed files with 445 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
slug: manually-deploy-kafka-cluster
title: "Manually Deploy an Apache Kafka Cluster on Akamai"
description: "Learn how to deploy and test a secure Apache Kafka cluster on Akamai using provided, customizable Ansible playbooks."
authors: ["Akamai"]
contributors: ["Akamai"]
authors: ["John Dutton","Elvis Segura"]
contributors: ["John Dutton","Elvis Segura"]
published: 2024-11-20
keywords: ['apache kafka','kafka','data stream','stream management']
license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "Use the Open-source PgAdmin Program to Securely Manage Remote Post
authors: ["Linode"]
contributors: ["Linode"]
published: 2010-04-30
modified: 2018-11-29
modified: 2024-11-21
keywords: ["pgadmin", "mac os x", "postgresql gui", "manage postgresql databases", "ssh tunnel"]
license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)'
aliases: ['/databases/postgresql/pgadmin-macos-x/','/databases/postgresql/securely-manage-remote-postgresql-servers-with-pgadmin-on-macos-x/']
Expand All @@ -18,62 +18,76 @@ tags: ["database","postgresql"]

![Securely Manage Remote PostgreSQL Servers with pgAdmin on Mac OS X](Securely_Manage_Remote_PostgreSQL_Servers_with_pgAdmin_on_Mac_OS_X_smg.jpg)

pgAdmin is a free, open-source PostgreSQL database administration GUI for Microsoft Windows, Apple Mac OS X and Linux systems. It offers excellent capabilities with regard to database server information retrieval, development, testing, and ongoing maintenance. This guide will help you get up and running with pgAdmin on Mac OS X, providing secure access to remote PostgreSQL databases. It is assumed that you have already installed PostgreSQL on your Linode in accordance with our [PostgreSQL installation guides](/docs/databases/postgresql/).
pgAdmin is a free, open-source PostgreSQL database administration GUI for Microsoft Windows, Apple Mac OS X, and Linux systems. It features capabilities with regard to database server information retrieval, development, testing, and ongoing maintenance. This guide provides steps to get you up and running with pgAdmin on Mac OS X, providing secure access to remote PostgreSQL databases.

## Install pgAdmin
## Before You Begin

1. Visit the [pgAdmin download page](https://www.pgadmin.org/download/pgadmin-4-macos/) to obtain the most recent version of the program. Save the installer to your desktop and launch it. Read the license agreement and click the "Agree" button to continue.
1. If you have not already done so, create a Linode account and Compute Instance. See our [Getting Started with Linode](/docs/products/platform/get-started/) and [Creating a Compute Instance](/docs/products/compute/compute-instances/guides/create/) guides.

![pgAdmin on Mac OS X installer license agreement dialog](pg-admin-tos.png)
1. Follow our [Setting Up and Securing a Compute Instance](/docs/products/compute/compute-instances/guides/set-up-and-secure/) guide to update your system. You may also wish to set the timezone, configure your hostname, create a limited user account, and harden SSH access.

2. After the program has uncompressed itself, you'll see a pgAdmin icon in a Finder window. You may drag this to your Applications folder or your dock.
1. Install PostgreSQL on your Linode using one of our [PostgreSQL installation guides](/docs/databases/postgresql/).

1. After starting pgAdmin, open a new pgAdmin window by selecting the pgAdmin logo in the menu bar and selecting "New pgAdmin 4 window..."
{{< note >}}
This guide is written for a non-root user. Commands that require elevated privileges are prefixed with `sudo`. If you’re not familiar with the `sudo` command, see the [Linux Users and Groups](/docs/guides/linux-users-and-groups/) guide.
{{< /note >}}

![pgAdmin on Mac OS X menu bar icon menu](pg-admin-open-new-window.png)
## Install pgAdmin

A new window will be displayed in your web browser with the pgAdmin interface.
1. Visit the [pgAdmin download page](https://www.pgadmin.org/download/pgadmin-4-macos/) to obtain the most recent version. Save the installer to your desktop and launch it. Read the license agreement and click the "Agree" to continue.

## Configure SSH Tunnel
![pgAdmin on Mac OS X installer license agreement dialog](pg-admin-tos.png)

While PostgreSQL supports SSL connections, it is not advisable to instruct it to listen on public IP addresses unless absolutely necessary. For this reason, you'll be using the following command to create an SSH tunnel to your database server, replacing `username` with your Linux username and `remote-host` with your Linode's hostname or IP address:
1. After the program is installed, you'll see a pgAdmin icon in a Finder window. You may drag this to your Applications folder or your dock.

ssh -f -L 5433:127.0.0.1:5432 username@remote-host -N
1. Start the pgAdmin interface. A welcome page should be displayed:

Although PostgreSQL uses port 5432 for TCP connections, we're using the local port 5433 in case you decide to install PostgreSQL locally later on.
![pgAdmin on Mac OS X menu bar icon menu](pg-admin-open-welcome-window.png)

## Use pgAdmin

1. Launch pgAdmin and you'll be presented with a default view containing no servers. Right click "Servers" and then navigate to "Create > Server".

![pgAdmin III default view on Mac OS X](pg-admin-new-server.png)

2. If you're having problems connecting, you may need to check PostgreSQL's configuration to ensure it accepts connections. Modify the following lines in `/etc/postgresql/9.5/main/postgresql.conf` if necessary:

{{< file "/etc/postgresql/9.5/main/postgresql.conf" aconf >}}
listen_addresses = 'localhost'

port = 5432

{{< /file >}}
1. Open **pgAdmin 4**.
2. In the **Quick Links** section, click **Add New Server**.
3. Under the **General** tab, enter a name for your server connection. For example: `Linode PostgreSQL`
4. Navigate to the **Connection** tab:
- **Hostname/address**: `localhost`.
The SSH tunnel redirects this to the Linode server.
- **Port**: The PostgreSQL port on your Linode, typically `5432`.
- **Maintenance Database**: `postgres` or your database name.
- **Username**: Your PostgreSQL username. For example: `postgres`
- **Password**: The password for your PostgreSQL user.
5. Navigate to the **SSH Tunnel** tab:
- **Use SSH tunneling**: Enable this option.
- **Tunnel host**: Your Linode's IP address.
- **Tinnel port**: `22` . This is the default SSH port.
- **Username**: Your SSH username for the Linode instance.
- **Authentication**: Choose `Identity file` if you are using an SSH key, or `Password` for password-based authentication.
- **Identity file**: If you are using an SSH key, provide the location of the private key file.
- **Password**: If you are using password-based authentication, enter your SSH password.
6. Click **Save** to create the server connection.

### Verify Connection

Restart PostgreSQL to activate these changes. This command may vary among different distributions:
1. After saving the configuration, right-click your new server in **pgAdmin** and select **Connect**.
2. If the connection is successful, you should see your databases listed in the **Servers** panel.

sudo systemctl restart postgresql
### Troubleshooting

3. In the "Create-Server" dialog that appears, enter a name for your server.
- **SSH Access Issues**: Ensure your Linode firewall allows port `22`.

![Supply a local name for your server.](pg-admin-server-name.png)
- **PostgreSQL Bind Address**:

4. In the "Connections" tab enter "localhost" for the "Host name/address" field, as you'll be connecting via your SSH tunnel, and set the port to 5433. In the username and password fields, enter the credentials you specified when setting up PostgreSQL.
1. Check the PostgreSQL `postgresql.conf` file to confirm it's listening on `127.0.0.1` or `localhost`. Update `listen_addresses` if necessary:

For greater security, uncheck the "Save password" box. Click "Save" to connect to your server.
```file
listen_addresses = 'localhost'
```

![pgAdmin new server connection settings on Mac OS X](pg-admin-server-connection-settings.png)
2. Restart PostgreSQL after making changes:

5. You will be presented with a full view of the databases that your user account has access to:
```command
sudo systemctl restart postgresql
```

![pgAdmin full database view on Mac OS X](pg-admin-database-view.png)
- **Firewall**: Ensure PostgreSQL's port (`5432`) is open for local connections.

Congratulations! You've securely connected to your remote PostgreSQL server with pgAdmin 4.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ og_description: "This guide includes steps for installing the Linode Cloud Contr
authors: ["Linode"]
contributors: ["Linode"]
published: 2020-07-16
modified: 2024-12-05
keywords: ['kubernetes','cloud controller manager','load balancing','nodebalancers']
tags: ["docker","networking","kubernetes"]
license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)'
Expand All @@ -18,21 +19,27 @@ The [Linode Cloud Controller Manager (CCM)](https://github.com/linode/linode-clo
NodeBalancers provide your Kubernetes cluster with a reliable way of exposing resources to the public internet. The Linode CCM handles the creation and deletion of the NodeBalancer, and, along with other Master Plane components, 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 >}}
This guide will show you how to manually install the Linode CCM on an unmanaged Kubernetes cluster. This guide exists to support special use cases. For example, if you would like to experiment with various elements of a Kubernetes control plane.
This guide shows you how to manually install the Linode CCM on an **unmanaged** Kubernetes cluster. This guide exists to support special use cases. For example, if you would like to experiment with various elements of a Kubernetes control plane.

If you would like to use Kubernetes for production scenarios and make use of Linode NodeBalancers to expose your cluster's resources, it is recommended that you [use the Linode Kubernetes Engine to deploy your cluster](/docs/products/compute/kubernetes/). An LKE cluster's control plane has the Linode CCM preinstalled and does not require any of the steps included in this guide.

Similarly, if you would like to deploy an unmanaged Kubernetes cluster on Linode, the best way to accomplish that is using [Terraform and the Linode K8s module](/docs/guides/how-to-provision-an-unmanaged-kubernetes-cluster-using-terraform/). The Linode K8s module will also include the Linode CCM preinstalled on the Kubernetes master's control plane and does not require any of the steps included in this guide.
Another option for deploying Kubernetes clusters on Linode is to use [Cluster API Provider Linode (CAPL)](https://linode.github.io/cluster-api-provider-linode/). It provisions a management Kubernetes cluster which can then be used to provision and manage multiple other child Kubernetes clusters on Linode. It installs CCM by default and supports provisioning Kubernetes clusters using kubeadm, rke2 and k3s.

If you have used the Linode Kubernetes Engine (LKE) or the Linode Terraform K8s module to deploy your cluster, you should instead refer to the [Getting Started with Load Balancing on a Linode Kubernetes Engine (LKE) Cluster](/docs/products/compute/kubernetes/guides/load-balancing/) guide for steps on adding and configuring NodeBalancers on your Kubernetes cluster.
If you have used the Linode Kubernetes Engine (LKE) or Cluster API Provider Linode (CAPL) to deploy your cluster, you should refer to the [Getting Started with Load Balancing on a Linode Kubernetes Engine (LKE) Cluster](/docs/products/compute/kubernetes/guides/load-balancing/) guide for steps on adding and configuring NodeBalancers on your Kubernetes cluster.
{{< /note >}}

## In this Guide

You will manually install the Linode CCM on your unmanaged Kubernetes cluster. This will include:
Instructions are shown for manually installing the Linode CCM on your unmanaged Kubernetes cluster. This includes:

- [Updating your Kubernetes cluster's configuration](#update-your-cluster-configuration) to use the CCM for Node scheduling.
- [Using a helper script to create a manifest file](#install-the-linode-ccm) that will install the Linode CCM and supporting resources on your cluster.

- Two options for installing the Linode CCM:

- [Using a Helm chart](#install-linode-ccm-using-helm)

- [Using a helper script to create a manifest file](#install-linode-ccm-using-generated-manifest)

- [Updating the Linode CCM](#updating-the-linode-ccm) running on your cluster with its latest upstream changes.

### Before You Begin
Expand All @@ -45,9 +52,7 @@ You will manually install the Linode CCM on your unmanaged Kubernetes cluster. T

1. Ensure you have [kubectl installed](/docs/guides/how-to-provision-an-unmanaged-kubernetes-cluster-using-terraform/#install-kubectl) on your local computer and you can access your Kubernetes cluster with it.

1. [Install Git](/docs/guides/how-to-install-git-on-linux-mac-and-windows/) on your local computer.

1. Generate a [Linode APIv4 token](/docs/products/tools/api/get-started/#get-an-access-token).
1. Generate a [Linode APIv4 token](/docs/products/tools/api/get-started/#get-an-access-token). This is required for both methods of installing the Linode CCM in this guide.

## Running the Linode Cloud Controller Manager

Expand All @@ -60,13 +65,34 @@ In order to run the Linode Cloud Controller Manager:

These configurations will change the behavior of your cluster and how it interacts with its Nodes. For more details, visit the [upstream Cloud Controller documentation](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/).

### Install the Linode CCM
### Install Linode CCM using Helm

The Linode CCM's GitHub repository provides a helper script that creates a Kubernetes manifest file that you can use to install the CCM on your cluster. These steps should be run on your local computer and were tested on a macOS.
Installing the Linode CCM using Helm is the preferred method. Helm chart contents are available in [deploy/chart directory of the linode-cloud-controller-manager GitHub repository](https://github.com/linode/linode-cloud-controller-manager/tree/main/deploy/chart).

{{< note >}}
You will need your [Linode APIv4](/docs/products/tools/api/get-started/#get-an-access-token) token to complete the steps in this section.
{{< /note >}}
1. [Install Helm](https://helm.sh/docs/intro/install/)

1. Install the `ccm-linode` repo.

```command
helm repo add ccm-linode https://linode.github.io/linode-cloud-controller-manager/
helm repo update ccm-linode
```

1. Deploy the `ccm-linode` Helm chart.

```command
export LINODE_API_TOKEN={{< placeholder "YOUR_LINODE_API_TOKEN" >}}
export REGION={{< placeholder "YOUR_LINODE_REGION" >}}
helm install ccm-linode --set apiToken=$LINODE_API_TOKEN,region=$REGION ccm-linode/ccm-linode
```

For advanced configuration, one can specify their own [values.yaml](https://github.com/linode/linode-cloud-controller-manager/blob/main/deploy/chart/values.yaml) file when installing the Helm chart.

### Install Linode CCM using Generated Manifest

The Linode CCM's GitHub repository provides a helper script that creates a Kubernetes manifest file that you can use to install the CCM on your cluster. These steps should be run on your local computer and were tested on a macOS workstation.
1. [Install Git](/docs/guides/how-to-install-git-on-linux-mac-and-windows/) on your local computer.
1. Clone the [Linode CCM's GitHub repository](https://github.com/linode/linode-cloud-controller-manager).

Expand Down Expand Up @@ -98,6 +124,15 @@ You will need your [Linode APIv4](/docs/products/tools/api/get-started/#get-an-a
You can create your own `ccm-linode.yaml` manifest file by editing the contents of the `ccm-linode-template.yaml` file and changing the values of the `data.apiToken` and `data.region` fields with your own desired values. This template file is located in the `deploy` directory of the Linode CCM repository.
{{< /note >}}

{{< note >}}
Helm can also be used to render the ccm-linode Helm chart and apply it manually.
{{< /note >}}

```command
cd linode-cloud-controller-manager/
helm template --set apiToken=$LINODE_API_TOKEN,region=$REGION deploy/chart/
```

## Updating the Linode CCM

The easiest way to update the Linode CCM is to edit the DaemonSet that creates the Linode CCM Pod. To do so:
Expand All @@ -111,13 +146,13 @@ The easiest way to update the Linode CCM is to edit the DaemonSet that creates t
1. The CCM Daemonset manifest will appear in vim. Press `i` to enter insert mode. Navigate to `spec.template.spec.image` and change the field's value to the desired version tag. For instance, if you had the following image:
```file
image: linode/linode-cloud-controller-manager:v0.2.2
image: linode/linode-cloud-controller-manager:v0.4.12
```
You could update the image to `v0.2.3` by changing the image tag:
You could update the image to `v0.4.20` by changing the image tag:
```file
image: linode/linode-cloud-controller-manager:v0.2.3
image: linode/linode-cloud-controller-manager:v0.4.20
```
For a complete list of CCM version tags, visit the [CCM DockerHub page](https://hub.docker.com/r/linode/linode-cloud-controller-manager/tags).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ You don’t want to have to type in your credentials every time you access a sha
1. Set ownership of the credentials file to the current user by running the following command:
```command
sudo chown <User Name>:<Credentials Filename>
sudo chown <User Name[:Group Name]> <Credentials Filename>
```
Replace `<User Name>` with your username and `<Credentials Filename>` with the name of your credentials file.
Expand Down Expand Up @@ -223,4 +223,4 @@ The share should not appear in the output of this command.
## Conclusion
You now have an understanding of SMB (and CIFS), what an SMB share is, and what a mount point is. These pieces of information allow you to share remote data in a way that’s transparent to users. From the user's perspective, the resource is local to the server that they’re accessing. This guide also shows you how to use the mount and umount commands in a basic way to create and delete shares, how to create and use a credentials file to automate the sharing process to some extent, and how to automatically remount the share after a reboot.
You now have an understanding of SMB (and CIFS), what an SMB share is, and what a mount point is. These pieces of information allow you to share remote data in a way that’s transparent to users. From the user's perspective, the resource is local to the server that they’re accessing. This guide also shows you how to use the mount and umount commands in a basic way to create and delete shares, how to create and use a credentials file to automate the sharing process to some extent, and how to automatically remount the share after a reboot.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 7528b0c

Please sign in to comment.