admin

kube-ps1

curl https://raw.githubusercontent.com/jonmosco/kube-ps1/master/kube-ps1.sh -o ~/kube-ps1.sh
echo "source ~/kube-ps1.sh" >> ~/.bashrc
echo "PS1='[\u@\h \W $(kube_ps1)]\$ '" >> ~/.bashrc

Krew:

Make sure that git is installed.
Run this command to download and install krew:

(
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)

Add the $HOME/.krew/bin directory to your PATH environment variable. To do this, update your .bashrc file and append the following line:

echo 'export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"' >> ~/.bashrc

kubectx

kubectl krew install ctx
kubectl krew install ns
kubectl get pods -o jsonpath='{range .items[*]}{range .spec.containers[*]}{.name}{"\t"}{.resources.requests.memory}{"\n"}{end}{end}'

Debugging im Pod (tcpdump muss installiert sein):

kubectl exec my-app-pod -c nginx -- tcpdump -i eth0 -w - | wireshark -k -i -

Debugging auf dem Node

kubectl debug node/ip-10-250-104-130.eu-central-1.compute.internal -it --image=ubuntu -n default
kubectl exec -n default *debug pod name* -- tcpdump -i any -w - | wireshark -k -i -

GGF lokal Userrechte für Wireshark setzen:

sudo usermod -a -G wireshark $USER
cAdvisor (Container Advisor) bietet Containernutzern einen Überblick über die Ressourcennutzung und die Leistungsmerkmale ihrer laufenden Container.
Es ist ein laufender Daemon, der Informationen über laufende Container sammelt, aggregiert, verarbeitet und exportiert.
Insbesondere speichert er für jeden Container die Parameter der Ressourcenisolierung, die historische Ressourcennutzung und Histogramme der gesamten historischen Ressourcennutzung.
Diese Daten werden pro Container und maschinenweit exportiert.

Regeln mit Zeilennummern auflisten

sudo iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    DOCKER-USER  all  --  anywhere             anywhere            
2    DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere            
3    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
4    DOCKER     all  --  anywhere             anywhere            
5    ACCEPT     all  --  anywhere             anywhere            
6    ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination   

NAT Regeln mit Zeilennummern auflisten

sudo iptables -tnat -L --line-numbers
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DOCKER     all  --  anywhere            !localhost/8          ADDRTYPE match dst-type LOCAL
2    DNAT       tcp  --  anywhere             anywhere             tcp dpt:ldap to:10.185.131.139:443

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  172.17.0.0/16        anywhere            
2    MASQUERADE  all  --  anywhere             anywhere            

Die gewünschte Regel löschen (Chain und Zeilennummer angeben)

sudo iptables -D FORWARD 5

Die gewünschte NAT Regel löschen (Chain und Zeilennummer angeben)

sudo iptables -t nat -D POSTROUTING 2

Eingehenden Traffic auf Port 443 weiterleiten an 10.98.193.201:389

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 10.98.193.201:389
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Eingehenden Traffic auf Port 443 und IP 46.25.33.12 weiterleiten an 10.98.193.201:389

sudo iptables -t nat -A PREROUTING -p tcp -d 46.25.33.12 --dport 22101 -j DNAT --to 10.10.0.101:22
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Ausgehenden Traffic an Port 389 (ldap) nach 10.98.193.200:389 umleiten

sudo iptables -t nat -A OUTPUT -p tcp  --dport 389 -j DNAT --to-destination 10.98.193.200:389
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Ausgehenden Traffic an IP 10.90.32.6 und Port 389 (ldap) nach 10.98.193.200:389 umleiten

sudo iptables -t nat -A OUTPUT -p tcp -d 10.90.32.6 --dport 443 -j DNAT --to-destination 10.98.193.200:389 
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
terraform state list
terraform state list | grep thomas
data.gitlab_user.members["thomas@asanger.dev"]
data.ldap_user.members["thomas@asanger.dev"]
module.upn_lookup["thomas@asanger.dev"].data.http.upn_lookup
terraform state rm 'data.ldap_user.members["thomas@asanger.dev"]'
terraform state show 'data.gitlab_user.members["thomas@asanger.dev"]'
# data.gitlab_user.members["thomas@asanger.dev"]:
data "gitlab_user" "members" {
    avatar_url         = "https://gitlab.asanger.dev/505/avatar.png"
    can_create_group   = false
    can_create_project = false
    color_scheme_id    = 0
    external           = false
    id                 = "505"
    is_admin           = false
    name               = "Asanger, Thomas"
    namespace_id       = 0
    projects_limit     = 0
    state              = "active"
    theme_id           = 0
    two_factor_enabled = false
    user_id            = 505
    username           = "asangert"
}
terraform state show 'gitlab_group_membership.maintainers["thomas@asanger.dev"]'
# gitlab_group_membership.maintainers["thomas@asanger.dev"]:
resource "gitlab_group_membership" "maintainers" {
    access_level                  = "maintainer"
    group_id                      = "6911"
    id                            = "6911:505"
    skip_subresources_on_destroy  = false
    unassign_issuables_on_destroy = false
    user_id                       = 505
}
terraform import -var-file ../../compiled/mp_content/team.tfvars 'gitlab_group_membership.maintainers["thomas@asanger.dev"]' "6911:505"