Openshift se posiciona como lider de administracion de cluster de Kubernetes. Ahora puedes tener tu openshift ya configurado y listo para usar en azure o aws. ¿Que diferencias tiene tener un cluster de kubernetes administrado con openshift? La respuesta es que hace lo que casi seguro tenias que hacer. ¿Un sistema de monitorizacion de todo el cluster con prometheus y grafana? Lo tiene. ¿Un docker registry donde almacenar imaganes? Lo tiene ¿Adminsitracion de usuarios y permisos? Lo tiene ¿Catalogo de plantillas de despliegue? Lo tiene. Por no hablar de todas las posibilidades de arquitecturas de redes y balanceadores compatibles. ¿Que tiene de malo? 2 cosas, lo primero que necesita una exagerada cantidad de hierro para funcionar adecuadamente (mirar los requisistos minimos de la version 4) y que no podras actualizar tu cluster, dependeras de openshift para todo.
A mi me no me gusta especialmente, prefiero soluciones mas ligeras y desacopladas y asi poder optimizar, cambiar , probar , actualizar y tocar el codigo de todo lo que instalo si hace falta pero he de reconocer que es una solucion muy completa y robusta. ¿Acabaremos usando todos tambien podman en vez de docker?.
Aqui os dejo una openshift list con un ejemplo de un mongodb en alta diponibilidad en statefulset
apiVersion: apps.openshift.io/v1
kind: List
items:
- apiVersion: apps/v1
kind: StatefulSet
metadata:
annotations:
labels:
app: mongodb-service-ha
name: mongodb
name: mongodb
namespace: test-project
spec:
podManagementPolicy: OrderedReady
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
name: mongodb
serviceName: mongodb-internal
template:
metadata:
labels:
name: mongodb
spec:
containers:
- args:
- run-mongod-pet
env:
- name: MONGODB_USER
value: mongouser
- name: MONGODB_PASSWORD
value: userpassword
- name: MONGODB_DATABASE
value: dbsample
- name: MONGODB_ADMIN_PASSWORD
value: adminpassword
- name: MONGODB_REPLICA_NAME
value: rs0
- name: MONGODB_KEYFILE_VALUE
value: keysecretvalue
- name: MONGODB_SERVICE_NAME
value: mongodb-internal
image: centos/mongodb-32-centos7
imagePullPolicy: Always
name: mongo-container
ports:
- containerPort: 27017
protocol: TCP
readinessProbe:
exec:
command:
- stat
- /tmp/initialized
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
memory: 512Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/lib/mongodb/data
name: mongo-data
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 30
volumeClaimTemplates:
- metadata:
name: mongo-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
- apiVersion: v1
kind: Service
metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: 'true'
labels:
app: mongodb-service-ha
name: mongodb-internal
namespace: test-project
spec:
clusterIP: None
ports:
- name: mongodb
port: 27017
protocol: TCP
targetPort: 27017
selector:
name: mongodb
type: ClusterIP
- apiVersion: v1
kind: Service
metadata:
annotations:
labels:
app: mongodb-service-ha
name: mongodb-service
namespace: test-project
spec:
ports:
- name: mongodb
port: 27017
protocol: TCP
targetPort: 27017
selector:
name: mongodb
type: ClusterIP
0 comentarios