// Aula 24 - Work Queue Job https://kubernetes.io/docs/tasks/job/coarse-parallel-processing-work-queue/ https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/ # vim rs-queue.yaml # rs-queue.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: queue labels: app: work-queue component: queue chapter: jobs spec: replicas: 1 selector: matchLabels: app: work-queue template: metadata: labels: app: work-queue component: queue chapter: jobs spec: containers: - name: queue image: gcr.io/kuar-demo/kuard-amd64:1 imagePullPolicy: Always # kubectl apply -f rs-queue.yaml # QUEUE_POD=$(kubectl get pods -l app=work-queue,component=queue -o jsonpath='{.items[0].metadata.name}') # kubectl port-forward $QUEUE_POD 8080:8080 http://localhost:8080/ # vim service-queue.yaml # service-queue.yaml apiVersion: v1 kind: Service metadata: labels: app: work-queue component: queue chapter: jobs name: queue spec: ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: work-queue component: queue # kubectl apply -f service-queue.yaml # vim test.queue.sh # test.queue.sh # Crie uma fila de trabalho chamada 'keygen' curl -X PUT localhost:8080/memq/server/queues/keygen # Crie 100 itens de jobs e carregue a queue for i in work-item-{0..99}; do curl -X POST localhost:8080/memq/server/queues/keygen/enqueue \ -d "$i" done # bash test.queue.sh # curl 127.0.0.1:8080/memq/server/stats # vim job-consumers.yaml # job-consumers.yaml apiVersion: batch/v1 kind: Job metadata: labels: app: message-queue component: consumer chapter: jobs name: consumers spec: parallelism: 5 template: metadata: labels: app: message-queue component: consumer chapter: jobs spec: containers: - name: worker image: "gcr.io/kuar-demo/kuard-amd64:1" imagePullPolicy: Always args: - "--keygen-enable" - "--keygen-exit-on-complete" - "--keygen-memq-server=http://queue:8080/memq/server" - "--keygen-memq-queue=keygen" restartPolicy: OnFailure # kubectl apply -f job-consumers.yaml # kubectl get pods # curl 127.0.0.1:8080/memq/server/stats # kubectl get pods # kubectl delete rs,svc,job -l chapter=jobs