この投稿は、Kubernetes(以下 k8s)のジョブについて、理解を深めるために、https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ を読み解いたもので、個人的な補足や、検証を含むものです。 k8sのジョブとは ジョブは1つまたは複数のポッドを作成し、指定された数のポッドが正常に終了することを保証します。 ポッドが正常に完了すると、ジョブは成功完了を管理します。 指定された数の正常な完了に達すると、ジョブ自体は完了です。 ジョブを削除すると、作成したポッドがクリーンアップされます。 簡単なケースでは、確実に1つのポッドを完了して実行するために、1つのジョブ・オブジェクトを作成します。 ジョブ・オブジェクトは、最初のポッドに障害が発生した場合やノードのハードウェア障害やノードの

kubectl apply はオブジェクトが存在しなければ作成し、存在すれば差分を反映してくれる便利なコマンドです。しかし差分の反映は単純な上書きではないので注意が必要です。この記事ではKubernetes Meetup Tokyo #5 で発表した内容をベースに kubectl apply の動作を整理してみました。Kubernetes v1.9.0 で確認をしています。 kubectl apply とは kubectl にはオブジェクトを操作する様々なサブコマンドが用意されています。apply 以外のcreate, replace などのサブコマンドは、現在のオブジェクトの状態を意識して操作をする必要があります。例えば kubectlcreate では存在する名前のオブジェクトを再度作ろうとするとエラーになりますし、kubectl replace では存在しないオブジェクトを上書

CronJob Jobに似たリソースとしてCronJobというリソースがあります。Kubernetes 1.4までScheduledJobという名前でしたが、CronJobに名称が変更になりました。CronJobはJobの亜種のように見えますが、CronJobとJobの関係はDeploymentとReplicaSetに似たものとなっています。CronJobは、Cronのようにスケジュールされた時間にJobを生成します。CronJobの作成 簡単なCronJobのサンプルを動作させてみます。まず設定ファイルですが、下記のようなファイルから、sample-cronjobを作成します。今回は「60秒おきに30秒sleepするだけのJobを生成するCronJob」を作成します。spec.scheduleにはCronと同じフォーマットで時間の指定をすることが可能です。 リスト19:サンプルのCro

この記事はKubernetes 1.5.2 で確認した情報を元に記載しています。 Deployment Deploymentはローリングアップデートやロールバックといったデプロイ管理の仕組みを提供するものです。 Deployment の仕組み 下記の図のようにDeploymentはReplicaSetを生成・管理し、ReplicaSetはPodを生成・管理します。 ReplicaSet(ReplicationControllerの後継)はPodTemplateと呼ばれるPodのテンプレートをもとに、Podを指定された数(レプリカ数)に調整・管理を行う仕組みです。Podがレプリカ数より足りない場合はPodを追加し、多い場合はをPodを削除します。この仕組みによってノードの障害やアプリケーションのクラッシュでPodが足りなくなった際も自動的にPodが追加され、セルフヒーリングが実現されていま

Kubernetesの基本から運用まで解説したO'Reillyの書籍「Cloud Native DevOps WithKubernetes」PDF版、NGINXが無料配布中 O'Reillyが3月21日に発売予定の書籍「Cloud Native DevOps WithKubernetes」のPDF版が、NGINXによって無料で配布されています。 Learn about containers and #Kubernetes from first principles – no experiencenecessary. https://t.co/vUg8bYjHRB pic.twitter.com/ApxQZocRfe —NGINX, Inc. (@nginx) 2019年2月20日 取得するにはNGINXの特設ページへ行き、氏名や連絡先を入力する必要があります。本書はまだ発売されて

前回、MinikubeでKubernetesの環境が入った仮想マシンを、VirtualBoxに構築しました。 ts0818.hatenablog.comKubernetesは、基本的にはkubectlコマンドで操作するらしいのですが、 thinkit.co.jp ⇧ 上記サイト様によりますと、Kubernetesクラスタを操作する際には、CLIツールのkubectlとYAML形式で書かれたManifestファイルを用いてKubernetes Masterに「リソース」の登録を行います。実際にはkubectlも内部でKubernetes MasterのAPIを叩いているだけなので、ライブラリやcurlなどでも操作することが可能です。Kubernetesの基礎 | ThinkIT(シンクイット)Kubernetesは、YAML形式のファイル(拡張子が「.yml」)に設定した情報を元

The Bulkhead pattern is a type of application design that is tolerant of failure. In a bulkhead architecture, also known as cell-based architecture, elements of an application are isolated into pools so that if one fails, the others will continue to function.It's named after the sectioned partitions (bulkheads) of a ship's hull. If the hull of a ship is compromised, only the damaged section fills

