VoxAliorum

joined 1 week ago
[–] [email protected] 1 points 12 hours ago* (last edited 12 hours ago)

This fixed pods not being able to ping each other by ip. I tried pinging each other by hostname (pod1), but that still didn't work. I then found this answer https://stackoverflow.com/questions/45805483/kubernetes-pods-cant-resolve-hostnames that implies that hostnames are much longer than just the shown name in kubectl get pods. Those long hostnames work. I do not entirely understand why one would create a hostname that includes the ip address in its name, but I will try to see if that fixed my issues.

[–] [email protected] 1 points 1 day ago

Sadly, I didn't draw any of the nonbasic land destruction cards and had to tutor for card draw in the beginning :/

[–] [email protected] 1 points 1 day ago

TL;DR: Went well

I kept a 4 land hand and got punished for it by drawing only lands for a while afterwards. However, Entomb into Triarch Praetorian helped out a little, but still it was a really slow start. This made others not see me as a threat, which largely helped me win this match. An early Blasphemus gave me enough time to get back in the game.

In the late game I dropped Gray Merchant for devotion 3 out of desperation as I had nothing else, but had a lucky Jaxis next turn which allowed me to copy Gray for another 5 damage - heal was very welcome. Then some stuff happened and I was able to capitalize Etali and got a Skullclamp and from there I just exploded. Table turned against me but Big Game Hunter killed the worst threats allowing me to bring out Terror of the Peaks and copy him with a brought back blitzed Jaxis. That basically allowed me to finish all players.

I was quite lucky because earlier two players started a feud which also gave me more time to build up my board.

Anyway, I feel a bit bad that the deck won so quickly after doing nothing in the early game due to missing ramp and value pieces, but the quick finish showed that it definitely works. Have to go another round with it soon, but wanted to give the table something easier to deal with for the second game as one player started to feel bad about not getting into the game (Merfolk with a sol ring, arcane signet opening, overextended into my Blasphemus wipe).

[–] [email protected] 4 points 2 days ago

I have set up a good hand full of dual booted Windows/ Linux machines. Never had any major issues. However, I also noticed that I only use Linux except for games and that's slowly changing, too, so I would suggest trying the dual boot if it makes you more comfortable to realize yourself that you don't need it.

[–] [email protected] 1 points 3 days ago

France in general does a lot of things right. Their whole open source movement is amazing! Just take a look at https://www.xwiki.org/xwiki/bin/view/Main/WebHome and their tools like https://cryptpad.fr/

And politically as well though I can't pinpoint it to an exact article. Just the general vibe I got from them and the decisions I saw.

[–] [email protected] 2 points 3 days ago (1 children)

Cool image slides! For my use case it is a bit too usage focused. I would like to find something that focuses a bit more on the "Not controlled by one" part and covering Lemmy, Bluesky, Mastodon, Pixelfed, Peertube and such. I like your presentation style though!

[–] [email protected] 1 points 3 days ago

The video is great and covers a lot of the information I would like to share, but it's sadly not professional enough for the use case I am thinking of. Still a great share! Thank you!

 

TL;DR: Please share links of public presentations about the Fediverse that provide an introduction to non-tech-savvy people showing the benefits and some examples like Lemmy.

Recently I have discovered Lemmy and with it the Fediverse - sure I heard of the Fediverse and Mastodon before, but I never really looked it up in detail, because it sounded like one of those projects that are really cool, but do not work because everyone keeps sticking to the big tech giants. However, now that I tried Lemmy for a couple of weeks, I feel like this does work and would like to spread the news a bit more.

For that I am looking for a nice set of slides that cover the Fediverse - and some examples like Lemmy - in such a way that students of different sciences can understand its purpose, advantages and disadvantages. I am aware that this is a bit low effort on my part as I could create such slides myself, but probably someone with more skill than me has done that already so...

EDIT: I just found https://u3acommunities.org/is-it-time-to-move-to-the-fediverse-followup/ which is very close to what I am looking for. Sadly, I can't find a download link for the slides to make some small edits (I feel like just using someone else's slides is fine as it is only for a private audience).

[–] [email protected] 3 points 3 days ago

