comparison
This commit is contained in:
parent
e61ec35755
commit
07c29826ad
@ -1,29 +1,71 @@
|
|||||||
Recommended content:
|
Hello, Adolfo from Portainer here
|
||||||
From a single server MVP to scale – easy with Portainer
|
|
||||||
We assume you already have you web-app running within a container
|
|
||||||
Select your orchestration (what is best practice, what are reasons, what are limits ???)
|
|
||||||
|
|
||||||
- Kubernetes
|
We have prepared a set of comparison videos of Portainer vs 4 different Kubernetes management tools:
|
||||||
- Docker Swarm
|
|
||||||
|
|
||||||
10-100 server : Docker Swarm
|
Kubernetes Dashboard
|
||||||
50-200 server: microk8s (easy as docker swarm, but prepare for further growth ???)
|
Lens
|
||||||
100-100.000: kubernetes
|
CrossPlane
|
||||||
Setup infrastructure (swarm or microk8s)
|
Rancher UI
|
||||||
Launch servers (virtual or bare metal)
|
|
||||||
Create master
|
|
||||||
Join further nodes
|
the idea is to basically show the steps required to deploy an application on each of the tools vs Portainer and I am going to use a basic implementation of the redis database.
|
||||||
Launch Portainer
|
|
||||||
…
|
|
||||||
Launch reverse proxy via Portainer
|
|
||||||
The reverse proxy will automatically load balance all incoming requests to the web-app containers
|
Here I start with Portainer vs Kubernetes Dashboard with a redis server deployment. In both cases I use microk8s and the process starts with the search for the proper container image in both cases.
|
||||||
The proxy will hot reload when containers change, not interrupt ongoing and long-running requests (?)
|
|
||||||
The proxy can automatically forward to services based on sub-domains and/or paths via labels (?)
|
In Portainer I used the Applications menu option and deployed redis with ,
|
||||||
Launch services (web-app and others)
|
|
||||||
Launch you services with Portainer, set labels for sub-domain and/or path
|
|
||||||
Example: www (wordpress), api (nodejs) (?)
|
bitnami/redis
|
||||||
Database: only one instance per server on dedicated servers
|
|
||||||
Scale up
|
|
||||||
Check metrics
|
|
||||||
Easily scale services up and down, add more servers
|
|
||||||
7. b. Manage credentials, pass them to the web-app so it can connect to the database.
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: example-redis-config
|
||||||
|
data:
|
||||||
|
redis-config: ""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: redis
|
||||||
|
image: redis:5.0.4
|
||||||
|
command:
|
||||||
|
- redis-server
|
||||||
|
- "/redis-master/redis.conf"
|
||||||
|
env:
|
||||||
|
- name: MASTER
|
||||||
|
value: "true"
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: "0.1"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /redis-master-data
|
||||||
|
name: data
|
||||||
|
- mountPath: /redis-master
|
||||||
|
name: config
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
emptyDir: {}
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: example-redis-config
|
||||||
|
items:
|
||||||
|
- key: redis-config
|
||||||
|
path: redis.conf
|
||||||
|
|
||||||
|
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
|
||||||
|
microk8s kubectl -n kube-system describe secret $token
|
||||||
|
|
||||||
|
kubectl create clusterrolebinding --user system:serviceaccount:kube-system:default kube-system-cluster-admin --clusterrole cluster-admin
|
||||||
|
Loading…
Reference in New Issue
Block a user