Kubernetes上でgRPCサービスを動かすことが多くなってきている.が適切にロードバランスをする,リクエストを落とさずサービスをデプロイするためにいくつか注意することがあるので簡単にまとめておく. 以下の2つを意識する.Kubernetes ServiceはL4のLoad balancer(LB)であることgRPCはコネクションを使いまわすことKubernetesのPodは死んだり作られたりを繰り返す.KubernetesのPodにはそれぞれ内部IPがアサインされるが,このIPはPodが新しく作成される度に変わる.IPが変わってもPodにアクセスするためにKubernetesではServiceをつくる.ServiceはPodを抽象化しVirtual IP(VIP)を提供する.VIPを使うことでPodのIPが変わってもPodにアクセスすることができる. VIPはNetwork i
はじめにKubernetes2 Advent Calendar 2017 - Qiita 1 日目です。Kubernetes 上で動かすアプリを作ることが多くなってきていると思いますが、従来のオペレーションとは違う方法で開発やデプロイなどを行う必要があります。Kubernetes の実行環境として GKE を例に取ると、GCPプロジェクトやその中で作った GKE クラスタ、Kubernetes ネームスペースなど、見る必要のある領域が増えるとともに今までのやり方も変わるはずです。本記事ではその際のユースケースと、それをいい感じにしてくれるツールを紹介します。 今いるクラスタは何か本番環境と開発環境 (Prod / Dev) でクラスタを分けることは多いと思います。 その他にもクラスタを持っていることもあるでしょう。 Continuous Delivery のプラットフォームとし

KubeCon + CloudNativeCon 2024Join us for three days of incredible opportunities to collaborate, learn and share with the cloud native community. Buy your ticket now! 12 - 15 November | Salt Lake City This section of theKubernetes documentation contains tutorials. A tutorial shows how to accomplish agoal that is larger than a single task. Typically a tutorial has several sections, each of which h
UseKubernetes features, primitives, and abstractions for storage
The package manager forKubernetesHelm is the best way to find, share, and use software built forKubernetes. Helm helps you manageKubernetes applications — Helm Charts help you define, install, and upgrade even the most complexKubernetes application. Charts are easy tocreate, version, share, and publish — so start using Helm and stop the copy-and-paste. Helm is a graduated project in the CNCF

背景 ローリングアップデートは、システムがダウンしないように少しずつアップデートをする手段です。 古いバージョンのコンテナを残しつつ、新しいバージョンのコンテナを生み出すことで実現します。BlueGreen Deploymentと同じような感じですが、新旧システムが混在する時間が存在します。kubernetesではrolling-updateコマンドがありますが、現在はより上位概念のdeployemntを使うのが推奨されているようです(http://kubernetes.io/docs/user-guide/rolling-updates/)。 以下のようにdeployment.ymlを設定すると、ローリングアップデートを実行してくれます。 この設定でapplyをするだけで、変更後のコンテナが生まれ古いコンテナが消えてゆきます。 この場合、新コンテナ内の準備が整うまでアクセスできない

2017.12.1 [Kubernetes] オンプレでも GKE Like なIngress を使うために 自作Ingress Controller を実装してみた こんにちは。 CIA の青山 真也です。 この記事はKubernetes Advent Calendar 1日目の記事になります。 ちなみにCyberAgent Advent Calndar 1日目の記事も「GKE 互換のオンプレコンテナ基盤 AKE (Adtech Container Engine) 誕生秘話とアーキテクチャ完全公開!」というテーマで書いており、まるで夏休み最終日の気分です。 弊社のオンプレコンテナ基盤 AKE の話を詳細にまとめてありますので、こちらも是非お読み下さい。 今回は、SSL 終端や L7 パスベースルーティング及び L7 ロードバランシングを行ってくれるIngress リソースの話を
![[Kubernetes] オンプレでも GKE Like な Ingress を使うために 自作 Ingress Controller を実装してみた | AI tech studio](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f90e1cc4f3156cc19b68e3451c6219a4ffe639b40%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fcyberagent.ai%252Fwp-content%252Fuploads%252F2018%252F11%252F76d61fbc856f8dfe664cc156c3924eff.png&f=jpg&w=240)
A Deployment manages a set of Pods to run an application workload, usually one that doesn't maintain state. A Deployment provides declarative updates for Pods and ReplicaSets. You describe a desired state in a Deployment, and the Deployment Controller changes the actual state to the desired state at a controlled rate. You can define Deployments tocreate new ReplicaSets, or to remove existing Depl
TL;DR; 分散トレーシングシステムの4要素を理解する 分散トレーシングシステムの「バックエンド」と「それ以外」は分けて選択してもいい 一例として、分散トレーシングシステムのバックエンドとしてDatadog APM、クライアントライブラリとしてOpenTracing Tracer、PropagationフォーマットとしてB3、SpanフォーマットとしてZipkin v1を採用すると楽 アプリの設定例だけ知りたい方はここから読んでください 何がうれしいの?Zipkinの運用保守 枯れてないトレーサのバグや機能不足という悩み ログ・メトリクス・トレースそれぞれ別のサービスに見に行く手間 などから解放されます。 分散トレースといったらZipkinなんでしょ? そんなことはありません。 実際、Zipkinをデプロイせずに、Zipkin以外のサービスにZipkinトレースを集約・閲覧することがで

Dockerをちゃんと使おうと考えていたらKubernetesに出会いました。ERPのシステム開発でkubernetesを使おうとして苦労した、あるいは現在進行形で苦労していることを、そもそもKubernetesが解決しようとしている課題やそのアーキテクチャそのものにも言及しながらお話します。Dockerをベースにシステム設計を行おうとしている方にノウハウ(主に苦労話)を共有します。 July 24th, 2016 JulyTech Festa 2016
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く