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