15 Commits

Author SHA1 Message Date
dd8a19de73 ci: Update Image Version 2023-11-03 22:41:18 +01:00
8e72b765f7 feat: New Article 2023-11-03 22:40:40 +01:00
c9c18dad91 Update vscode-debug-settings-collection.md 2023-09-29 10:54:44 +02:00
Alex Wellnitz
688230661f ci: Update container image 2023-09-26 14:55:08 +02:00
Alex Wellnitz
05de27abe9 2.3.10 2023-09-26 14:54:30 +02:00
Alex Wellnitz
1209346a71 fix: update packag.json 2023-09-26 14:54:23 +02:00
Alex Wellnitz
3db6264f66 feat: update sitemap plugin 2023-09-26 14:53:44 +02:00
4c08105626 Update values-prod.yaml 2023-09-25 18:04:01 +02:00
6941f97721 Update Layout.astro 2023-09-25 18:01:59 +02:00
ca015a59d8 Update Socials.astro 2023-09-25 15:52:01 +02:00
94ea56f946 Update values-prod.yaml 2023-09-25 15:49:46 +02:00
6cb96c6ab1 Update Socials.astro 2023-09-25 15:40:40 +02:00
8a8269648c Update config.ts 2023-09-25 15:39:23 +02:00
b921284f4d Create vscode-debug-settings-collection.md 2023-09-17 12:26:56 +02:00
697b482095 ci: update image version in helm chart 2023-09-04 11:50:06 +02:00
8 changed files with 142 additions and 14 deletions

View File

@@ -2,7 +2,7 @@ image:
repository: alexohneander/alexohneander-astro
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: "v2.3.6"
tag: "v2.3.11"
ingress:
enabled: true