When I read the title before reading your message I thought "Oh well, guess it is time for part 2." and let's be honest: It is very realistic that with gAI-ish a lot of people stay dumb. It is difficult to learn and why should they if an AI wipes their ass?

[–] [email protected] 2 points 4 days ago

Oh boy ^^ I have the app installed but always thought the name sounds really bad. Never knew what it meant. Thanks :)

[–] [email protected] 1 points 4 days ago* (last edited 4 days ago) (1 children)

Yes, it is absolutely valid that you decided to commercialise your project and keeping parts or all of the code closed. As I work in the public sector and we are encouraged to use open source and write open source software, my knowledge regarding closed software solutions is thin. Is there a "standard way" how closed software is able to guarantee private key safety? I could imagine solutions where there is a separate handler that is open source so that one can verify that only specific information is passed into the closed software area, but this doesn't sound feasible when talking about full terminal support within the closed software.

Again, there is nothing wrong with going commercial! I am sure I will release closed software (side projects), too, at some point.

[–] [email protected] 2 points 4 days ago (2 children)

Good points!

  • Tsabo was added when the deck was much more focused on lands and it doesn't really fit anymore.
  • Bola's Citadel is a bad excuse for being able to play the top card (aka draw replacement). I will replace it. I am always quite low with my landbase, but no reason to keep that bad habit up
  • Keen Duelist looks like such a fun card. I am not sure about the higher cmc draw cards you suggested, but the lower ones
  • I feel like the Necromancer's are awesome because they do not cost that much and my commander allows me to recast them. Getting any creature temporary for 3 or permanent for 4 is just insane. Invader Parasite is the one card that is a bit more aggressive on land destruction as it hits general lands. I kinda still want to include it, because nuking a forest really makes recovering with land ramp very difficult - I know it is a bit off theme. Instead of removing dread return, I removed beacon of unrest. I feel like the 1 mana less really can be beneficial and casting form the graveyard for sac 3 while costly is sometimes playable - especially when sacrificing copies that only last till end of turn.
  • I always feel like Final Parting is a bit slow, but at the same time: yea the value is insane. Coiling Rebirth could replace dread return... alright let's try that.
  • I also added buried alive for goblin ruinblaster, but I don't feel very good about that one given that this thins my nonbasic hate - however, it also enables getting the good haters out
[–] [email protected] 6 points 4 days ago* (last edited 4 days ago)

Hey, I had my struggles with app icons as well when I wrote a small app for myself so I am not really equipped to create the PR (also due to current time limitations). If no one is found for that, I can give it a shot at the end of the year, but I am sure you will find someone sooner than that.

However, I know of a free icon website and have looked through their icons to suggest a few to you:

Uxwings license is amazing: https://uxwing.com/license/ you can use the icons for basically anything and can even alter them.

Personally, I like "Eye in "scanning square"" the most as it symbolizes the technical aspect of scanning/capturing the surroundings.

While I haven't used it yetis, there is also https://icon.kitchen/ for icon generation.

 

Decklist: https://archidekt.com/decks/13999945/be_basic

A friend of mine claimed that nonbasic land removal is not effective. As we primarily play bracket 3, I disagreed. He remained pretty sure so I proposed a challenge and created this deck which I will soon prox and play against him. I am aware that it is not technically bracket 3, but I think the power level wise it is still a better fit for 3 than 4.

The main idea is to get a strong recursion engine going which allows us to again and again remove their fancy nonbasic lands and putting cool stuff on the board that should allow me to win eventually. I am sure this is not a perfect build and I am open for suggestions :)

 

I am not entirely sure whether this sub is also intended for asking questions, but after opening the question on stack overflow and only getting an AI answer, I thought it would be worth a shot to ask here. What follows is a rather long question, but most of it is just debugging information to avoid obvious questions.

I have created a small kubernetes cluster (6 nodes) using kubeadm and flannel as the CNI in an openstack project. This is my first time using more than a single node kubernetes cluster.

I set up the kubernetes cluster's master via

# tasks file for kubernetes_master
- name: Install required packages
  apt:
    name:
      - curl
      - gnupg2
      - software-properties-common
      - apt-transport-https
      - ca-certificates
    state: present
    update_cache: yes

