Publicando uma api GO no Digital Ocean Kubernetes
10149 단어 cloudkubernetesgodigitalocean
Kubernetes (K8s)는 오픈 소스를 자동으로 이식하여 사용하는 제품으로, 컨테이너에서 응용 프로그램의 크기를 확장합니다.
보라라
Primeiramente precisamos ter uma api funcional com Dockerfile configurado, né? rsrs Se você não sabe como criar uma api Go acompanha a série de no dev.to.
컨테이너 레지스트리
Com sua api pronta bora colocar ela em um Container Registry privado. Digital Ocean 서비스를 이용하십시오.
Crie uma conta na Digital Ocean Container Registry의 메뉴 중 하나입니다.
Depois criaremos um token de acesso para utilizarmos na autenticação do command line.
Gere o token e guarde ele em um local seguro!
Feito isso, baixo or command line interface da Digital Ocean (doctl) aqui: https://docs.digitalocean.com/reference/doctl/how-to/install/
Com o doctl instalado bem bonitinho. Vamos logar no nosso 컨테이너 레지스트리.
doctl auth init -t <access_token>
doctl registry login
De volta na página do container registry, copy o endereço disponibilizado do do repositório.
터미널 없음, Dockerfile 구성이 탔던 응용 프로그램:
docker build -t registry.digitalocean.com/booscaaa/clean-go .
docker push registry.digitalocean.com/booscaaa/clean-go
빨리! 이 이미지는 Digital Ocean의 컨테이너 레지스트리가 아닙니다.
쿠버네티스
Vamos criar nosso primeiro cluster de Kubernetes, para isso vamos em:
지침으로 Siga 시작하기:
E por fim aguarde o cluster terminar de ser criado.
Com o cluster criado, vamos autenticar nosso registry para que o kubectl consiga baixar a imagem sem nenhum problema.
doctl registry kubernetes-manifest | kubectl apply -f -
kubectl create secret generic do-registry --from-file=.dockerconfigjson=docker-config.json --type=kubernetes.io/dockerconfigjson
Vamos criar um arquivo em kubernetes/api.yaml
apiVersion: v1
kind: Service
metadata:
name: api
spec:
ports:
- protocol: TCP
port: 80
targetPort: 3000
selector:
app: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
spec:
replicas: 4
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
containers:
- name: api
image: registry.digitalocean.com/booscaaa/clean-go
resources:
limits:
memory: "128Mi"
cpu: "100m"
ports:
- containerPort: 3000
Para aplicar a alteração vamos rodar.
kubectl apply -f kubernetes/api.yaml
Para ver o pod e os services rodando:
kubectl get pods
kubectl get services
Nginx 인그레스 설치
nossa api ainda não tem acesso ex .
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
spec:
ingressClassName: nginx
rules:
- http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: api
port:
number: 80
Aplicar as alterações basta rodar:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.2/deploy/static/provider/cloud/deploy.yaml
kubectl apply -f kubernetes/ingress.yaml
그게 뭐야?
Isso acabou de criar um load balancer na Digital Ocean e expôs nossos services internos para a porta 80 do ip externo do load balancer.
Lembrando que os recursos a serem explorados com o Nginx Ingress são diversos. Um deles e muito útil é configurar o domínio/subdomínio da aplicação e, com o cert manager, gerar os certificados de SSL automaticamente.
E 급히. API는 쿠버네티스와 함께 작동합니다!
Reference
이 문제에 관하여(Publicando uma api GO no Digital Ocean Kubernetes), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/booscaaa/publicando-uma-api-go-no-digital-ocean-kubernetes-49f3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Com sua api pronta bora colocar ela em um Container Registry privado. Digital Ocean 서비스를 이용하십시오.
Crie uma conta na Digital Ocean Container Registry의 메뉴 중 하나입니다.
Depois criaremos um token de acesso para utilizarmos na autenticação do command line.
Gere o token e guarde ele em um local seguro!
Feito isso, baixo or command line interface da Digital Ocean (doctl) aqui: https://docs.digitalocean.com/reference/doctl/how-to/install/
Com o doctl instalado bem bonitinho. Vamos logar no nosso 컨테이너 레지스트리.
doctl auth init -t <access_token>
doctl registry login
De volta na página do container registry, copy o endereço disponibilizado do do repositório.
터미널 없음, Dockerfile 구성이 탔던 응용 프로그램:
docker build -t registry.digitalocean.com/booscaaa/clean-go .
docker push registry.digitalocean.com/booscaaa/clean-go
빨리! 이 이미지는 Digital Ocean의 컨테이너 레지스트리가 아닙니다.
쿠버네티스
Vamos criar nosso primeiro cluster de Kubernetes, para isso vamos em:
지침으로 Siga 시작하기:
E por fim aguarde o cluster terminar de ser criado.
Com o cluster criado, vamos autenticar nosso registry para que o kubectl consiga baixar a imagem sem nenhum problema.
doctl registry kubernetes-manifest | kubectl apply -f -
kubectl create secret generic do-registry --from-file=.dockerconfigjson=docker-config.json --type=kubernetes.io/dockerconfigjson
Vamos criar um arquivo em kubernetes/api.yaml
apiVersion: v1
kind: Service
metadata:
name: api
spec:
ports:
- protocol: TCP
port: 80
targetPort: 3000
selector:
app: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
spec:
replicas: 4
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
containers:
- name: api
image: registry.digitalocean.com/booscaaa/clean-go
resources:
limits:
memory: "128Mi"
cpu: "100m"
ports:
- containerPort: 3000
Para aplicar a alteração vamos rodar.
kubectl apply -f kubernetes/api.yaml
Para ver o pod e os services rodando:
kubectl get pods
kubectl get services
Nginx 인그레스 설치
nossa api ainda não tem acesso ex .
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
spec:
ingressClassName: nginx
rules:
- http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: api
port:
number: 80
Aplicar as alterações basta rodar:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.2/deploy/static/provider/cloud/deploy.yaml
kubectl apply -f kubernetes/ingress.yaml
그게 뭐야?
Isso acabou de criar um load balancer na Digital Ocean e expôs nossos services internos para a porta 80 do ip externo do load balancer.
Lembrando que os recursos a serem explorados com o Nginx Ingress são diversos. Um deles e muito útil é configurar o domínio/subdomínio da aplicação e, com o cert manager, gerar os certificados de SSL automaticamente.
E 급히. API는 쿠버네티스와 함께 작동합니다!
Reference
이 문제에 관하여(Publicando uma api GO no Digital Ocean Kubernetes), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/booscaaa/publicando-uma-api-go-no-digital-ocean-kubernetes-49f3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
doctl registry kubernetes-manifest | kubectl apply -f -
kubectl create secret generic do-registry --from-file=.dockerconfigjson=docker-config.json --type=kubernetes.io/dockerconfigjson
apiVersion: v1
kind: Service
metadata:
name: api
spec:
ports:
- protocol: TCP
port: 80
targetPort: 3000
selector:
app: api
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
spec:
replicas: 4
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
containers:
- name: api
image: registry.digitalocean.com/booscaaa/clean-go
resources:
limits:
memory: "128Mi"
cpu: "100m"
ports:
- containerPort: 3000
kubectl apply -f kubernetes/api.yaml
kubectl get pods
kubectl get services
nossa api ainda não tem acesso ex .
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
spec:
ingressClassName: nginx
rules:
- http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: api
port:
number: 80
Aplicar as alterações basta rodar:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.2/deploy/static/provider/cloud/deploy.yaml
kubectl apply -f kubernetes/ingress.yaml
그게 뭐야?
Isso acabou de criar um load balancer na Digital Ocean e expôs nossos services internos para a porta 80 do ip externo do load balancer.
Lembrando que os recursos a serem explorados com o Nginx Ingress são diversos. Um deles e muito útil é configurar o domínio/subdomínio da aplicação e, com o cert manager, gerar os certificados de SSL automaticamente.
E 급히. API는 쿠버네티스와 함께 작동합니다!
Reference
이 문제에 관하여(Publicando uma api GO no Digital Ocean Kubernetes), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/booscaaa/publicando-uma-api-go-no-digital-ocean-kubernetes-49f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)