18
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "alexohneander-astro",
"version": "2.3.7",
"version": "2.3.10",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "alexohneander-astro",
"version": "2.3.7",
"version": "2.3.10",
"dependencies": {
"@astrojs/rss": "^2.4.1",
"@resvg/resvg-js": "^2.4.1",
@@ -20,7 +20,7 @@
},
"devDependencies": {
"@astrojs/react": "^2.1.3",
"@astrojs/sitemap": "^1.3.1",
"@astrojs/sitemap": "^1.4.0",
"@astrojs/tailwind": "^3.1.2",
"@divriots/jampack": "^0.11.2",
"@tailwindcss/typography": "^0.5.9",
@@ -164,9 +164,9 @@
}
},
"node_modules/@astrojs/sitemap": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-1.3.3.tgz",
"integrity": "sha512-TPyyb/hKxc+bHPpSoNPhsuI0QOTVzq2tueg2r0CTH1HqigYIAA2LQkCBlQzz85R+LrOZpv4kXYmhxdDcSkJCmA==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-1.4.0.tgz",
"integrity": "sha512-uTK77kcg7iTiik+u7rTGG6vK4ZWTfYMaVnFndOVQrLzaE5xivmQgIbVLtlN+xRcME5n/m6vYQFJmogFR+elGCw==",
"dev": true,
"dependencies": {
"sitemap": "^7.1.1",
@@ -11257,9 +11257,9 @@
}
},
"@astrojs/sitemap": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-1.3.3.tgz",
"integrity": "sha512-TPyyb/hKxc+bHPpSoNPhsuI0QOTVzq2tueg2r0CTH1HqigYIAA2LQkCBlQzz85R+LrOZpv4kXYmhxdDcSkJCmA==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-1.4.0.tgz",
"integrity": "sha512-uTK77kcg7iTiik+u7rTGG6vK4ZWTfYMaVnFndOVQrLzaE5xivmQgIbVLtlN+xRcME5n/m6vYQFJmogFR+elGCw==",
"dev": true,
"requires": {
"sitemap": "^7.1.1",

View File

@@ -1,6 +1,6 @@
{
"name": "alexohneander-astro",
"version": "2.3.7",
"version": "2.3.10",
"scripts": {
"dev": "astro check --watch & astro dev",
"start": "astro dev",
@@ -27,7 +27,7 @@
},
"devDependencies": {
"@astrojs/react": "^2.1.3",
"@astrojs/sitemap": "^1.3.1",
"@astrojs/sitemap": "^1.4.0",
"@astrojs/tailwind": "^3.1.2",
"@divriots/jampack": "^0.11.2",
"@tailwindcss/typography": "^0.5.9",

View File

@@ -17,6 +17,7 @@ const { centered = false } = Astro.props;
href={social.href}
className="link-button"
title={social.linkTitle}
>
<Fragment set:html={socialIcons[social.name]} />
</LinkButton>

View File

@@ -137,8 +137,8 @@ export const SOCIALS: SocialObjects = [
},
{
name: "Mastodon",
href: "https://github.com/satnaing/astro-paper",
href: "https://mastodon.social/@alexohneander",
linkTitle: `${SITE.title} on Mastodon`,
active: false,
active: true,
},
];

View File

@@ -0,0 +1,79 @@
---
author: Alex Wellnitz
pubDatetime: 2023-11-03T19:20:50+02:00
title: Highly scalable Minecraft cluster
postSlug: highly-scalable-minecraft-cluster
featured: true
draft: false
tags:
- kubernetes
- minecraft
- cluster
ogImage: ""
description: How to build and configure a highly scalable Minecraft server
---
Are you planning a very large Minecraft LAN party? Then this article is for you. Here I show you how to set up a highly scalable Minecraft cluster.
### What is a Minecraft cluster?
A Minecraft cluster is a Minecraft server network that consists of multiple Minecraft servers. These servers are connected to each other via a network and can therefore be shared. This means that you can play with your friends on a server that consists of multiple servers.
### How does a Minecraft cluster work?
A Minecraft cluster consists of several components.
#### Master database
First, there is the master database. This database allows servers to store data in a central location that all servers can access. Servers store chunks, maps, level.dat, player data, banned players, and more in this database. This database also records which chunk belongs to which server and coordinates communication between servers.
#### Server
The master database is great for storing data, but not so good at synchronizing data in real time between servers. This is where peer-to-peer communication comes in. Each server establishes a connection to another server so that data between them can be updated in real time. When a player on server A attacks another player on server B, server A sends this data directly to server B so that server B can damage the player and apply any knockback.
#### Load Balancer
The load balancer is the last component of the cluster. A load balancer is required to distribute players evenly across your servers. A load balancer automatically distributes players between servers to distribute the load evenly across the individual servers.
### Why do I need multiple servers?
By having multiple servers, we can distribute the load across multiple servers. This means that we can have more players on our servers without the servers becoming overloaded. With this setup, we can also easily add new servers if we get more players. If the number of players decreases again, the server can be removed again.
## Preparation
You should be familiar with Kubernetes and have set up a Kubernetes cluster. I recommend [k3s](https://k3s.io/).
You should also be familiar with Helm. I recommend [Helm 3](https://helm.sh/docs/intro/install/).
## Installation
First, you should clone the repository.
```bash
git clone git@github.com:alexohneander/MultiPaperHelm.git
cd MultiPaperHelm/
```
I installed the entire setup in a separate namespace. You can create this namespace with the following command.
```bash
kubectl create namespace minecraft
```
Next, we install the Minecraft cluster with Helm.
```bash
helm install multipaper . --namespace minecraf
```
Once the Helm chart is installed, you can view the port of the proxy service.
```bash
kubectl describe service multipaper-master-proxy -n minecraft
```
This port is the port that you need to enter in your Minecraft client.
## Configuration
The Helm chart creates several ConfigMaps. In these ConfigMaps, you can customize the configuration of your cluster.
For example, you can set the number of maximum players or change the description of the server.
For more information on the individual config files, see[MultiPaper](https://github.com/MultiPaper/MultiPaper).

View File

@@ -0,0 +1,47 @@
---
author: Alex Wellnitz
pubDatetime: 2023-17-09T12:20:27+02:00
title: VSCode debug settings Collection
postSlug: vscode-debug-settings-collection.md
featured: true
draft: true
tags:
- vscode
- debug
- development
ogImage: ""
description: In this post, we will show you how to create a MySQL server backup using Kubernetes CronJobs.
---
### Go VSCode debugging
**launch.json:**
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Package",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}"
}
]
}
```
### Java Remote VSCode debugging
**launch.json:**
```json
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Attach)",
"projectName": "MyApplication",
"request": "attach",
"hostName": "localhost",
"port": 8787
}
]
```

View File

@@ -35,6 +35,7 @@ const socialImageURL = new URL(
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="canonical" href={canonicalURL} />
<link rel="me" href="https://mastodon.social/@alexohneander" />
<meta name="generator" content={Astro.generator} />
<!-- General Meta Tags -->