- 
      
 - 
        
Save littlecxm/908ab5b095bce49bb9bff17e7ed4b66f to your computer and use it in GitHub Desktop.  
Revisions
- 
        
Todd Edwards revised this gist
Nov 22, 2020 . 1 changed file with 10 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -31,6 +31,16 @@ sysctl --system  ## Back on the Host Edit the config file for the container (`/etc/pve/lxc/$ID.conf`) and add the following: ```text lxc.apparmor.profile: unconfined lxc.cgroup.devices.allow: a lxc.cap.drop: lxc.mount.auto: "proc:rw sys:rw" ``` ## In the container #### /etc/rc.local  - 
        
Todd Edwards revised this gist
Nov 22, 2020 . 1 changed file with 0 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,5 +1,3 @@ ## On the host #### Ensure these modules are loaded ```shell  - 
        
Todd Edwards revised this gist
Nov 16, 2020 . 1 changed file with 7 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -73,6 +73,13 @@ k3sup install --ip $CONTAINER_IP --user root #### Test ```shell KUBECONFIG=kubeconfig kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system metrics-server-7566d596c8-zm7tj 1/1 Running 0 69m kube-system local-path-provisioner-6d59f47c7-ldbcl 1/1 Running 0 69m kube-system helm-install-traefik-glt48 0/1 Completed 0 69m kube-system coredns-7944c66d8d-67lxp 1/1 Running 0 69m kube-system traefik-758cd5fc85-wzcst 1/1 Running 0 68m kube-system svclb-traefik-cwd9h 2/2 Running 0 42m ``` ## References  - 
        
Todd Edwards revised this gist
Nov 16, 2020 . 5 changed files with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -21,16 +21,16 @@ sysctl --system ## Create the k3s container #### Uncheck unprivileged container  #### Set swap to 0  #### Enable DHCP  #### Results  ## In the container File renamed without changesFile renamed without changesFile renamed without changesFile renamed without changes - 
        
Todd Edwards revised this gist
Nov 16, 2020 . 4 changed files with 0 additions and 0 deletions.There are no files selected for viewing
LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed.LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed.LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed.LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed. - 
        
Todd Edwards revised this gist
Nov 16, 2020 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -76,4 +76,6 @@ KUBECONFIG=kubeconfig kubectl get pods --all-namespaces ``` ## References - https://github.com/MarijnKoesen/kubernetes-in-proxmox-with-kubeadm-lxc-and-wireshark - https://github.com/kubernetes-sigs/kind/issues/662 - https://medium.com/@kvaps/run-kubernetes-in-lxc-container-f04aa94b6c9c  - 
        
Todd Edwards created this gist
Nov 16, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,79 @@ # k3s in LXC on Proxmox ## On the host #### Ensure these modules are loaded ```shell cat /proc/sys/net/bridge/bridge-nf-call-iptables ``` #### Disable swap ```shell sysctl vm.swappiness=0 swapoff -a ``` #### Enable IP Forwarding The first time I tried to get this working, once the cluster was up, the traefik pods were in CrashloopBackoff due to ip_forwarding being disabled. Since LXC containers share the host's kernel, we need to enable this on the host. ``` echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl --system ``` ## Create the k3s container #### Uncheck unprivileged container  #### Set swap to 0  #### Enable DHCP  #### Results  ## In the container #### /etc/rc.local /etc/rc.local doesn't exist in the default 20.04 LXC template provided by Rroxmox. Create it with these contents: ```sh #!/bin/sh -e # Kubeadm 1.15 needs /dev/kmsg to be there, but it's not in lxc, but we can just use /dev/console instead # see: https://github.com/kubernetes-sigs/kind/issues/662 if [ ! -e /dev/kmsg ]; then ln -s /dev/console /dev/kmsg fi # https://medium.com/@kvaps/run-kubernetes-in-lxc-container-f04aa94b6c9c mount --make-rshared / ``` Then run this: ```shell chmod +x /etc/rc.local reboot ``` ## Installing k8s #### k3sup Installation Assuming $HOME/bin is in your PATH: ```shell curl -sLS https://get.k3sup.dev | sh mv k3sup ~/bin/k3sup && chmod +x ~/bin/k3sup ``` #### k8s Installation ```shell k3sup install --ip $CONTAINER_IP --user root ``` #### Test ```shell KUBECONFIG=kubeconfig kubectl get pods --all-namespaces ``` ## References https://github.com/MarijnKoesen/kubernetes-in-proxmox-with-kubeadm-lxc-and-wireshark