init
This commit is contained in:
commit
fd2e1f7dca
16
Readme.md
Normal file
16
Readme.md
Normal file
@ -0,0 +1,16 @@
|
||||
# Configs
|
||||
|
||||
## Hypervisor
|
||||
|
||||
Configurations made on the VM hypervisor.
|
||||
|
||||
- [HAProxy](hypervisor/haproxy/Readme.md)
|
||||
- [interfaces](hypervisor/interfaces/Readme.md)
|
||||
- [VM routing](hypervisor/routing/Readme.md)
|
||||
|
||||
## K8s
|
||||
|
||||
Configurations and services for k8s.
|
||||
|
||||
- [Traefik](k8s/traefik/Readme.md)
|
||||
- [ZFS-provisioner](k8s/zfs-provisioner/Readme.md)
|
20
hypervisor/haproxy/Readme.md
Normal file
20
hypervisor/haproxy/Readme.md
Normal file
@ -0,0 +1,20 @@
|
||||
# HAProxy
|
||||
|
||||
The loadbalancer running on the hypervisor, this forwards traffic to all the nodes.
|
||||
|
||||
## Requirements
|
||||
|
||||
- [docker](https://docs.docker.com/engine/install/debian/)
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
# copy to /opt/haproxy on the hypervisor
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Config
|
||||
|
||||
- Add ports to *docker-compose.yml* 'ports' section.
|
||||
- Add backend to *haproxy.conf* with all the nodes' IPs.
|
||||
- Make sure to match it with the traefik or service definitions in k8s.
|
9
hypervisor/haproxy/docker-compose.yml
Normal file
9
hypervisor/haproxy/docker-compose.yml
Normal file
@ -0,0 +1,9 @@
|
||||
services:
|
||||
haproxy:
|
||||
image: haproxy:3.1
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80/tcp
|
||||
- 443:443/tcp
|
||||
volumes:
|
||||
- ./haproxy.conf:/usr/local/etc/haproxy/haproxy.cfg:ro
|
29
hypervisor/haproxy/haproxy.conf
Normal file
29
hypervisor/haproxy/haproxy.conf
Normal file
@ -0,0 +1,29 @@
|
||||
global
|
||||
daemon
|
||||
maxconn 2048
|
||||
|
||||
defaults
|
||||
mode tcp
|
||||
timeout connect 5s
|
||||
timeout client 30s
|
||||
timeout server 30s
|
||||
|
||||
frontend http
|
||||
bind *:80
|
||||
default_backend traefik_http
|
||||
|
||||
frontend https
|
||||
bind *:443
|
||||
default_backend traefik_https
|
||||
|
||||
backend traefik_http
|
||||
balance roundrobin
|
||||
server node1 192.168.123.28:30080 check
|
||||
server node2 192.168.123.27:30080 check
|
||||
server node3 192.168.123.42:30080 check
|
||||
|
||||
backend traefik_https
|
||||
balance roundrobin
|
||||
server node1 192.168.123.28:30443 check
|
||||
server node2 192.168.123.27:30443 check
|
||||
server node3 192.168.123.42:30443 check
|
6
hypervisor/interfaces/10-lan0.link
Normal file
6
hypervisor/interfaces/10-lan0.link
Normal file
@ -0,0 +1,6 @@
|
||||
[Match]
|
||||
MACAddress=1c:98:ec:12:50:60
|
||||
|
||||
[Link]
|
||||
Name=lan0
|
||||
WakeOnLan=magic
|
6
hypervisor/interfaces/10-lan1.link
Normal file
6
hypervisor/interfaces/10-lan1.link
Normal file
@ -0,0 +1,6 @@
|
||||
[Match]
|
||||
MACAddress=1c:98:ec:12:50:61
|
||||
|
||||
[Link]
|
||||
Name=lan1
|
||||
WakeOnLan=magic
|
6
hypervisor/interfaces/10-lan2.link
Normal file
6
hypervisor/interfaces/10-lan2.link
Normal file
@ -0,0 +1,6 @@
|
||||
[Match]
|
||||
MACAddress=1c:98:ec:12:50:62
|
||||
|
||||
[Link]
|
||||
Name=lan2
|
||||
WakeOnLan=magic
|
6
hypervisor/interfaces/10-lan3.link
Normal file
6
hypervisor/interfaces/10-lan3.link
Normal file
@ -0,0 +1,6 @@
|
||||
[Match]
|
||||
MACAddress=1c:98:ec:12:50:63
|
||||
|
||||
[Link]
|
||||
Name=lan3
|
||||
WakeOnLan=magic
|
5
hypervisor/interfaces/20-lan.network
Normal file
5
hypervisor/interfaces/20-lan.network
Normal file
@ -0,0 +1,5 @@
|
||||
[Match]
|
||||
Name=lan*
|
||||
|
||||
[Network]
|
||||
Bridge=br0
|
4
hypervisor/interfaces/30-br0.netdev
Normal file
4
hypervisor/interfaces/30-br0.netdev
Normal file
@ -0,0 +1,4 @@
|
||||
[NetDev]
|
||||
Name=br0
|
||||
Kind=bridge
|
||||
MACAddress=none
|
5
hypervisor/interfaces/40-br0.link
Normal file
5
hypervisor/interfaces/40-br0.link
Normal file
@ -0,0 +1,5 @@
|
||||
[Match]
|
||||
OriginalName=br0
|
||||
|
||||
[Link]
|
||||
MACAddressPolicy=none
|
10
hypervisor/interfaces/50-br0.network
Normal file
10
hypervisor/interfaces/50-br0.network
Normal file
@ -0,0 +1,10 @@
|
||||
[Match]
|
||||
Name=br0
|
||||
|
||||
[Network]
|
||||
Address=192.168.1.232/24
|
||||
Gateway=192.168.1.1
|
||||
DNS=192.168.1.1
|
||||
DNS=1.1.1.3#family.cloudflare-dns.com
|
||||
DNS=1.0.0.3#family.cloudflare-dns.com
|
||||
DNSOverTLS=yes
|
4
hypervisor/interfaces/60-vm0.netdev
Normal file
4
hypervisor/interfaces/60-vm0.netdev
Normal file
@ -0,0 +1,4 @@
|
||||
[NetDev]
|
||||
Name=vm0
|
||||
Kind=bridge
|
||||
MACAddress=none
|
5
hypervisor/interfaces/70-vm0.link
Normal file
5
hypervisor/interfaces/70-vm0.link
Normal file
@ -0,0 +1,5 @@
|
||||
[Match]
|
||||
OriginalName=vm0
|
||||
|
||||
[Link]
|
||||
MACAddressPolicy=none
|
6
hypervisor/interfaces/80-vm0.network
Normal file
6
hypervisor/interfaces/80-vm0.network
Normal file
@ -0,0 +1,6 @@
|
||||
[Match]
|
||||
Name=vm0
|
||||
|
||||
[Network]
|
||||
Address=192.168.123.1/24
|
||||
Gateway=192.168.1.1
|
17
hypervisor/interfaces/Readme.md
Normal file
17
hypervisor/interfaces/Readme.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Network interfaces
|
||||
|
||||
## Requirements
|
||||
|
||||
- systemd-networkd
|
||||
|
||||
## Configure
|
||||
|
||||
```sh
|
||||
# copy files to /etc/systemd/network
|
||||
# change mac addresses if needed
|
||||
# change 50-br0.network as desired
|
||||
systemctl mask NetworkManager.service
|
||||
systemctl disable NetworkManager.service
|
||||
systemctl enable --now systemd-networkd.service
|
||||
update-initramfs -u -a
|
||||
```
|
19
hypervisor/routing/Readme.md
Normal file
19
hypervisor/routing/Readme.md
Normal file
@ -0,0 +1,19 @@
|
||||
# VM routing
|
||||
|
||||
Enable IPv4 forwarding for VM access from outside for NAT.
|
||||
|
||||
## Requirements
|
||||
|
||||
- iptables-persistent
|
||||
- libvirt
|
||||
- systemd-newtorkd
|
||||
|
||||
## Configure
|
||||
|
||||
Change the IP ranges and the LAN intreface (eg. br0) of the hypervisor in the commands.
|
||||
|
||||
```sh
|
||||
iptables -I FORWARD -s 192.168.1.0/24 -d 192.168.123.0/24 -j ACCEPT
|
||||
iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -o br0 -j MASQUERADE
|
||||
netfilter-persistent save
|
||||
```
|
159
k8s/keepalived/keepalived.yml
Normal file
159
k8s/keepalived/keepalived.yml
Normal file
@ -0,0 +1,159 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: keepalived
|
||||
|
||||
---
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: keepalived
|
||||
namespace: keepalived
|
||||
data:
|
||||
keepalived-generic.conf: |-
|
||||
global_defs {
|
||||
default_interface $INTERFACE
|
||||
enable_script_security
|
||||
}
|
||||
|
||||
vrrp_instance VI_1 {
|
||||
state BACKUP
|
||||
interface $INTERFACE
|
||||
virtual_router_id 172
|
||||
priority 20
|
||||
advert_int 3
|
||||
authentication {
|
||||
auth_type PASS
|
||||
auth_pass $PASSWORD
|
||||
}
|
||||
|
||||
virtual_ipaddress {
|
||||
$VIP label $INTERFACE:PUB_VIP
|
||||
}
|
||||
}
|
||||
|
||||
init.sh: |-
|
||||
#!/bin/sh
|
||||
set -e
|
||||
cat /keepalived-generic.conf | sed -e "s/\$INTERFACE/$INTERFACE/g" -e "s/\$PASSWORD/$PASSWORD/g" -e "s/\$VIP/$VIP/g" > /keepalived.conf
|
||||
chown root /keepalived.conf && chmod 600 /keepalived.conf
|
||||
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: keepalived
|
||||
namespace: keepalived
|
||||
type: Opaque
|
||||
data:
|
||||
password: WXVjaDVkb28=
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
labels:
|
||||
app: keepalived
|
||||
name: keepalived-public
|
||||
namespace: keepalived
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: keepalived
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: keepalived
|
||||
spec:
|
||||
initContainers:
|
||||
- image: lettore/keepalived:latest
|
||||
imagePullPolicy: Always
|
||||
name: generate-config
|
||||
command: ["/bin/bash", "/init.sh"]
|
||||
env:
|
||||
- name: VIP
|
||||
value: 192.168.123.240
|
||||
- name: INTERFACE
|
||||
value: lan0
|
||||
- name: PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: keepalived
|
||||
key: password
|
||||
volumeMounts:
|
||||
- mountPath: /keepalived.conf
|
||||
name: generated-config
|
||||
- mountPath: /keepalived-generic.conf
|
||||
name: generic-config
|
||||
subPath: keepalived-generic.conf
|
||||
- mountPath: /init.sh
|
||||
name: init
|
||||
subPath: init.sh
|
||||
containers:
|
||||
- image: lettore/keepalived:latest
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- pidof
|
||||
- keepalived
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
name: keepalived
|
||||
resources: {}
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_ADMIN
|
||||
privileged: true
|
||||
terminationMessagePath: /dev/termination-log
|
||||
terminationMessagePolicy: File
|
||||
volumeMounts:
|
||||
- mountPath: /etc/localtime
|
||||
name: host-localtime
|
||||
- mountPath: /usr/local/etc/keepalived/keepalived.conf
|
||||
name: generated-config
|
||||
dnsPolicy: ClusterFirstWithHostNet
|
||||
hostNetwork: true
|
||||
priorityClassName: system-cluster-critical
|
||||
restartPolicy: Always
|
||||
schedulerName: default-scheduler
|
||||
securityContext: {}
|
||||
terminationGracePeriodSeconds: 30
|
||||
tolerations:
|
||||
- key: CriticalAddonsOnly
|
||||
operator: Exists
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/master
|
||||
- effect: NoSchedule
|
||||
key: node-role.kubernetes.io/control-plane
|
||||
volumes:
|
||||
- name: generic-config
|
||||
configMap:
|
||||
name: keepalived
|
||||
items:
|
||||
- key: keepalived-generic.conf
|
||||
path: keepalived-generic.conf
|
||||
- name: init
|
||||
configMap:
|
||||
name: keepalived
|
||||
items:
|
||||
- key: init.sh
|
||||
path: init.sh
|
||||
- name: generated-config
|
||||
hostPath:
|
||||
path: /tmp/keepalived.conf
|
||||
type: FileOrCreate
|
||||
- name: host-localtime
|
||||
hostPath:
|
||||
path: /etc/localtime
|
||||
type: ""
|
||||
updateStrategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 0
|
||||
maxUnavailable: 100%
|
||||
type: RollingUpdate
|
21
k8s/traefik/Readme.md
Normal file
21
k8s/traefik/Readme.md
Normal file
@ -0,0 +1,21 @@
|
||||
# Traefik
|
||||
|
||||
This service provides ingress routing for other services.\
|
||||
Exposed ports need to be added to the load balancer's config (eg. HAproxy on the VM hypervisor).
|
||||
|
||||
## Requirements
|
||||
|
||||
- keepalived -> moving VirtualIP
|
||||
|
||||
## Configure
|
||||
|
||||
- match virtual IP to externalIPs
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
kubectl create namespace traefik
|
||||
helm repo add traefik https://traefik.github.io/charts
|
||||
helm repo update
|
||||
helm install traefik traefik/traefik --namespace=traefik -f values.yml
|
||||
```
|
1105
k8s/traefik/example.yml
Normal file
1105
k8s/traefik/example.yml
Normal file
File diff suppressed because it is too large
Load Diff
27
k8s/traefik/values.yml
Normal file
27
k8s/traefik/values.yml
Normal file
@ -0,0 +1,27 @@
|
||||
deployment:
|
||||
enabled: true
|
||||
kind: DaemonSet
|
||||
service:
|
||||
type: LoadBalancer
|
||||
externalIPs:
|
||||
- 192.168.123.240
|
||||
ports:
|
||||
web:
|
||||
nodePort: 30080
|
||||
websecure:
|
||||
nodePort: 30443
|
||||
dns:
|
||||
port: 30053
|
||||
exposedPort: 53
|
||||
expose:
|
||||
default: true
|
||||
protocol: UDP
|
||||
dns-tcp:
|
||||
port: 30053
|
||||
exposedPort: 53
|
||||
expose:
|
||||
default: true
|
||||
protocol: TCP
|
||||
additionalArguments:
|
||||
- "--entryPoints.dns.address=:30053/udp"
|
||||
- "--entryPoints.dns-tcp.address=:30053/tcp"
|
36
k8s/zfs-provisioner/Readme.md
Normal file
36
k8s/zfs-provisioner/Readme.md
Normal file
@ -0,0 +1,36 @@
|
||||
# ZFS-provisioner
|
||||
|
||||
## Requirements
|
||||
|
||||
- ZFS on storage server
|
||||
- nfs-kernel-server on storage server
|
||||
- sudo on storage server
|
||||
|
||||
## Install
|
||||
|
||||
- Add user `adduser zfs-provisioner`
|
||||
- Configure sudo on storage server:
|
||||
|
||||
`echo "zfs-provisioner ALL=(ALL) NOPASSWD:/sbin/zfs *,/bin/chmod *" > /etc/sudoers.d/zfs-provisioner`
|
||||
|
||||
- Generate an ssh keypair: `ssh-keygen`
|
||||
- Edit *values.yml*
|
||||
- hostAliases: IP and name of hypervisor or storage server
|
||||
- ssh.identities.id_rsa: generated private key
|
||||
- ssh.knownHosts: public machine key of storage server (*/etc/ssh/ssh_host_rsa_key.pub*)
|
||||
- Install
|
||||
|
||||
```sh
|
||||
kubectl create namespace zfs-provisioner
|
||||
|
||||
helm repo add zfs-provisioner https://ccremer.github.io/kubernetes-zfs-provisioner
|
||||
|
||||
helm install kubernetes-zfs-provisioner --namespace zfs-provisioner zfs-provisioner/kubernetes-zfs-provisioner -f values.yml
|
||||
```
|
||||
|
||||
- Edit *storage-class.yml* and create the storage class
|
||||
- parameters
|
||||
- hostname: hostname of stroage server (make sure it resolves!)
|
||||
- parentDataset: used ZFS dataset
|
||||
|
||||
`kubectl apply -f storage-class.yml`
|
38
k8s/zfs-provisioner/ssh/id_rsa
Normal file
38
k8s/zfs-provisioner/ssh/id_rsa
Normal file
@ -0,0 +1,38 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
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
|
||||
-----END OPENSSH PRIVATE KEY-----
|
1
k8s/zfs-provisioner/ssh/id_rsa.pub
Normal file
1
k8s/zfs-provisioner/ssh/id_rsa.pub
Normal file
@ -0,0 +1 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDD/v48ZHsd78j9MHiQJlCf+I+5oy6iQFxlRlrDxCTIEi1XQk56m+0GFzcVrH0P/ChGlAI2sm9XXP7tYsaqjL4drdxxFeeWGmEZsrWQt4cCOwQGQ9/kvEW1D7daS7iEfpbG80blLwgzTQJsXS+yIxNkmUKxUFlnKbV/lu07XWO/7Z0bh/8RWGOTiK2plvXtwirAjcuK6EIzCXC6xKl4NQUGbw3JcMSjkTTa6AUqRJRQEF88R1YjEDFcsksax9Iv5KBUzvnKVnnefDSBip9MYFa1+xNmLcJahDNvevBKcQpofeukebe7ph0HFnrfMVxbNLMdNXzyvdAJOU/FKoC+N46g2Hj4BMTF+6iuw5HBt6W9QSdTDXgcnlylBF7TMbQncin8g1b7uHKbrC7jQVXaZeTaJT/nUUDhdjHhrU8zYBu3UyCwz/qyBUjMbraWoCanlpnTPhBdJ1iCxOdruQ6p9PpscPShNCYCS4q938XGLnwTUjuE1AgtNH9AhlWtDX5aLl0= laci@ryzen-debian
|
12
k8s/zfs-provisioner/storage-class.yml
Normal file
12
k8s/zfs-provisioner/storage-class.yml
Normal file
@ -0,0 +1,12 @@
|
||||
kind: StorageClass
|
||||
apiVersion: storage.k8s.io/v1
|
||||
metadata:
|
||||
name: zfs-nfs
|
||||
provisioner: pv.kubernetes.io/zfs
|
||||
reclaimPolicy: Delete
|
||||
parameters:
|
||||
parentDataset: tank/cluster
|
||||
hostname: bigboss
|
||||
type: nfs
|
||||
shareProperties: rw,no_root_squash # no_root_squash by default sets mode to 'ro'
|
||||
reserveSpace: "false"
|
60
k8s/zfs-provisioner/values.yml
Normal file
60
k8s/zfs-provisioner/values.yml
Normal file
@ -0,0 +1,60 @@
|
||||
rbac:
|
||||
create: true
|
||||
|
||||
hostAliases:
|
||||
192.168.123.1:
|
||||
- bigboss
|
||||
|
||||
podSecurityContext:
|
||||
fsGroup: 100
|
||||
|
||||
ssh:
|
||||
config: |-
|
||||
Host bigboss
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
User zfs-provisioner
|
||||
|
||||
identities:
|
||||
id_rsa: |
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
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
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
|
||||
knownHosts:
|
||||
- host: bigboss
|
||||
pubKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCR/kxAp0UK/XZrf5gCHkLcDatkaEYbcTL3EL2LkQZoMqVRfihOfTEpk+PBs/sqENUsXb6GLBxh50wDq8lMES4PgLQmHnkkJjBxBit1NscDNNQqtdNf1JXVOBOEPBrVvW0qDJMAXWhkB2r8JRpd8/Uj4Sj3KNGrCum3VRDglkLkSxUS74urdN9r1XpwvjPY5wzALwKRAKxQ+MuMI/zy3paFWLT/cpDkn6G2IK6MEScNgDho4EsMN0p5uksDiyCPy++/22aLQlwJhGpsC+hVeK3TKrlma33MdfIdrbp6LDTp36yN4qGO2GDs+wM/z7nscingzNhzP7lXizy30Nzb+sYqgwaQ2Gw/gj3aa9UycHrPk2iElUFPfNGsQ2Koxc/J89ouc8WLkxKldCEYAqr5Vo0BOZ4nFJscs/jh5xudOrEzurykFYA3Q5fG3c+mUBAhr0uMTKJUXLJtcjyGGPZoyuCEE3hsfqMxyHSsGxxG5j29zv29he9sodlhKLADxIEN1tc=
|
Loading…
Reference in New Issue
Block a user