Cloud Native 9 min read

Step‑by‑Step Guide to Building a Kubernetes Cluster on RedHat 7 with etcd, Master, Minions, Quagga Networking, and kube‑ui

This tutorial walks through building a complete Kubernetes cluster on RedHat 7 using yum‑based packages, covering etcd installation, master and minion setup, container‑to‑container networking with quagga, and optional kube‑ui deployment, while highlighting common pitfalls and providing reference resources.

dbaplus Community
dbaplus Community
dbaplus Community
Step‑by‑Step Guide to Building a Kubernetes Cluster on RedHat 7 with etcd, Master, Minions, Quagga Networking, and kube‑ui

Introduction

Red Hat released yum repositories for Kubernetes and etcd for RHEL 7 in September. The guide demonstrates how to build a Kubernetes cluster on RHEL 7 using yum, covering etcd, master, minion nodes, container networking with quagga, and optional kube‑ui installation.

Cluster Architecture

The overall architecture is illustrated below.

Deployment Steps

1. Install and Configure etcd

Install etcd via yum and replace the default configuration with a script that filters the 192.* network. Then start the etcd service.

Configuration file after replacement:

2. Install and Configure kube‑master

Install the Kubernetes master packages, edit the default configuration files (shown in the screenshots), and start the master component.

Additional configuration files:

Start the master service:

3. Install and Configure kube‑minions

On each minion node, install Docker and the Kubernetes packages, copy the same configuration files used for the master, and start the services.

Configuration files for the minions:

Start Docker and the kubelet on each minion:

Verify the cluster nodes from the master:

4. Enable Container‑to‑Container Networking with quagga

Install the bridge‑utils (brctl) tool, delete the default docker0 bridge, and create a new bridge kbr0. Assign a unique IP to each node (e.g., 172.11.11.1 for minion1, 172.12.12.1 for minion2) and adjust the Docker daemon to use kbr0. Restart the network service and Docker.

If a pre‑built quagga Docker image is available, load it with docker load and run the container. After a few seconds, verify that the routing table has been updated.

5. Install kube‑ui (Optional)

Kube‑ui provides a simple web UI to view node resource usage, replication controllers, services, and pods. Because the official image on gcr.io is blocked in China, the image is downloaded from a Baidu Cloud link and loaded locally with docker load.

Three YAML manifests are required: kube-system.yaml, kube-ui-rc.yaml, and kube-ui-svc.yaml. They are applied in that order.

kubectl create -f kube-system.yaml
kubectl create -f kube-ui-rc.yaml
kubectl create -f kube-ui-svc.yaml

After deployment, the UI can be accessed at http://<kube‑master>:8080/ui:

Summary of Common Pitfalls

The guide avoids typical problems such as incomplete network configuration, missing bridge setup, and forgetting to import the kube‑ui image on all nodes.

References

High‑availability Docker infrastructure

CentOS 7 practical Kubernetes deployment

Kubernetes official documentation

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

KubernetesetcdRHELkube-masterkube-minionkube-uiquagga
dbaplus Community
Written by

dbaplus Community

Enterprise-level professional community for Database, BigData, and AIOps. Daily original articles, weekly online tech talks, monthly offline salons, and quarterly XCOPS&DAMS conferences—delivered by industry experts.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.