- name: Install Docker
  apt:
    name: docker.io
    state: present
    update_cache: yes

- name: Remove Keyrings Directory (if it exists)
  ansible.builtin.shell: rm -rf /etc/apt/keyrings

- name: Remove Existing Kubernetes Directory (if it exists)
  ansible.builtin.shell: sudo rm -rf /etc/apt/sources.list.d/pkgs_k8s_io_core_stable_v1_30_deb.list

- name: Disable swap
  ansible.builtin.command:
    cmd: swapoff -a

#- name: Ensure swap is disabled on boot
#  ansible.builtin.command:
#    cmd: sudo sed -i -e '/\/swap.img\s\+none\s\+swap\s\+sw\s\+0\s\+0/s/^/#/' /etc/fstab

- name: Ensure all swap entries are disabled on boot
  ansible.builtin.command:
    cmd: sudo sed -i -e '/\s\+swap\s\+/s/^/#/' /etc/fstab

- name: Add kernel modules for Containerd
  ansible.builtin.copy:
    dest: /etc/modules-load.d/containerd.conf
    content: |
      overlay
      br_netfilter

- name: Load kernel modules for Containerd
  ansible.builtin.shell:
    cmd: modprobe overlay && modprobe br_netfilter
  become: true

- name: Add kernel parameters for Kubernetes
  ansible.builtin.copy:
    dest: /etc/sysctl.d/kubernetes.conf
    content: |
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1

- name: Load kernel parameter changes
  ansible.builtin.command:
    cmd: sudo sysctl --system

- name: Configuring Containerd (building the configuration file)
  ansible.builtin.command:
    cmd: sudo sh -c "containerd config default > /opt/containerd/config.toml"

- name: Configuring Containerd (Setting SystemdCgroup Variable to True)
  ansible.builtin.command:
    cmd: sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /opt/containerd/config.toml

- name: Reload systemd configuration
  ansible.builtin.command:
    cmd: systemctl daemon-reload

- name: Restart containerd service
  ansible.builtin.service:
    name: containerd
    state: restarted

- name: Allow 6443/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 6443/tcp

- name: Allow 2379:2380/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 2379:2380/tcp

- name: Allow 22/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 22/tcp

- name: Allow 8080/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 8080/tcp

- name: Allow 10250/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 10250/tcp

- name: Allow 10251/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 10251/tcp

- name: Allow 10252/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 10252/tcp

- name: Allow 10255/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 10255/tcp

- name: Allow 5473/tcp through firewall
  ansible.builtin.command:
    cmd: sudo ufw allow 5473/tcp

- name: Enable the firewall
  ansible.builtin.ufw:
    state: enabled

- name: Reload the firewall
  ansible.builtin.command:
    cmd: sudo ufw reload

- name: Prepare keyrings directory and update permissions
  file:
    path: /etc/apt/keyrings
    state: directory
    mode: '0755'

- name: Download Kubernetes GPG key securely
  ansible.builtin.shell: curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

- name: Add Kubernetes repository
  ansible.builtin.apt_repository:
    repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /"
    state: present

- name: Install kubeadm, kubelet, kubectl
  ansible.builtin.apt:
    name:
      - kubelet
      - kubeadm
      - kubectl
    state: present
    update_cache: yes

- name: Hold kubelet, kubeadm, kubectl packages
  ansible.builtin.command:
    cmd: sudo apt-mark hold kubelet kubeadm kubectl

- name: Replace /etc/default/kubelet contents
  ansible.builtin.copy:
    dest: /etc/default/kubelet
    content: 'KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"'

- name: Reload systemd configuration
  ansible.builtin.command:
    cmd: systemctl daemon-reload

- name: Restart kubelet service
  ansible.builtin.service:
    name: kubelet
    state: restarted

- name: Update System-Wide Profile for Kubernetes
  ansible.builtin.copy:
    dest: /etc/profile.d/kubernetes.sh
    content: |
      export KUBECONFIG=/etc/kubernetes/admin.conf
      export ANSIBLE_USER="sysadmin"

