Skip to content

Commit

Permalink
changed links first progress
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristianLempa committed Jan 15, 2023
1 parent 6190c72 commit 0a92b5a
Show file tree
Hide file tree
Showing 48 changed files with 683 additions and 641 deletions.
8 changes: 4 additions & 4 deletions apps/argocd.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Argo CD
**Argo CD** is a declarative, GitOps continuous delivery tool for **Kubernetes ([[kubernetes]])**. It allows application definitions, configurations, and environments should be declarative and version controlled. Application deployment and lifecycle management should be automated, auditable, and easy to understand.
**Argo CD** is a declarative, GitOps continuous delivery tool for **[Kubernetes](kubernetes/kubernetes.md). It allows application definitions, configurations, and environments should be declarative and version controlled. Application deployment and lifecycle management should be automated, auditable, and easy to understand.

Documentation & Project Homepage: [Argo CD Docs](https://argo-cd.readthedocs.io/en/stable/)

---
## Installation

1. Install Argo CD on a **Kubernetes ([[kubernetes]])** Cluster, using **kubectl ([[kubectl]])**.
1. Install Argo CD on a **[Kubernetes](kubernetes/kubernetes.md) Cluster, using [kubectl](kubernetes/kubectl)**.

```bash
kubectl create namespace argocd

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
```

2. Add **Traefik IngressRoute ([[traefik]])**.
2. Add **[Traefik](apps/traefik.md) IngressRoute.

```yaml
apiVersion: traefik.containo.us/v1alpha1
Expand Down Expand Up @@ -63,7 +63,7 @@ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.pas

1. Create a github token: https://github.com/settings/tokens

2. Add new repository in ArgoCD via **kubectl ([[kubectl]])** or the GUI
2. Add new repository in ArgoCD via **[kubectl](kubernetes/kubectl) or the GUI

```yaml
apiVersion: v1
Expand Down
8 changes: 4 additions & 4 deletions apps/bind9.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Bind9

Bind9 is an open-source fully-featured DNS ([[dns]]) system.
Bind9 is an open-source fully-featured [DNS](networking/dns) system.

Project Homepage: https://www.isc.org/bind/

---
## Installation

ISC provides executables for Windows and packages for Ubuntu ([[ubuntu]]) and CentOS ([[centos]]) and Fedora ([[fedora]]) and Debian ([[debian]]) - BIND 9 ESV, Debian - BIND 9 Stable, Debian - BIND 9 Development version. Most operating systems also offer BIND 9 packages for their users. These may be built with a different set of defaults than the standard BIND 9 distribution, and some of them add a version number of their own that does not map exactly to the BIND 9 version.
ISC provides executables for Windows and packages for [Ubuntu](linux/distros/ubuntu.md), [CentOS](linux/distros/centos.md), [Fedora](linux/distros/fedora.md) and [Debian](linux/distros/debian.md) - BIND 9 ESV, Debian - BIND 9 Stable, Debian - BIND 9 Development version. Most operating systems also offer BIND 9 packages for their users. These may be built with a different set of defaults than the standard BIND 9 distribution, and some of them add a version number of their own that does not map exactly to the BIND 9 version.


### Ubuntu Linux
Expand All @@ -21,7 +21,7 @@ sudo apt install bind9

### Ubuntu Docker

As part of the [Long Term Supported OCI Images](https://ubuntu.com/security/docker-images), Canonical offers Bind9 as a hardened and maintained Docker Docker ([[docker]]).
As part of the [Long Term Supported OCI Images](https://ubuntu.com/security/docker-images), Canonical offers Bind9 as a hardened and maintained [Docker](docker/docker.md).

```sh
docker run -d --name bind9-container -e TZ=UTC -p 30053:53 ubuntu/bind9:9.18-22.04_beta
Expand Down Expand Up @@ -86,7 +86,7 @@ www IN A 192.168.254.7

#### SOA (Start of Authority)

A start of authority record ([[soa-record]]) is a type of resource record in the Domain Name System (DNS) containing administrative information about the zone, especially regarding zone transfers. The SOA record format is specified in RFC 1035.
A start of authority record is a type of resource record in the Domain Name System ([DNS](networking/dns.md)) containing administrative information about the zone, especially regarding zone transfers. The SOA record format is specified in RFC 1035.

```conf
@ IN SOA ns1.domain.tld. hostmaster.domain.tld. (
Expand Down
4 changes: 2 additions & 2 deletions apps/cert-manager.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Cert-Manager
Cert-manager adds certificates and certificate issuers as resource types in **Kubernetes ([[kubernetes]])** clusters, and simplifies the process of obtaining, renewing and using those certificates.
Cert-manager adds [certificates](misc/ssl-certs) and certificate issuers as resource types in [Kubernetes Clusters](kubernetes/kubernetes.md), and simplifies the process of obtaining, renewing and using those [certificates](misc/ssl-certs).

Documentation & Project Homepage: [Cert-Manager Docs](https://cert-manager.io/docs/)

Expand All @@ -8,7 +8,7 @@ Documentation & Project Homepage: [Cert-Manager Docs](https://cert-manager.io/do

### Upload existing CA.key and CA.crt files (Option 1)

1. Create a self-signed CA ([[ssl-certs]]) creating a ca.key (private-key) and ca.crt (certificate)
1. Create a self-signed CA creating a ca.key (private-key) and ca.crt (certificate)

(ca.key)
```bash
Expand Down
2 changes: 1 addition & 1 deletion apps/longhorn.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Longhorn
Longhorn is a lightweight, reliable and easy-to-use distributed block storage system for **Kubernetes ([[kubernetes]]).
Longhorn is a lightweight, reliable and easy-to-use distributed block storage system for [Kubernetes](kubernetes/kubernetes.md).

Project Homepage: [Longhorn Homepage](https://longhorn.io)
Documentation: [Longhorn Docs](https://longhorn.io/docs/)
Expand Down
2 changes: 1 addition & 1 deletion apps/portainer.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Portainer
Easily deploy, configure and secure containers in minutes on **Docker ([[docker]])**, **Kubernetes ([[kubernetes]])**, Swarm and Nomad in any cloud, datacenter or device.
Easily deploy, configure and secure containers in minutes on [Docker](docker/docker.md), [Kubernetes](kubernetes/kubernetes.md), Swarm and Nomad in any cloud, datacenter or device.

Project Homepage: [Portainer](https://www.portainer.io)
Documentation: [Portainer Docs](http://documentation.portainer.io)
Expand Down
2 changes: 1 addition & 1 deletion apps/rancher.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Rancher
**Rancher**, the open-source multi-cluster orchestration platform, lets operations teams deploy, manage and secure enterprise **Kubernetes ([[kubernetes]])**.
Rancher, the open-source multi-cluster orchestration platform, lets operations teams deploy, manage and secure enterprise [Kubernetes](kubernetes/kubernetes.md).

Project Homepage: [Rancher Homepage](https://www.rancher.com)

Expand Down
2 changes: 1 addition & 1 deletion apps/tailscale.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Tailscale
**Tailscale** is a zero config **VPN ([[vpn]])** for building secure networks, powered by **WireGuard ([[wireguard]])**. Install on any device in minutes. Remote access from any network or physical location.
Tailscale is a zero config [VPN](networking/vpn.md) for building secure networks, powered by [wireguard](networking/wireguard.md). Install on any device in minutes. Remote access from any network or physical location.

Project Homepage: https://tailscale.com

Expand Down
2 changes: 1 addition & 1 deletion apps/traefik.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Traefik
Traefik is an open-source Edge Router for **Docker ([[docker]])**, and **Kubernetes ([[kubernetes]])** that makes publishing your services a fun and easy experience. It receives requests on behalf of your system and finds out which components are responsible for handling them.
Traefik is an open-source Edge Router for [Docker](docker/docker.md), and [Kubernetes](kubernetes/kubernetes.md) that makes publishing your services a fun and easy experience. It receives requests on behalf of your system and finds out which components are responsible for handling them.

---
## Dashboard and API
Expand Down
1 change: 0 additions & 1 deletion cloud/provider/cloud-provider-comparison.md

This file was deleted.

2 changes: 2 additions & 0 deletions cloud/provider/digitalocean.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# DigitalOcean

1 change: 1 addition & 0 deletions databases/mysql.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# MySQL
2 changes: 1 addition & 1 deletion databases/sqlite.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

SQLite is a relational database contained in a C library. In contrast to many other databases, SQLite is not a client-server database engine. Rather, it's embedded into an end program.

SQLite generally follows the PostgreSQL ([[postgres]]) syntax but does not enforce type checking.
SQLite generally follows the [PostgreSQL](databases/postgres.md) syntax but does not enforce type checking.

You can open a SQLite Database with `sqlite3 <filename>` directly.

Expand Down
3 changes: 2 additions & 1 deletion tools/helm.md → kubernetes/helm.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Helm Cheat-Sheet
# Helm

## Repository Management
COMMAND | DESCRIPTION
---|---
Expand Down
50 changes: 0 additions & 50 deletions kubernetes/k3s-install-ha-embeddeddb.md

This file was deleted.

26 changes: 0 additions & 26 deletions kubernetes/k3s-install-ha-externaldb.md

This file was deleted.

Empty file removed kubernetes/k3s-install-single.md
Empty file.
111 changes: 106 additions & 5 deletions kubernetes/k3s.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,119 @@
# K3S
Lightweight Kubernetes ([[kubernetes]]). Production ready, easy to install, half the memory, all in a binary less than 100 MB.
Lightweight [Kubernetes](kubernetes/kubernetes.md). Production ready, easy to install, half the memory, all in a binary less than 100 MB.

Project Homepage: [K3s.io](https://www.k3s.io/)
Documentation: [K3s Documentation](https://docs.k3s.io/)

---
## Installation
To install k3s, you can follow different approaches.

**K3s with external DB ([[k3s-install-ha-externaldb]])** - Set up an HA K3s cluster backed by an external datastore such as MySQL, PostgreSQL, or etcd.
To install k3s, you can follow different approaches like setting up k3s with an **external database**, **embedded database**, or as a **single node**.

**K3s with embedded DB ([[k3s-install-ha-embeddeddb]])** - Set up an HA K3s cluster that leverages a built-in distributed database.

**K3s single node** ([[k3s-install-single]]) -Set up K3s as a single node installation.
### K3s with external DB

Set up an HA K3s cluster backed by an external datastore such as MySQL, PostgreSQL, or etcd.

#### Install Database

Install [MariaDB](databases/mariadb.md).

#### Install Servers
```bash
curl -sfL https://get.k3s.io | sh -s - server \
--token=YOUR-SECRET \
--datastore-endpoint='mysql://user:pass@tcp(ipaddress:3306)/dbname' \
--node-taint CriticalAddonsOnly=true:NoExecute \
--tls-san your-dns-name --tls-san your-lb-ip-address
```

#### Node-Taint

By default, server nodes will be schedulable and thus your workloads can get launched on them. If you wish to have a dedicated control plane where no user workloads will run, you can use taints. The node-taint parameter will allow you to configure nodes with taints, for example `--node-taint CriticalAddonsOnly=true:NoExecute`.

#### SSL Certificates

To avoid certificate errors in such a configuration, you should install the server with the `--tls-san YOUR_IP_OR_HOSTNAME_HERE` option. This option adds an additional hostname or IP as a Subject Alternative Name in the TLS cert, and it can be specified multiple times if you would like to access via both the IP and the hostname.

#### Get a registered Address

TODO: WIP

#### Install Agents

TODO: WIP

```bash
curl -sfL https://get.k3s.io | sh -s - agent \
--server https://your-lb-ip-address:6443 \
--token YOUR-SECRET
```


### K3s with embedded DB

Set up an HA K3s cluster that leverages a built-in distributed database.

TODO: WIP

#### Install first Server

TODO: WIP

```bash
curl -sfL https://get.k3s.io | sh -s - server \
--token=YOUR-SECRET \
--tls-san your-dns-name --tls-san your-lb-ip-address \
--cluster-init
```

To avoid certificate errors in such a configuration, you should install the server with the `--tls-san YOUR_IP_OR_HOSTNAME_HERE` option. This option adds an additional hostname or IP as a Subject Alternative Name in the TLS cert, and it can be specified multiple times if you would like to access via both the IP and the hostname.

#### Install additional Servers

TODO: WIP

```bash
curl -sfL https://get.k3s.io | sh -s - server \
--token=YOUR-SECRET \
--tls-san your-dns-name --tls-san your-lb-ip-address \
--server https://IP-OF-THE-FIRST-SERVER:6443
```

The `--cluster-init` initializes an HA Cluster with an embedded etcd database. The fault tolerance requires an odd number, minimum three, nodes to function.

Total Number of nodes | Failed Node Tolerance
---|---
1|0
2|0
3|1
4|1
5|2
6|2
...|...

#### Get a registered Address

To achieve a high-available scenario you also need to load balance incoming connections between the server nodes.

TODO: WIP

#### Install Agents

You can still add additional nodes without a server function to this cluster.

```bash
curl -sfL https://get.k3s.io | sh -s - agent \
--server https://your-lb-ip-address:6443 \
--token YOUR-SECRET
```


### K3s single node

Set up K3s as a single node installation.

TODO: WIP

---
## Manage K3S
Expand Down
14 changes: 5 additions & 9 deletions kubernetes/k9s.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# K9s
K9s is a command line interface to easy up managing Kubernetes([[kubernetes]]) clusters.

K9s is a command line interface to easy up managing [Kubernetes Clusters](kubernetes/kubernetes.md).

Core features of k9s are for instance:
- Editing of resource manifests
Expand All @@ -8,18 +9,12 @@ Core features of k9s are for instance:

More information and current releases of k9s, can be found on their [Github repository](https://github.com/derailed/k9s).

**Screenshots:**

<img src="https://github.com/derailed/k9s/blob/master/assets/screen_po.png?raw=true"/>
<img src="https://github.com/derailed/k9s/blob/master/assets/screen_logs.png?raw=true"/>
<img src="https://github.com/derailed/k9s/blob/master/assets/screen_dp.png?raw=true"/>

---
## Installation

### On Linux

1. Find and download the latest release
#### Find and download the latest release

Check the release page [here](https://github.com/derailed/k9s/releases) and search for the
fitting package type (e.g. Linux_x86_64). Copy the link to the archive of your choice.
Expand All @@ -30,7 +25,8 @@ wget https://github.com/derailed/k9s/releases/download/v0.26.6/k9s_Linux_x86_64.
tar -xvf k9s_Linux_x86.tar.gz
```

2. Install k9s
#### Install k9s

```bash
sudo install -o root -g root -m 0755 k9s /usr/local/bin/k9s
```
Expand Down
Loading

0 comments on commit 0a92b5a

Please sign in to comment.