Posted  by  admin

Download Preflight For Mac 1.1.1

We are going to build a highly available Kubernetes homelab cluster with three control plane nodes and three worker nodes.

The Pangu iOS 7.1.1 jailbreak team has finally made available download links of Mac version of their now infamous tool. Pangu jailbreak tool was originally released for Windows last week. Windows version of the tool has also been bumped to version 1.1.0 today, adding support for English language, dumping i0n1c’s exploit for a new exploit of. Download PlaneAtHand and enjoy it on your iPhone, iPad, and iPod touch. ‎The PlaneAtHand app provides a ready reference for aircraft performance data for selected aircraft models. It is intended to be an 'at hand' reference and as such presents the most relevant data. VLC project page - download precompiled binaries for Windows, Mac OS X, and various Linux distros, or get source code or other information; Helix Player - play back streaming multimedia in Linux. Helix Player is a multimedia player designed for streaming audio and video, and available for Linux and cell phones running the Symbian OS.

Highly Available Kubernetes Homelab Cluster

The kubeadm tool is great if you need a simple way to deploy Kubernetes, and integrate it into provisioning systems such as Ansible. I use Ansible a lot nowadays, but before I got to the point of automating my Kubernetes homelab, I had to do it by hand. You can’t automate what you don’t understand.

As we will be deploying three Kubernetes control plane nodes, we need to deploy a kube-apiserver load balancer in front of them. The load balancer distributes traffic to all healthy control plane nodes in its target list. HAProxy is my homelab load balancer of choice, and we will configure it with Keepalived to provide node redundancy. If one of the HAProxy servers becomes unavailable, the other one will serve traffic.

We will use three KVM hosts to deploy resources. The goal is to maintain service in the event of a loss of a (single) hypervisor host.

Pre-requisites

For Kubernetes, we will use 3 control-plane nodes and 3 worker nodes. We will also use 2 servers for HAProxy to provide high availability with a virtual IP addess of 10.11.1.30.

We will need a DNS server. My DNS server configuration is described here and won’t be covered in this article. One small change is that I stopped using hl.local and moved to a reserved top level DNS name hl.test (see rfc2606 for more info).

Below are our requirements for the installation:

  1. 2 servers for HAProxy with Keepalived, running CentOS 7, 1 CPU, 1 GB RAM, 8 GB disk.
  2. 3 servers for control-plane nodes, running CentOS 7, 2 CPU, 4 GB RAM, 16 GB disk.
  3. 3 servers for worker nodes, running CentOS 7, 2 CPU, 6 GB RAM, 16 GB disk.
  4. Full network connectivity between all machines in the cluster.
  5. sudo privileges on all machines.
  6. SSH access from one device to all nodes in the system.
  7. A DNS server with a DNS entry for the HAProxy load balancer pointing to a virtual IP address 10.11.1.30.

I use PXE boot to provision servers. Starting with a pair of admin servers already running from my previous homelab deployment.

I have provisioned three master nodes:

I have also provisioned three worker nodes:

Download Preflight For Mac 1.1.1 Download

This is what the end result looked like:

I have also configured passwordless root SSH authentication from one device (my laptop) to all nodes in the system:

My DNS record for HAProxy:

Homelab details can be seen in the table below.

HostnameIP addressRAM (MB)Notes
admin1.hl.test10.11.1.21024DNS/DHCP master, NTP, SMTP, HAProxy master, Keepalived
admin2.hl.test10.11.1.31024DNS/DHCP slave, NTP, SMTP, HAProxy backup, Keepalived
kubelb.hl.test10.11.1.30N/AVirtual IP address for HAProxy/keepalived
srv31.hl.test10.11.1.314096Kubernetes control plane
srv32.hl.test10.11.1.324096Kubernetes control plane
srv33.hl.test10.11.1.334096Kubernetes control plane
srv34.hl.test10.11.1.346144Kubernetes worker node
srv35.hl.test10.11.1.356144Kubernetes worker node
srv36.hl.test10.11.1.366144Kubernetes worker node
Mac

These are my KVM hypervisor details.

HostnameIP addressCPU CoresRAM (MB)Notes
kvm1.hl.test10.11.1.21828672Physical KVM host with SSD storage
kvm2.hl.test10.11.1.22816384Physical KVM host with SSD storage
kvm3.hl.test10.11.1.23816384Physical KVM host with SSD storage

Homelab network diagram below.

Software