# only works if not executing on master
#- name: Reboot the system
#  ansible.builtin.reboot:
#    msg: "Reboot initiated by Ansible for Kubernetes setup"
#    reboot_timeout: 150

- name: Replace Docker daemon.json configuration
  ansible.builtin.copy:
    dest: /etc/docker/daemon.json
    content: |
      {
        "exec-opts": ["native.cgroupdriver=systemd"],
        "log-driver": "json-file",
        "log-opts": {
          "max-size": "100m"
        },
        "storage-driver": "overlay2"
      }

- name: Reload systemd configuration
  ansible.builtin.command:
    cmd: systemctl daemon-reload

- name: Restart Docker service
  ansible.builtin.service:
    name: docker
    state: restarted

- name: Update Kubeadm Environment Variable
  ansible.builtin.command:
    cmd: sudo sed -i -e '/^\[Service\]/a Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"' /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

- name: Reload systemd configuration
  ansible.builtin.command:
    cmd: systemctl daemon-reload

- name: Restart kubelet service
  ansible.builtin.service:
    name: kubelet
    state: restarted

- name: Pull kubeadm container images
  ansible.builtin.command:
    cmd: sudo kubeadm config images pull

- name: Initialize Kubernetes control plane
  ansible.builtin.command:
    cmd: kubeadm init --pod-network-cidr=10.244.0.0/16
    creates: /tmp/kubeadm_output
  register: kubeadm_init_output
  become: true
  changed_when: false

- name: Set permissions for Kubernetes Admin
  file:
    path: /etc/kubernetes/admin.conf
    state: file
    mode: '0755'

- name: Store Kubernetes initialization output to file
  copy:
    content: "{{ kubeadm_init_output.stdout }}"
    dest: /tmp/kubeadm_output
  become: true
  delegate_to: localhost

- name: Generate the Join Command
  ansible.builtin.shell: cat /tmp/kubeadm_output | tail -n 2 | sed ':a;N;$!ba;s/\\\n\s*/ /g' > /tmp/join-command
  delegate_to: localhost

- name: Set permissions for the Join Executable
  file:
    path: /tmp/join-command
    state: file
    mode: '0755'
  delegate_to: localhost

manually reboot the node and installed flannel via kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml. Worker's are created in a similar way (without flannel). I omit their script for now but I can add it if it seems important.

I then had dns resolution issues with a helm chart which is why I tried to investigate network issues and noticed that instances are unable to ping each other.

I am unsure how to debug this issue further.

Debug Info

kubectl get nodes
NAME           STATUS   ROLES           AGE     VERSION
k8s-master-0   Ready    control-plane   4h38m   v1.30.14
k8s-worker-0   Ready    <none>          4h35m   v1.30.14
k8s-worker-1   Ready    <none>          4h35m   v1.30.14
k8s-worker-2   Ready    <none>          4h35m   v1.30.14
k8s-worker-3   Ready    <none>          4h35m   v1.30.14
k8s-worker-4   Ready    <none>          4h35m   v1.30.14
k8s-worker-5   Ready    <none>          4h34m   v1.30.14
kube-flannel-ds-275hx   1/1     Running   0          150m   192.168.33.149   k8s-worker-0   <none>           <none>
kube-flannel-ds-2rplc   1/1     Running   0          150m   192.168.33.38    k8s-worker-5   <none>           <none>
kube-flannel-ds-2w98x   1/1     Running   0          150m   192.168.33.113   k8s-worker-1   <none>           <none>
kube-flannel-ds-g4vb6   1/1     Running   0          150m   192.168.33.167   k8s-worker-4   <none>           <none>
kube-flannel-ds-mpwbz   1/1     Running   0          150m   192.168.33.163   k8s-worker-2   <none>           <none>
kube-flannel-ds-qmbgc   1/1     Running   0          150m   192.168.33.117   k8s-master-0   <none>           <none>
kube-flannel-ds-sgdgs   1/1     Running   0          150m   192.168.33.243   k8s-worker-3   <none>           <none>
ip addr show flannel.1
4: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN group default 
    link/ether a2:4a:11:1f:84:ef brd ff:ff:ff:ff:ff:ff
    inet 10.244.0.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet6 fe80::a04a:11ff:fe1f:84ef/64 scope link 
       valid_lft forever preferred_lft forever
