Além do CPU: escalonamento horizontal automático de pod com métricas personalizadas no Google Kubernetes Engine
6/12/18
[Nota do editor: esta é uma das diversas postagens sobre as novas possibilidades oferecidas pelo Kubernetes 1.10. Para ver todos os detalhes, clique aqui.]
Muitos clientes do Kubernetes Engine, principalmente empresas, precisam fazer o escalonamento automático dos ambientes não só se acordo com o uso de CPU, mas também com coisas como tamanho da fila ou conexões permanentes simultâneas. No Kubernetes Engine 1.9, começamos a adicionar recursos para resolver esse problema e, hoje, com a mais recente versão beta do Horizontal Pod Autoscaler (HPA) no Kubernetes Engine 1.10, você passa a poder configurar suas implementações para se dimensionarem no sentido horizontal de várias formas diferentes.
Para ajudar você a entender melhor as diversas opções de escalonamento horizontal, temos aqui a Barbara, engenheira de DevOps que trabalha em uma multinacional de transmissão de vídeo. A Barbara executa seu ambiente no Kubernetes Engine, incluindo os microsserviços abaixo:
- Um serviço de transcodificação de vídeo que processa vídeos recém-publicados.
- Uma fila do Google Cloud Pub/Sub para a lista de vídeos que o serviço de transcodificação precisa processar
- Um front-end de exibição do vídeo que transmite os vídeos para os usuários
![]() |
Um diagrama superficial do aplicativo da Barbara. |
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: transcoding-worker
namespace: video
spec:
minReplicas: 1
maxReplicas: 20
metrics:
- external:
metricName: pubsub.googleapis.com|subscription|num_undelivered_messages
metricSelector:
matchLabels:
resource.labels.subscription_id: transcoder_subscription
targetAverageValue: "10"
type: External
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: transcoding-worker
Para gerenciar as reduções de escala da forma certa, a Barbara também não deixa de usar períodos de carência para o encerramento de pods longos o suficiente para que as transcodificações já em andamento nos pods sejam concluídas. Ela também programa seu aplicativo para parar de processar novos itens da fila quando receber o sinal de encerramento SIGTERM do Kubernetes Engine.![]() |
Um diagrama geral do aplicativo da Barbara mostrando o gargalo de escalonamento. |
Quando os vídeos são transcodificados, a Barbara precisa garantir uma experiência de visualização excelente para os usuários. Ela identifica o gargalo do front-end de exibição: o número de conexões permanentes simultâneas que uma única réplica consegue gerenciar. Cada um dos pods já expõe o número atual de conexões abertas, assim ela configura o objeto HPA para manter o valor médio de conexões abertas por pod em um nível confortável. Para fazer isso, ela usa o tipo de métrica personalizada "Pods".
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: frontend
namespace: video
spec:
minReplicas: 4
maxReplicas: 40
metrics:
- type: Pods
pods:
metricName: open_connections
targetAverageValue: 100
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: frontend
Para dimensionar com base no número de conexões permanentes simultâneas da forma desejada, a Barbara também usa sondas de prontidão de forma que possíveis pods saturados sejam removidos temporariamente do serviço até que a situação melhore. Ela também garante que o cliente transmissor possa se recuperar rapidamente se o pod de exibição atual tiver as dimensões reduzidas.Um ponto importante aqui é que os pods dela expõem a métrica "open_connections" como um ponto de extremidade do Prometheus a monitorar. A Barbara usa o secundário (sidecar) "prometheus-to-sd" para disponibilizar essas métricas no Stackdriver. Para fazer isso, ela adiciona o YAML a seguir à configuração de implantação do front-end. Se quiser ver mais formas de exportar métricas e usá-las no escalonamento automático, clique aqui.
containers:
...
- name: prometheus-to-sd
image: gcr.io/google-containers/prometheus-to-sd:v0.2.6
command:
- /monitor
- --source=:http://localhost:8080
- --stackdriver-prefix=custom.googleapis.com
- --pod-id=$(POD_ID)
- --namespace-id=$(POD_NAMESPACE)
env:
- name: POD_ID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
Recentemente, a empresa da Barbara lançou um novo recurso: a transmissão de vídeos ao vivo. Isso gera um novo gargalo ao front-end de exibição. Agora, o front-end precisa transcodificar alguns fluxos em tempo real, o que consome muitos recursos da CPU e reduz o número de conexões que uma única réplica consegue gerenciar.![]() |
Um diagrama geral do aplicativo da Barbara que mostra o novo gargalo devido à transcodificação ativa em tempo real da CPU. |
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: frontend
namespace: video
spec:
minReplicas: 4
maxReplicas: 40
metrics:
- type: Pods
pods:
metricName: open_connections
targetAverageValue: 100
- type: Resource
resource:
name: cpu
targetAverageUtilization: 60
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: frontend
Esses são só alguns dos cenários em que o HPA no Kubernetes pode ajudar bastante.
7 comments :
Telah hadir situs poker online terbesar dan terbaik di indonesia pokerlounge99 khusus buat kamu penggemar poker online. Dengan berbagai pelayanan terbaik yang tersedia, lapak303 menyediakan kenyamanan dalam bermain seperti yang anda impikan. Anda bisa menikmati Layanan yang cepat dalam hal Pendaftaran, DEPOSIT dan WITHDRAW. Menjadikan miyabipoker sebagai tempat yang tepat bagi Anda yang ingin bermain judi poker dengan uang asli yang ingin bermain aman dan nyaman.
Keamanan data dan rahasia pribadi member ItuPoker juga akan terjamin.
Ayo langsung kunjungi website kami di pokerclub88
AdSense adalah cara gratis dan mudah untuk memperoleh uang dengan menampilkan iklan bertarget di samping konten online Anda. Dengan AdSense, Anda dapat menampilkan iklan yang menarik dan relevan bagi pengunjung situs, bahkan menyesuaikan tampilan serta nuansa iklan agar sesuai dengan situs web Anda.
Di zaman sekarang ini Judi Poker Online adalah salah satu permainan judi yang sedang ramai dimainkan. Permainan judi poker awalnya memang hanya bisa dimainkan di casino saja. Sistem permainan poker di casino dinilai kurang menguntungkan, karena hanya bisa dimainkan oleh pemain dari kalangan tertentu saja. Selain itu, tidak semua pemain bisa mengunjungi casino untuk bermain judi poker karena berbagai alasan tertentu.Karena beberapa alasan tersebut, Situs Poker Online membuat sistem permainan judi poker yang dapat dimainkan secara online. Sistem permainan judi poker online kemudian diterima dengan sangat baik, terutama oleh sebagian besar pemain judi poker di Indonesia. Pasalnya, sistem permainan judi poker online dinilai lebih menguntungkan karena bisa dimainkan oleh semua pemainnya dengan modal yang lebih kecil.Selain itu, pemain judi poker online juga bisa mendapatkan promo berupa bonus-bonus menarik dari Situs Judi Online dan poker terbaik dan terpercaya di asia. Link alternatif judi online dan poker online sebagai berikut:
dewa poker
dewa poker
dewa poker
dewa poker
poker 88
ceme keliling
belum lengkap rasanya bagi pecinta game poker online kalau belum pernah cobain lapak303 temukan sensasi berbeda di
pokerbo bermain poker online lebih seru karena tingkat keamanan kami sangat tinggi dan stabil. banyak bonus menarik bagi member-member setia kami. jangan lewatkan promo geratis pendaftaran di pokerclub minimal deposit sangat rendah cuma 25 ribu anda sudah bisa memainkan game poker serta game seru lainnya. kunjungi link alternatif pokerlounge99 2019 sekarang juga. raih keberuntunganmu di
pokerrepublik
Anda pengen game yang asyik dan seru? Mungkin game kartupoker yang mempunyai konsep atau memiliki jenis game kartu bisa menjadi salah satu solusi terbaik untuk Anda. remipoker 2019 Selain game kartu remi ataupun game domino, Anda bisa mengandalkan game poker sebagai salah satu game kartu yang tergolong paling seru dan menarik untuk dimainkan di HP Android. sekarang bukan jamannya repot main game poker cukup dengan gadget atau komputer dirumah anda semua sudah bisa memainkan rajaqq dirumah sambil tiduran atau bersantai. anda bisa bermain mengajak teman-teman anda, cukup dengan login dengan facebook atau media sosial lainnya anda sudah bisa memainkan game indoqq ini. segera daftar di link alternatif dominoqq 2019dan raih hoki anda sebanyak-banyaknya.
WWW.NAGA303.COM hadir untuk pencinta permainan togel online ataupun tebak nomor berhadiah yang dikeluarkan dari SINGAPORE POOLS, JAKARTA POOLS, HONGKONG POOLS, SYDNEY POOLS, JOWO POOLS, SAIGON TOTO, 12 SHIO POOLS, BULLSEYE POOLS, MAGNUM4D, TOTO MACAU4D, VIRGINIA POOLS, CAROLINA POOLS, OREGON POOLS, NEW JERSEY POOLS, MISSOURI POOLS, KENTUCKY POOLS, CARIBBEAN POOLS, TRINIDAD & TABAGO POOLS, PENNSYLVANIA POOLS & GEORGIA POOLS Dengan togel singapura system enkripsi tingkat tinggi menjamin keamanan dan kerahasiaan data dari member-member kami. Naga303, Togel dan Live Casino dalam satu website.Buruan Daftar hk pools dan Ajak Teman - Temanmu Bermain di Situs togel online,adu keberuntunganmu dengan https://naga303.fun/ dan dapatkan hadiah yang besar.keuntungan yang besar bisa anda dapatkan secara instant dengan bermain togel online,jadi jangan sampai ketinggalan.
Hey there, Thanks for sharing this amazing blog. I will really look forward to following all the teachings from this knowledgeable content. One thing I would like you to know that I, myself can easily relate to whatever the causes or symptoms are mentioned here. So, thanks for enlighting us with such a beautiful thought of yours.
This was a fantastic read! Ehsaas Scholarship Program You explain things in such an understandable way.
Post a Comment