Kubernetes development continues to grow at a rapid pace, and keeping up to date can be a challenge. Therefore it’s important to know which software versions can work together without breaking things.

Software used in this article:

  1. CentOS 7
  2. calico 3.17
  3. kubeadm 1.19.7
  4. kubelet 1.19.7
  5. kubectl 1.19.7
  6. kubernetes-cni 0.8.7
  7. docker-ce 19.03

According to Calico project documentation, Calico 3.17 has been tested against the following Kubernetes versions: 1.17, 1.18, 1.19. Kubernetes 1.20 is not on the list yet, therefore we are going to use 1.19.

Unfortunatelly I could not find supported Docker versions in the Relase Notes for Kubernetes 1.19, so I decided to use docker-ce 19.03.

SELinux set to enforcing mode and firewalld is enabled on all servers.

1 Install and Configure HAProxy Load Balancer with Keepalived

Run these commands on both servers admin1 and admin2.

1.1 Configure Firewalld

Configure firewall to allow inbound HAProxy traffic on kube-apiserver port:

Configure firewall to allow inbound traffic for HAProxy stats:

Configure firewall to allow VRRP traffic to pass between the keepalived nodes:

1.2 Configure SELinux

Allow HAProxy to listen on kube-apiserver port 6443:

1.3 Install Packages

1.4 Configure HAProxy

Add the following configuration to file /etc/haproxy/haproxy.cfg, keeping in mind that our virtual IP address is 10.11.1.30:

Enable and start the haproxy service:

You can access HAProxy stats page by navigating to the following URL: http://10.11.1.30:8080/. Username is “admin”, and password is “haproxy”.

Note: the screenhost was taken after deploying Kubernetes.

1.5 Configure Keepalived

The host’s kernel needs to be configured to allow a process to bind to a non-local IP address. This is because non-active VRRP nodes will not have the virtual IP configured on any interfaces.

Configure the master keepalived node admin1 by adding the following content to /etc/keepalived/keepalived.conf:

Configure the backup keepalived node admin2 by adding the following content to /etc/keepalived/keepalived.conf:

Enable and start the keepalived service:

2 Install Docker Packages

Run these commands on all Kubernetes servers.

Install the yum-utils package (which provides the yum-config-manager utility) and set up the stable repository.

Install Docker engine:

Start and enable service:

3 Install Kubernetes Packages and Disable Swap

Run these commands on all Kubernetes servers.

Our PXE boot servers don’t have swap configured by default, but in case you do, disable it. Running kubelet with swap on is not supported.

Set up the repository. Add the following to /etc/yum.repos.d/kubernetes.repo:

We exclude all Kubernetes packages from any system upgrades because they have a special process that has to be followed.

Install kubeadm, kubelet and kubectl:

Enable kubelet service:

Note that the kubelet is now in a crashloop and restarting every few seconds, as it waits for kubeadm to tell it what to do.

4 Configure kubelet Eviction Thresholds

Run these commands on all Kubernetes servers.

Download Preflight For Mac 1.1.1 Full

Unless resources are set aside for system daemons, Kubernetes pods and system daemons will compete for resources and eventually lead to resource starvation issues. Kubelet has the extra args parameter to specify eviction thresholds that trigger the kubelet to reclaim resources.

Restart kubelet service:

5 Let iptables see Bridged Traffic

Run these commands on all Kubernetes servers.

6 Configure Firewalld

6.1 Firewall Rules for Control-plane Nodes

Run these commands on Kubernetes control-plane nodes only.

We are going to open the following ports on the control-plane nodes:

  1. 8443 – Kubernetes API server
  2. 2379,2380 – etcd server client API
  3. 2381 – etcd metrics API
  4. 10250 – Kubelet API
  5. 10251 – kube-scheduler
  6. 10252 – kube-controller-manager
  7. 179 – Calico networking (BGP)
Download Preflight For Mac 1.1.1

One interesting note here, I kept getting CoreDNS crashes like this one:

CoreDNS crashes with error “Failed to list v1.Service: Get https://10.96.0.1:443/api/v1/***: dial tcp 10.96.0.1:443: connect: no route to host”.

Download Preflight For Mac 1.1.1 Pc

I added masquerade to firewalld and I think it helped fix the problem.

6.2 Firewall Rules for Worker Nodes

Run these commands on Kubernetes worker nodes only.

We are going to open the following ports on the worker nodes:

  1. 10250 – Kubelet API
  2. 30000-32767 – NodePort Services
  3. 179 – Calico networking (BGP)