ip route
default via 192.168.33.1 dev ens3 proto dhcp src 192.168.33.117 metric 100 
10.244.0.0/24 dev cni0 proto kernel scope link src 10.244.0.1 
10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink 
10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink 
10.244.3.0/24 via 10.244.3.0 dev flannel.1 onlink 
10.244.4.0/24 via 10.244.4.0 dev flannel.1 onlink 
10.244.5.0/24 via 10.244.5.0 dev flannel.1 onlink 
10.244.6.0/24 via 10.244.6.0 dev flannel.1 onlink 
169.254.169.254 via 192.168.33.3 dev ens3 proto dhcp src 192.168.33.117 metric 100 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.33.0/24 dev ens3 proto kernel scope link src 192.168.33.117 metric 100 
192.168.33.1 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100 
192.168.33.2 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100 
192.168.33.3 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100 
192.168.33.4 dev ens3 proto dhcp scope link src 192.168.33.117 metric 100 
kubectl run -it --rm dnsutils --image=busybox:1.28 --restart=Never -- nslookup kubernetes.default
If you don't see a command prompt, try pressing enter.

Address 1: 10.96.0.10

nslookup: can't resolve 'kubernetes.default'
pod "dnsutils" deleted
pod default/dnsutils terminated (Error)
kubectl get pods -n kube-system -l k8s-app=kube-dns
NAME                       READY   STATUS    RESTARTS        AGE
coredns-55cb58b774-6vb7p   1/1     Running   1 (4h19m ago)   4h38m
coredns-55cb58b774-wtrz6   1/1     Running   1 (4h19m ago)   4h38m

Ping Test

ubuntu@k8s-master-0:~$ kubectl run pod1 --image=busybox:1.28 --restart=Never --command -- sleep 3600
pod/pod1 created
ubuntu@k8s-master-0:~$ kubectl run pod2 --image=busybox:1.28 --restart=Never --command -- sleep 3600
pod/pod2 created
ubuntu@k8s-master-0:~$ kubectl get pods -o wide
NAME   READY   STATUS    RESTARTS   AGE   IP           NODE           NOMINATED NODE   READINESS GATES
pod1   1/1     Running   0          15m   10.244.5.2   k8s-worker-1   <none>           <none>
pod2   1/1     Running   0          15m   10.244.4.2   k8s-worker-3   <none>           <none>
ubuntu@k8s-master-0:~$ kubectl exec -it pod1 -- sh
/ # ping 10.244.5.2
PING 10.244.5.2 (10.244.5.2): 56 data bytes
64 bytes from 10.244.5.2: seq=0 ttl=64 time=0.107 ms
64 bytes from 10.244.5.2: seq=1 ttl=64 time=0.091 ms
64 bytes from 10.244.5.2: seq=2 ttl=64 time=0.090 ms
^C
***
10.244.5.2 ping statistics
***
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.090/0.096/0.107 ms
/ # 10.244.4.2
sh: 10.244.4.2: not found
/ # ping 10.244.4.2
PING 10.244.4.2 (10.244.4.2): 56 data bytes
^C
***
10.244.4.2 ping statistics
***
2 packets transmitted, 0 packets received, 100% packet loss
/ # exit
command terminated with exit code 1

If I understand flannel correctly, it is fine that the pods are in other subnets as the ip routes manage the forwarding.

 

I know of the "Search" feature at the bottom and the "Local" "All" feature at the top - where local refers to the server you logged into.

However, to discover new communities, I like listing all the communities of a server, select a community to list all the posts and then take a look whether some posts are interesting. I could see using this to find communities I would like to subscribe to.

Am I just blind or is this core feature missing? In the web version this can be done by selecting a server>communities>select a community>go through the posts.

 

A highly customizable FOSS note taking app which enables you to better manage your campaigns, plots and everything. Build your own knowledge base, include your relevant media with your plot hooks and just have everything in one place.

view more: next ›