From 07c29826ada46f69b56e81833cb356cdfa75ea54 Mon Sep 17 00:00:00 2001 From: Adolfo Delorenzo Date: Sun, 28 Mar 2021 23:32:05 -0600 Subject: [PATCH] comparison --- comparison script | 96 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 69 insertions(+), 27 deletions(-) diff --git a/comparison script b/comparison script index 7c85d08..faa0c7e 100644 --- a/comparison script +++ b/comparison script @@ -1,29 +1,71 @@ -Recommended content: -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 ???) +Hello, Adolfo from Portainer here -- Kubernetes -- Docker Swarm +We have prepared a set of comparison videos of Portainer vs 4 different Kubernetes management tools: -10-100 server : Docker Swarm -50-200 server: microk8s (easy as docker swarm, but prepare for further growth ???) -100-100.000: kubernetes -Setup infrastructure (swarm or microk8s) -Launch servers (virtual or bare metal) -Create master -Join further nodes -Launch Portainer -… -Launch reverse proxy via Portainer -The reverse proxy will automatically load balance all incoming requests to the web-app containers -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 (?) -Launch services (web-app and others) -Launch you services with Portainer, set labels for sub-domain and/or path -Example: www (wordpress), api (nodejs) (?) -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. +Kubernetes Dashboard +Lens +CrossPlane +Rancher UI + + +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. + + + +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. + +In Portainer I used the Applications menu option and deployed redis with , + + +bitnami/redis + + + + +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