7 Initialise the First Control Plane Node

7.1 Initialise One Master Node Only

Run these commands on the first control plane node srv31 only.

Command output (note that your output will be different than what is provided below):

7.2 Configure Kube Config on Your Local Machine

Run the following commands on your local machine (e.g. your laptop):

7.3 Install Calico Pod Network

Run the following commands on your local machine (e.g. your laptop) where you have kubectl configured.

Make sure that the control-plane node status is ready:

8 Join Other Control Plane Nodes to the Cluster

Run the following command on control-plane nodes srv32 and srv33.

Note that your actual command will be different than what is provided below!

The output should contain the following lines:

9 Join Worker Nodes to the Cluster

Run the following command on worker nodes srv34, srv35 and srv36.

Note that your actual command will be different than what is provided below!

The output should contain the following lines:

10 Verify the Cluster

To verify, run the following commands on your local machine where you have kubectl configured.

This concludes the Kubernetes homelab cluster installation using kubeadm.

Related Kubernetes Homelab Articles

References

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/


Spotlighting lets you share this post with all of your followers. This is a great way to help new players get the recognition they deserve for their work.

Click the Spotlight button below and all of your followers will receive a notification.

If you are on Mac, copy this URL to the clipboard and press CTRL+V while in the designer in SimpleRockets 2 to download this craft.

If you are on mobile, then try requesting the mobile version of the site. You can learn more about how to do that here. Otherwise, just click the Download for Mobile button below.

7 downloads

Project is continued from Vanilla Instructor GTO V 4, with major revisions and completed!

Rocket Flying 101, in action! You do all the flying, I'll do all the guiding, we make it all the way 👍 😊

V 1.0 is finally here for the virtual instructor! Get a full course on basic rocket control, from preflight all the way to walking away safely from Touchdown. Guidance is provided the entire way to help you get into orbit, see what it's about, and make it back down without going BOOM!

Too much to list, as well as a lot of bells & whistles in this version. Fly it!

Heads up, the Vizzy is rather huge! Still seems to run quite smooth, but it's not on good terms with the editor trying to show it 🙈. Just be careful with clicks/taps, have a little patience for it to load, and while browsing it if you decide to open the flight program to take a look.

How to put the script into your own rockets in the pinned comment

GENERAL INFO

  • Created On:Windows
  • Game Version:0.9.802.0
  • Price:$8,240k
  • Number of Parts:38
  • Dimensions:48 m x 24 m x 24 m

PERFORMANCE

  • Total Delta V:4.3km/s
  • Total Thrust:1.9MN
  • Engines:2
  • Wet Mass:1.65E+5kg
  • Dry Mass:71,401kg

STAGES

StageEnginesDelta VThrustBurnMass
1 1 1.7km/s 1.7MN 2.2m 1.65E+5kg
3 1 2.6km/s 228kN 4.0m 33,979kg

4 Comments

  • * How to add the script to your own creation: *
    Difficulty: Beginner...

    • trying to decscribe, I noticed it's not quite plug and play yet and requires a couple of small changes, so I will set up the script to be plug and play, and upload it into another Craft file as a command pod only and provide the craft file link in a new comment so it notifies those interested when it's finished 😊
    Pinned one month ago
  • Because of the neumerous amount of scenarios it is equipped to handle, and because of the length of time in flight to test each possibility, I'm sure I was not able to trigger all of the possible paths to success. It's solid but still possible for a bug or glitch to happen! I had phenomenal flights every time but I'm just one person testing 😊. Please do note in the comments here if anything out of the ordinary seems to be happening. Flashing text to craft messages is normal while changing the pitch on nav sphere, I can't read the pitch setting from the nav sphere so they have to flip back and forth at half a second each while it's being changed so you can see what you're setting it to 🙈 sorry, if I find another way I'll make an update.

    Pinned one month ago
  • Part 1 of 6, the launch controller, is up. Something new but will be part of the new system for any rocket to use. (Script only) (Craft File Link: ![](https://www.simplerockets.com/c/nGQ5Zd/F-A-D-Auto-Launch-Controller-v-0-9-Script-Only)

    28 days ago
  • I've got quite a few spectacular ideas for the script to plug and play in your rocket. Lot less jabber and quite a few options based on skill level 😊, may take a short bit to restructure, but it will be one powerful tool for flight assistance

    one month ago

No Upvotes