This is a microservice architecture created to be used by students as a basis for their own applications. The architecture uses a single-node K3s Kubernetes-cluster as a base and can be extended if necessary. For external access to the deployed services a Traefik Ingress Controller is used. The architecture comes equipped with a basic authentication service and additionally a Linkerd service mesh is implemented for better inter service communication.
...
...
@@ -14,7 +14,7 @@ Traefik: The gateway to the architecture. It reroutes incoming requests to the e
Auth-Service: Used to create accounts in the system. Additionally enables existing users to perform logins and returns an auth-token that is used to authenticate subsequent requests to the microservice application.
Linkerd: A Service mesh that provides reliability, monitoring, and security aspects for meshed applications.
Linkerd: A Service Mesh that provides reliability, monitoring, and security aspects for meshed applications.
## Installation
To install the architecture in a new environment, a Linux OS is needed. In the following steps the process is shown of how to setup the architecture on an Ubuntu server.
...
...
@@ -140,7 +140,7 @@ linkerd viz dashboard --address x.x.x.x
```
### Authentication Service
The microservice architecture comes with an authentication service that can be used to create user accounts.
The microservice architecture comes with an authentication service that can be used to create user accounts and authenticate requests.
The functionality of the REST-API for the auth-service is depicted in the following table:
...
...
@@ -168,6 +168,6 @@ The Headers are:
|-|-|
| "userid" | The username of the account that sent the request |
| "isadmin" | The admin status of that user, either true or false |
| "userroles" | the roles of the user |
| "userroles" | The roles of the user |
These headers can be read in the applications and can be used to implement an authorization.
\ No newline at end of file
These headers can be read in the applications and can be used to implement an authorization.