{"id":2184,"date":"2017-01-03T19:46:07","date_gmt":"2017-01-03T19:46:06","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2184"},"modified":"2025-06-13T17:14:11","modified_gmt":"2025-06-14T00:14:11","slug":"kubernetes-cluster-amazon-expose-service","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/kubernetes-cluster-amazon-expose-service\/","title":{"rendered":"Cluster do Kubernetes na Amazon e exposi\u00e7\u00e3o do servi\u00e7o Couchbase"},"content":{"rendered":"<p>Este blog faz parte de uma s\u00e9rie de blogs com v\u00e1rias partes que mostra como executar seus aplicativos no Kubernetes. Ele usar\u00e1 o\u00a0<a href=\"https:\/\/developer.couchbase.com\/server\">Couchbase<\/a>um banco de dados de documentos distribu\u00eddos NoSQL de c\u00f3digo aberto, como o Docker<br \/>\ncont\u00eainer.<\/p>\n<p>A primeira parte (<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-on-kubernetes\/\">Couchbase no Kubernetes<\/a>) explicou como iniciar o cluster do Kubernetes usando o Vagrant. Essa \u00e9 uma maneira simples e f\u00e1cil de desenvolver, testar e implantar<br \/>\ncluster do Kubernetes em seu computador local. Mas isso pode ser de uso limitado em breve, pois os recursos s\u00e3o limitados pelo computador local. Ent\u00e3o, o que voc\u00ea faz?<\/p>\n<p>O cluster do Kubernetes tamb\u00e9m pode ser instalado na Amazon. Esta segunda parte mostrar\u00e1:<\/p>\n<ul>\n<li>Como configurar e iniciar o cluster do Kubernetes no Amazon Web Services<\/li>\n<li>Execute o cont\u00eainer do Docker no cluster do Kubernetes<\/li>\n<li>Expor o pod no Kubernetes como servi\u00e7o<\/li>\n<li>Desligar o cluster<\/li>\n<\/ul>\n<p>Aqui est\u00e1 uma vis\u00e3o geral r\u00e1pida:<\/p>\n<p><a href=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/couchbase-kubernetes-cluster-amazon-overview-1024x600.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13709\" src=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/couchbase-kubernetes-cluster-amazon-overview-1024x600.png\" alt=\"Kubernetes Cluster on Amazon with Couchbase\" width=\"604\" height=\"354\" \/><\/a><\/p>\n<p>Vamos ver os detalhes!<\/p>\n<h2>Configurar o cluster do Kubernetes no Amazon Web Services<\/h2>\n<p><a href=\"https:\/\/kubernetes.io\/v1.1\/docs\/getting-started-guides\/aws.html\">Primeiros passos no AWS EC2<\/a>\u00a0fornecem instru\u00e7\u00f5es completas para iniciar o cluster do Kubernetes na Amazon. Certifique-se de ter os pr\u00e9-requisitos (conta do AWS, AWS CLI, acesso total ao EC2)<br \/>\nantes de seguir estas instru\u00e7\u00f5es. O cluster do Kubernetes pode ser criado na Amazon como:<\/p>\n<pre class=\"lang:default decode:true\">set KUBERNETES_PROVIDER=aws\r\n.\/cluster\/kube-up.sh<\/pre>\n<p>Por padr\u00e3o, isso provisiona um novo VPC e um cluster Kubernetes de 4 n\u00f3s em <code>us-west-2a<\/code> (Oregon) com <code>t2.micro\u00a0<\/code>inst\u00e2ncias em execu\u00e7\u00e3o no Ubuntu. Isso significa que s\u00e3o criadas 5 AMIs (uma para o mestre e 4 para os n\u00f3s de trabalho). Algumas<br \/>\npropriedades que merecem ser atualizadas:<\/p>\n<ul>\n<li>Conjunto <code>NUM_MINIONS<\/code> para qualquer n\u00famero de n\u00f3s necess\u00e1rios no cluster. Defina-a como 2 se quiser que apenas dois n\u00f3s de trabalho sejam criados.<\/li>\n<li>Cada tamanho de inst\u00e2ncia \u00e9 1.1.x \u00e9 <code>t2.micro<\/code>. Definir <code>TAMANHO_MESTRE<\/code> e <code>MINION_SIZE<\/code> vari\u00e1veis de ambiente para\u00a0<code>m3.medium\u00a0<\/code>caso contr\u00e1rio, os n\u00f3s v\u00e3o se arrastar.<\/li>\n<\/ul>\n<p>Se voc\u00ea baixou o Kubernetes de <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/releases\">github.com\/kubernetes\/kubernetes\/releases<\/a>todos os valores podem ser alterados em\u00a0<code>cluster\/aws\/config-default.sh<\/code>. Iniciando o Kubernetes em<br \/>\nA Amazon mostra o seguinte registro:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kube-up.sh\r\n... Starting cluster using provider: aws\r\n... calling verify-prereqs\r\n... calling kube-up\r\nStarting cluster using os distro: vivid\r\nUploading to Amazon S3\r\n+++ Staging server tars to S3 Storage: kubernetes-staging-0eaf81fbc51209dd47c13b6d8b424149\/devel\r\n{\r\n    \"InstanceProfile\": {\r\n        \"InstanceProfileId\": \"AIPAJMNMKZSXNWXQBHXHI\",\r\n        \"Roles\": [\r\n            {\r\n                \"RoleName\": \"kubernetes-master\",\r\n                \"AssumeRolePolicyDocument\": {\r\n                    \"Version\": \"2012-10-17\",\r\n                    \"Statement\": [\r\n                        {\r\n                            \"Action\": \"sts:AssumeRole\",\r\n                            \"Effect\": \"Allow\",\r\n                            \"Principal\": {\r\n                                \"Service\": \"ec2.amazonaws.com\"\r\n                            }\r\n                        }\r\n                    ]\r\n                },\r\n                \"CreateDate\": \"2016-02-29T23:19:17Z\",\r\n                \"Path\": \"\/\",\r\n                \"RoleId\": \"AROAJW7ER37BPXX5KFTFS\",\r\n                \"Arn\": \"arn:aws:iam::598307997273:role\/kubernetes-master\"\r\n            }\r\n        ],\r\n        \"Arn\": \"arn:aws:iam::598307997273:instance-profile\/kubernetes-master\",\r\n        \"CreateDate\": \"2016-02-29T23:19:19Z\",\r\n        \"Path\": \"\/\",\r\n        \"InstanceProfileName\": \"kubernetes-master\"\r\n    }\r\n}\r\n{\r\n    \"InstanceProfile\": {\r\n        \"InstanceProfileId\": \"AIPAILRAU7RF4R2SDCULG\",\r\n        \"Path\": \"\/\",\r\n        \"Arn\": \"arn:aws:iam::598307997273:instance-profile\/kubernetes-minion\",\r\n        \"Roles\": [\r\n            {\r\n                \"Path\": \"\/\",\r\n                \"AssumeRolePolicyDocument\": {\r\n                    \"Statement\": [\r\n                        {\r\n                            \"Effect\": \"Allow\",\r\n                            \"Action\": \"sts:AssumeRole\",\r\n                            \"Principal\": {\r\n                                \"Service\": \"ec2.amazonaws.com\"\r\n                            }\r\n                        }\r\n                    ],\r\n                    \"Version\": \"2012-10-17\"\r\n                },\r\n                \"RoleName\": \"kubernetes-minion\",\r\n                \"Arn\": \"arn:aws:iam::598307997273:role\/kubernetes-minion\",\r\n                \"RoleId\": \"AROAIBEPV6VW4IEE6MRHS\",\r\n                \"CreateDate\": \"2016-02-29T23:19:21Z\"\r\n            }\r\n        ],\r\n        \"InstanceProfileName\": \"kubernetes-minion\",\r\n        \"CreateDate\": \"2016-02-29T23:19:22Z\"\r\n    }\r\n}\r\nUsing SSH key with (AWS) fingerprint: 39:b3:cb:c1:af:6a:86:de:98:95:01:3d:9a:56:bb:8b\r\nCreating vpc.\r\nAdding tag to vpc-7b46ac1f: Name=kubernetes-vpc\r\nAdding tag to vpc-7b46ac1f: KubernetesCluster=kubernetes\r\nUsing VPC vpc-7b46ac1f\r\nCreating subnet.\r\nAdding tag to subnet-cc906fa8: KubernetesCluster=kubernetes\r\nUsing subnet subnet-cc906fa8\r\nCreating Internet Gateway.\r\nUsing Internet Gateway igw-40055525\r\nAssociating route table.\r\nCreating route table\r\nAdding tag to rtb-f2dc1596: KubernetesCluster=kubernetes\r\nAssociating route table rtb-f2dc1596 to subnet subnet-cc906fa8\r\nAdding route to route table rtb-f2dc1596\r\nUsing Route Table rtb-f2dc1596\r\nCreating master security group.\r\nCreating security group kubernetes-master-kubernetes.\r\nAdding tag to sg-308b3357: KubernetesCluster=kubernetes\r\nCreating minion security group.\r\nCreating security group kubernetes-minion-kubernetes.\r\nAdding tag to sg-3b8b335c: KubernetesCluster=kubernetes\r\nUsing master security group: kubernetes-master-kubernetes sg-308b3357\r\nUsing minion security group: kubernetes-minion-kubernetes sg-3b8b335c\r\nStarting Master\r\nAdding tag to i-b71a6f70: Name=kubernetes-master\r\nAdding tag to i-b71a6f70: Role=kubernetes-master\r\nAdding tag to i-b71a6f70: KubernetesCluster=kubernetes\r\nWaiting for master to be ready\r\nAttempt 1 to check for master nodeWaiting for instance i-b71a6f70 to spawn\r\nSleeping for 3 seconds...\r\nWaiting for instance i-b71a6f70 to spawn\r\nSleeping for 3 seconds...\r\nWaiting for instance i-b71a6f70 to spawn\r\nSleeping for 3 seconds...\r\nWaiting for instance i-b71a6f70 to spawn\r\nSleeping for 3 seconds...\r\nWaiting for instance i-b71a6f70 to spawn\r\nSleeping for 3 seconds...\r\nWaiting for instance i-b71a6f70 to spawn\r\nSleeping for 3 seconds...\r\n [master running @52.34.244.195]\r\nAttaching persistent data volume (vol-e072d316) to master\r\n{\r\n    \"Device\": \"\/dev\/sdb\",\r\n    \"State\": \"attaching\",\r\n    \"InstanceId\": \"i-b71a6f70\",\r\n    \"VolumeId\": \"vol-e072d316\",\r\n    \"AttachTime\": \"2016-03-02T18:10:15.985Z\"\r\n}\r\nAttempt 1 to check for SSH to master [ssh to master working]\r\nAttempt 1 to check for salt-master [salt-master not working yet]\r\nAttempt 2 to check for salt-master [salt-master not working yet]\r\nAttempt 3 to check for salt-master [salt-master not working yet]\r\nAttempt 4 to check for salt-master [salt-master not working yet]\r\nAttempt 5 to check for salt-master [salt-master not working yet]\r\nAttempt 6 to check for salt-master [salt-master not working yet]\r\nAttempt 7 to check for salt-master [salt-master not working yet]\r\nAttempt 8 to check for salt-master [salt-master not working yet]\r\nAttempt 9 to check for salt-master [salt-master not working yet]\r\nAttempt 10 to check for salt-master [salt-master not working yet]\r\nAttempt 11 to check for salt-master [salt-master not working yet]\r\nAttempt 12 to check for salt-master [salt-master not working yet]\r\nAttempt 13 to check for salt-master [salt-master not working yet]\r\nAttempt 14 to check for salt-master [salt-master running]\r\nCreating minion configuration\r\nCreating autoscaling group\r\n 0 minions started; waiting\r\n 0 minions started; waiting\r\n 0 minions started; waiting\r\n 0 minions started; waiting\r\n 2 minions started; ready\r\nWaiting 3 minutes for cluster to settle\r\n..................Re-running salt highstate\r\nWaiting for cluster initialization.\r\n\r\n  This will continually check to see if the API for kubernetes is reachable.\r\n  This might loop forever if there was some uncaught error during start\r\n  up.\r\n\r\nKubernetes cluster created.\r\ncluster \"aws_kubernetes\" set.\r\nuser \"aws_kubernetes\" set.\r\ncontext \"aws_kubernetes\" set.\r\nswitched to context \"aws_kubernetes\".\r\nWrote config for aws_kubernetes to \/Users\/arungupta\/.kube\/config\r\nSanity checking cluster...\r\nAttempt 1 to check Docker on node @ 52.37.172.215 ...not working yet\r\nAttempt 2 to check Docker on node @ 52.37.172.215 ...not working yet\r\nAttempt 3 to check Docker on node @ 52.37.172.215 ...working\r\nAttempt 1 to check Docker on node @ 52.27.90.19 ...working\r\n\r\nKubernetes cluster is running.  The master is running at:\r\n\r\n  https:\/\/52.34.244.195\r\n\r\nThe user name and password to use is located in \/Users\/arungupta\/.kube\/config.\r\n\r\n... calling validate-cluster\r\nWaiting for 2 ready nodes. 1 ready nodes, 2 registered. Retrying.\r\nFound 2 node(s).\r\nNAME                                        LABELS                                                             STATUS    AGE\r\nip-172-20-0-92.us-west-2.compute.internal   kubernetes.io\/hostname=ip-172-20-0-92.us-west-2.compute.internal   Ready     56s\r\nip-172-20-0-93.us-west-2.compute.internal   kubernetes.io\/hostname=ip-172-20-0-93.us-west-2.compute.internal   Ready     35s\r\nValidate output:\r\nNAME                 STATUS    MESSAGE              ERROR\r\ncontroller-manager   Healthy   ok                   nil\r\nscheduler            Healthy   ok                   nil\r\netcd-0               Healthy   {\"health\": \"true\"}   nil\r\netcd-1               Healthy   {\"health\": \"true\"}   nil\r\nCluster validation succeeded\r\nDone, listing cluster services:\r\n\r\nKubernetes master is running at https:\/\/52.34.244.195\r\nElasticsearch is running at https:\/\/52.34.244.195\/api\/v1\/proxy\/namespaces\/kube-system\/services\/elasticsearch-logging\r\nHeapster is running at https:\/\/52.34.244.195\/api\/v1\/proxy\/namespaces\/kube-system\/services\/heapster\r\nKibana is running at https:\/\/52.34.244.195\/api\/v1\/proxy\/namespaces\/kube-system\/services\/kibana-logging\r\nKubeDNS is running at https:\/\/52.34.244.195\/api\/v1\/proxy\/namespaces\/kube-system\/services\/kube-dns\r\nKubeUI is running at https:\/\/52.34.244.195\/api\/v1\/proxy\/namespaces\/kube-system\/services\/kube-ui\r\nGrafana is running at https:\/\/52.34.244.195\/api\/v1\/proxy\/namespaces\/kube-system\/services\/monitoring-grafana\r\nInfluxDB is running at https:\/\/52.34.244.195\/api\/v1\/proxy\/namespaces\/kube-system\/services\/monitoring-influxdb<\/pre>\n<p>O console da Amazon mostra:<\/p>\n<p><a href=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/kubernetes-cluster-amazon-1024x222.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13705\" src=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/kubernetes-cluster-amazon-1024x222.png\" alt=\"Kubernetes Cluster on Amazon\" width=\"604\" height=\"131\" \/><\/a><\/p>\n<p>Tr\u00eas inst\u00e2ncias s\u00e3o criadas conforme mostrado - uma para o n\u00f3 mestre e duas para os n\u00f3s de trabalho. O nome de usu\u00e1rio e a senha do mestre do Kubernetes s\u00e3o armazenados em\u00a0<code>\/Usu\u00e1rios\/arungupta\/.kube\/config<\/code>. Procure uma se\u00e7\u00e3o como:<\/p>\n<pre class=\"lang:default decode:true\">- name: aws_kubernetes\r\n  user:\r\n    client-certificate-data: DATA\r\n    client-key-data: DATA\r\n    password: 3FkxcAURLCWBXc9H\r\n    username: admin<\/pre>\n<h2>Execute o cont\u00eainer do Docker no Kubernetes Cluster na Amazon<\/h2>\n<p>Agora que o cluster est\u00e1 em funcionamento, obtenha uma lista de todos os n\u00f3s:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kubectl.sh get no\r\nNAME                                        LABELS                                                             STATUS    AGE\r\nip-172-20-0-92.us-west-2.compute.internal   kubernetes.io\/hostname=ip-172-20-0-92.us-west-2.compute.internal   Ready     18m\r\nip-172-20-0-93.us-west-2.compute.internal   kubernetes.io\/hostname=ip-172-20-0-93.us-west-2.compute.internal   Ready     18m<\/pre>\n<p>Ele mostra dois n\u00f3s de trabalho. Crie um novo pod do Couchbase:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kubectl.sh executar couchbase --image=arungupta\/couchbase\r\nControlador de replica\u00e7\u00e3o \"couchbase\" criado<\/pre>\n<p>Observe como o nome da imagem pode ser especificado na CLI. Esse comando cria um controlador de replica\u00e7\u00e3o com um \u00fanico pod. O pod usa <a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/tree\/master\/couchbase\">arungupta\/couchbase<\/a> Imagem do Docker<br \/>\nque fornece um servidor Couchbase pr\u00e9-configurado. Qualquer imagem do Docker pode ser especificada aqui. Obtenha todos os recursos RC:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kubectl.sh get rc\r\nCONTROLLER   CONTAINER(S)   IMAGE(S)              SELECTOR        REPLICAS   AGE\r\ncouchbase    couchbase      arungupta\/couchbase   run=couchbase   1          12m<\/pre>\n<p>Isso mostra o controlador de replica\u00e7\u00e3o que foi criado para voc\u00ea. Obtenha todos os pods:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kubectl.sh get po\r\nNAME              READY     STATUS    RESTARTS   AGE\r\ncouchbase-kil4y   1\/1       Running   0          12m<\/pre>\n<p>A sa\u00edda mostra o pod que \u00e9 criado como parte do controlador de replica\u00e7\u00e3o. Obtenha mais detalhes sobre o Pod:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kubectl.sh describe po couchbase-kil4y\r\nName:    couchbase-kil4y\r\nNamespace:   default\r\nImage(s):   arungupta\/couchbase\r\nNode:    ip-172-20-0-93.us-west-2.compute.internal\/172.20.0.93\r\nStart Time:   Wed, 02 Mar 2016 10:25:47 -0800\r\nLabels:    run=couchbase\r\nStatus:    Running\r\nReason:    \r\nMessage:   \r\nIP:    10.244.1.4\r\nReplication Controllers: couchbase (1\/1 replicas created)\r\nContainers:\r\n  couchbase:\r\n    Container ID: docker:\/\/1c33e4f28978a5169a5d166add7c763de59839ed1f12865f4643456efdc0c60e\r\n    Image:  arungupta\/couchbase\r\n    Image ID:  docker:\/\/080e2e96b3fc22964f3dec079713cdf314e15942d6eb135395134d629e965062\r\n    QoS Tier:\r\n      cpu: Burstable\r\n    Requests:\r\n      cpu:  100m\r\n    State:  Running\r\n      Started:  Wed, 02 Mar 2016 10:26:18 -0800\r\n    Ready:  True\r\n    Restart Count: 0\r\n    Environment Variables:\r\nConditions:\r\n  Type  Status\r\n  Ready  True \r\nVolumes:\r\n  default-token-xuxn5:\r\n    Type: Secret (a secret that should populate this volume)\r\n    SecretName: default-token-xuxn5\r\nEvents:\r\n  FirstSeen LastSeen Count From       SubobjectPath  Reason  Message\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500       \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500  \u2500\u2500\u2500\u2500\u2500\u2500  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n  13m  13m  1 {scheduler }         Scheduled Successfully assigned couchbase-kil4y to ip-172-20-0-93.us-west-2.compute.internal\r\n  13m  13m  1 {kubelet ip-172-20-0-93.us-west-2.compute.internal} implicitly required container POD Pulled  Container image \"gcr.io\/google_containers\/pause:0.8.0\" already present on machine\r\n  13m  13m  1 {kubelet ip-172-20-0-93.us-west-2.compute.internal} implicitly required container POD Created  Created with docker id 3830f504a7b6\r\n  13m  13m  1 {kubelet ip-172-20-0-93.us-west-2.compute.internal} implicitly required container POD Started  Started with docker id 3830f504a7b6\r\n  13m  13m  1 {kubelet ip-172-20-0-93.us-west-2.compute.internal} spec.containers{couchbase}  Pulling  Pulling image \"arungupta\/couchbase\"\r\n  12m  12m  1 {kubelet ip-172-20-0-93.us-west-2.compute.internal} spec.containers{couchbase}  Pulled  Successfully pulled image \"arungupta\/couchbase\"\r\n  12m  12m  1 {kubelet ip-172-20-0-93.us-west-2.compute.internal} spec.containers{couchbase}  Created  Created with docker id 1c33e4f28978\r\n  12m  12m  1 {kubelet ip-172-20-0-93.us-west-2.compute.internal} spec.containers{couchbase}  Started  Started with docker id 1c33e4f28978<\/pre>\n<h2>Expor o pod no Kubernetes como servi\u00e7o<\/h2>\n<p>Agora que nosso pod est\u00e1 em execu\u00e7\u00e3o, como posso acessar o servidor Couchbase? Voc\u00ea precisa exp\u00f4-lo fora do cluster do Kubernetes. O <code>kubectl expose<\/code> pega um pod, servi\u00e7o ou controlador de replica\u00e7\u00e3o e o exp\u00f5e como um servi\u00e7o do Kubernetes. Vamos l\u00e1<br \/>\nexpor o controlador de replica\u00e7\u00e3o criado anteriormente e exp\u00f4-lo:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kubectl.sh expose rc couchbase --target-port=8091 --port=8091 --type=LoadBalancer\r\nservi\u00e7o \"couchbase\" exposto<\/pre>\n<p>Obtenha mais detalhes sobre o servi\u00e7o:<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kubectl.sh describe svc couchbase\r\nName:   couchbase\r\nNamespace:  default\r\nLabels:   run=couchbase\r\nSelector:  run=couchbase\r\nType:   LoadBalancer\r\nIP:   10.0.158.93\r\nLoadBalancer Ingress: a44d3f016e0a411e5888f0206c9933da-1869988881.us-west-2.elb.amazonaws.com\r\nPort:    8091\/TCP\r\nNodePort:   32415\/TCP\r\nEndpoints:  10.244.1.4:8091\r\nSession Affinity: None\r\nEvents:\r\n  FirstSeen LastSeen Count From   SubobjectPath Reason   Message\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n  7s  7s  1 {service-controller }   CreatingLoadBalancer Creating load balancer\r\n  5s  5s  1 {service-controller }   CreatedLoadBalancer Created load balancer<\/pre>\n<p>O <code>Balanceador de carga<\/code> O atributo Ingress fornece o endere\u00e7o do balanceador de carga que agora est\u00e1 acess\u00edvel publicamente. Aguarde 3 minutos para que o balanceador de carga se estabilize. Acesse-o usando a porta 8091 e a p\u00e1gina de login para<br \/>\nO Console da Web do Couchbase \u00e9 exibido:<br \/>\n<a href=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/couchbase-kubernetes-login-page.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13707\" src=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/couchbase-kubernetes-login-page.png\" alt=\"Kubernetes on Amazon - Couchbase Login Page\" width=\"790\" height=\"468\" \/><\/a><\/p>\n<p>Digite as credenciais como \"Administrator\" e \"password\" para ver o console da Web:<br \/>\n<a href=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/cuochbase-kubernetes-amazon-web-console-1024x544.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13708\" src=\"\/wp-content\/original-assets\/march-2016\/kubernetes-cluster-on-amazon-and-expose-couchbase-service\/cuochbase-kubernetes-amazon-web-console-1024x544.png\" alt=\"Kubernetes on Amazon - Couchbase Web Console\" width=\"604\" height=\"321\" \/><\/a><\/p>\n<p>Assim, voc\u00ea acabou de acessar seu pod fora do cluster do Kubernetes.<\/p>\n<h2>Encerrar o cluster do Kubernetes<\/h2>\n<p>Por fim, desligue o cluster usando <code>cluster\/kube-down.sh<\/code> roteiro.<\/p>\n<pre class=\"lang:default decode:true\">.\/kubernetes\/cluster\/kube-down.sh \r\nBringing down cluster using provider: aws\r\nDeleting ELBs in: vpc-7b46ac1f\r\nWaiting for ELBs to be deleted\r\nAll ELBs deleted\r\nDeleting auto-scaling group: kubernetes-minion-group\r\nDeleting auto-scaling launch configuration: kubernetes-minion-group\r\nDeleting instances in VPC: vpc-7b46ac1f\r\nWaiting for instances to be deleted\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-45077282 i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nInstances not yet deleted: i-44077283 i-b71a6f70\r\nSleeping for 3 seconds...\r\nAll instances deleted\r\nDeleting VPC: vpc-7b46ac1f\r\nCleaning up security group: sg-308b3357\r\nCleaning up security group: sg-3b8b335c\r\nCleaning up security group: sg-e3813984\r\nDeleting security group: sg-308b3357\r\nDeleting security group: sg-3b8b335c\r\nDeleting security group: sg-e3813984\r\nDone<\/pre>\n<p>Para uma limpeza completa, voc\u00ea ainda precisa excluir explicitamente o bucket do S3 onde os bin\u00e1rios do Kubernetes est\u00e3o armazenados.<\/p>\n<p>Aproveite!<\/p>","protected":false},"excerpt":{"rendered":"<p>This blog is part of a multi-part\u00a0blog series that shows how to run your applications\u00a0on Kubernetes. It will use the\u00a0Couchbase, an open source NoSQL distributed document database, as the\u00a0\u00a0Docker container. The first part (Couchbase on Kubernetes)\u00a0explained\u00a0how to start the\u00a0Kubernetes cluster [&hellip;]<\/p>","protected":false},"author":58,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[10124,1545],"ppma_author":[8933],"class_list":["post-2184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","tag-amazon-web-services-aws","tag-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kubernetes Cluster on Amazon and Expose Couchbase Service - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/kubernetes-cluster-amazon-expose-service\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes Cluster on Amazon and Expose Couchbase Service\" \/>\n<meta property=\"og:description\" content=\"This blog is part of a multi-part\u00a0blog series that shows how to run your applications\u00a0on Kubernetes. It will use the\u00a0Couchbase, an open source NoSQL distributed document database, as the\u00a0\u00a0Docker container. The first part (Couchbase on Kubernetes)\u00a0explained\u00a0how to start the\u00a0Kubernetes cluster [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/kubernetes-cluster-amazon-expose-service\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-03T19:46:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:14:11+00:00\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Kubernetes Cluster on Amazon and Expose Couchbase Service\",\"datePublished\":\"2017-01-03T19:46:06+00:00\",\"dateModified\":\"2025-06-14T00:14:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/\"},\"wordCount\":607,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Amazon Web Services (AWS)\",\"kubernetes\"],\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/\",\"name\":\"Kubernetes Cluster on Amazon and Expose Couchbase Service - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-03T19:46:06+00:00\",\"dateModified\":\"2025-06-14T00:14:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kubernetes Cluster on Amazon and Expose Couchbase Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kubernetes Cluster on Amazon and Expose Couchbase Service - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/kubernetes-cluster-amazon-expose-service\/","og_locale":"pt_BR","og_type":"article","og_title":"Kubernetes Cluster on Amazon and Expose Couchbase Service","og_description":"This blog is part of a multi-part\u00a0blog series that shows how to run your applications\u00a0on Kubernetes. It will use the\u00a0Couchbase, an open source NoSQL distributed document database, as the\u00a0\u00a0Docker container. The first part (Couchbase on Kubernetes)\u00a0explained\u00a0how to start the\u00a0Kubernetes cluster [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/kubernetes-cluster-amazon-expose-service\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-03T19:46:06+00:00","article_modified_time":"2025-06-14T00:14:11+00:00","author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Kubernetes Cluster on Amazon and Expose Couchbase Service","datePublished":"2017-01-03T19:46:06+00:00","dateModified":"2025-06-14T00:14:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/"},"wordCount":607,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Amazon Web Services (AWS)","kubernetes"],"articleSection":["Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/","url":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/","name":"Kubernetes Cluster on Amazon and Expose Couchbase Service - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-03T19:46:06+00:00","dateModified":"2025-06-14T00:14:11+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/kubernetes-cluster-amazon-expose-service\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kubernetes Cluster on Amazon and Expose Couchbase Service"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta \u00e9 o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experi\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE. Gupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre uma infinidade de t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Arun","job_title":"","user_url":"","description":"Arun Gupta \u00e9 o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experi\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE.\r\n\r\nGupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre diversos t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2184"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2184\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2184"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}