Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Kubernetesハンズオンを私の所属する研究室で行いました。 我ながら入門者にはとっつきやすい資料ができた気がしたので、Qiitaにも軽く解説を交えつつ貼っておこうと思います。 スライド 初心者による初心者のためのKubernetesハンズオン // Speaker Deck このハンズオンの対象者 Kubernetesを始めたばかり or 始めてみたいひと 他の解説記事でkubectl run ...とかやって一通り試したけど、YMLどうやって書くのかわからなくて困っている人たち このハンズオンでやらないこと Clusterの構築手順 スライドの最後の方で軽く触れていますが、minikubeを使うのが個人的にはおすすめです。 Install Minikube | Kubernetes ここにインストール手順が書いています。遅めの回線でも10分ちょっとあれば終わると思います。 永続化
はじめに みなさんShellは何を使われていますでしょうか? 私は**Fish**です。もともとZsh派でしたが、起動の遅さにストレスを感じ乗り換えました。 最高なFishですが、Zshに比べてKubernetes周りの環境が整っていないという弱点があります。そこで、今回はFishユーザのための環境構築について書きつつ今後の発展を願っていきます。 プロンプトでオペミスを防げ! 複数のクラスタを操作していると「別のクラスタのコンテナ消してしまった😨」ということが起こりがちです。そんなオペミスを防ぐためには、プロンプトにContextとNamespaceを表示させるなど常にチェックできる環境を作る必要があります。 Zshにはzsh-kubectl-promptがありますが、残念ながらFishにはありません。 そこで、今回はfish-kubectl-promptをご用意しました。 実際のプロン
Pod内のNginxにサクッとリソースをコピーしたいなと思って調べていたところ、 Kubernetesでは"kubectl cp"を使うとのこと。まあDockerと同じですね。 ということで、ワンライナーで書いてみた。 やりたいこと 手元で書いたコードをKubernetes上ですぐに動作確認したい ↓ 要するに ビルドしたリソースをNginxのルートディレクトリ(/usr/share/nginx/html)配下にコピーしたい . ├── dist // ここの配下を持っていきたい │ ├── index.html │ ├── bundle.js │ └── css │ └── style.css ├── src │ ├── index.html │ ├── scripts │ │ ├── index.js │ │ └── hello.js │ └── styles │ └── style.
こんにちは,グレンジ Advent Calendar 2024の25日目担当の石川です. 今年は,SOPSの利用例をいくつか紹介したいと思います. SOPSは,Secrets OPerationSの略称です. Mozillaが公開している暗号化ツールで、YAML,JSON,ENV,INIとBINARY形式をサポートし,AWS KMS、GCP KMS,Azure Key Vault,age,およびPGPで暗号化する暗号化ファイルのエディターです. グレンジでは、GCP KMSをを利用して暗号化しています. SOPSを利用することで,暗号化したいデータをGitHubなどのリポジトリで安全に管理することができます. これにより,チーム内で安全に暗号化されたデータを共有したり,CI/CDパイプラインで安全に利用することができます. 基本的な使い方 Cloud KMS(Cloud Key Manag
kubernetes(今回はGKE内)でgRPCの通信を場合にぶち当たる問題として、ロードバランシングの問題があります。 gRPCの通信は永続化されるので、そのままの状態で使うとバックエンドにあるサービスがスケールしても分散されないということになります。 具体例 上記のような構成でhoge-gateway(4pod)からhoge-app(10pod)に向けてコネクションプーリングが1で通信をする場合、hoge-appが最大4podしか使われない状態になります。 下記がその状態です。 GKE Container - CPU usage for hoge-app GKE Container - CPU usage for hoge-gateway 解決方法 これを解決する手段としてgRPCのclientLoadbalancingを使う方法がありますが、clientに依存する方法はあまりスマート
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これまでKubernetesについてスタディしてきた事を利用価値の観点から12項目にまとめました。思入れによって私見が混じっている部分もあるかもしれませんが根拠のリンクを添えています。 今後、Kubernetesは本当に素晴らしい次世代のIT基盤に成長していくと思います、 ビジネス面での利点 理由1 頻繁なアプリケーションのリリースを可能にする実行基盤 アプリケーションの自動的なロールアウトとロールバックは、Deploymentsによって、頻繁な新機能リリースや、緊急のバグ修正版入れ替えなどデリケートな作業を自動化して、安全かつ円滑に実
データプラットフォームチームの野本です。機械学習基盤の構築やその周辺アプリケーションの実装を行っています。以前は DOOR 賃貸の開発運用をしていてこんなことなどしてました。 機械学習システム運用の課題 リブセンスでは 2014 年ごろから機械学習システムの開発導入を行っており以降様々な機械学習システムを各サービスに導入してきました。また自社でのデータ分析基盤の運用も行うようになってから機械学習システムの開発の幅が広がり導入の要望も次第に増えてきました。(参考:リブセンスのデータ専門組織のこれまでとこれから) 当初は機械学習システムに対する運用知見などが少なかったため、専用のインフラというものは保持せず各サービスのインフラに相乗りし、サービスのアプリケーションと密に連携し機械学習システムを実装運用することが多かったです。各サービスは元々オンプレミスで運用されていたものが多かったのですが、現
はじめに Kubernetes 上のアプリケーションに対して、curl や tcpdump など使い慣れたツールを使ってデバッグを行いたいと思う場合があるかと思います。kubectl exec を利用するとコンテナ内のコマンドを実行することができ、従来 ssh で行っていたデバッグに近いことが可能になります。一方、コンテナには必要最低限のものしか含めないことがベストプラクティスとなっているため、使いたいコマンドが含まれていないこともあるでしょう。 本記事では、kubectl exec を主としたデバッグの方法と、コンテナに使いたいコマンドが含まれていない場合や kubectl exec が利用できない場合の対応方法などについて説明します。確認は Kubernetes v1.8 で行い、コンテナランタイムは Docker を前提としています。 kubectl exec を使ったデバッグ ku
はじめに kubernetesにはinit containerという機能があります。init containerはpodの起動前に実行されるコンテナを定義することができ、例えばpodの作成前にassetsなどの静的ファイルを共有ボリュームに格納させて、nginxで配信するみたいな事ができます。このinit containerですが、kubernetesの1.8以前だと、設定を変更して再度applyしても再作成されないという問題がありました。 対策 以下のissueに書いてあるまんまですが、annotationsにpod.alpha.kubernetes.io/init-containers: nullとpod.beta.kubernetes.io/init-containers: nullを入れることで解決します。 https://github.com/kubernetes/kuberne
Microservices Advent Calendar 2017 22日目の記事です。 14日目の記事の最後に、 https://qiita.com/seikoudoku2000/items/9d54f910d6f05cbd556d ちなみに、先日、Austinで開催されていたkubeconでもIstioに関する発表があったようなので、そちらも期待ですね! ということを書いたら、丁度、先週末に動画が大量にアップされたので、 https://www.youtube.com/channel/UCvqbFHwN-nwalWPjPUKpvTA ちょこちょことチェックしたのですが、残念ながらIstioに関するクールなプレゼンは見つけられず、、、 今日はIstioのことを調べている中で知ったMonzo というイギリスの銀行(本当の銀行の業務ライセンスを有している)が使っている Linkerdのこと
Elasticsearch, Kibanaはそれぞれ最新のものをpullした。Fluentdは1.20。(このバージョンで動作が確認できたため) Elasticsearchの設定 ServiceとReplocation Controller (controller) を定義する。 Serviceの定義 serviceはL3ロードバランサーみたいなもので、podに対してアクセスを振り分ける機能を持つ。 apiVersion: v1 kind: Service metadata: name: elasticsearch-logging namespace: NAMESPACE labels: k8s-app: elasticsearch-logging kubernetes.io/cluster-service: "true" kubernetes.io/name: "Elasticsearc
kubectl apply はオブジェクトが存在しなければ作成し、存在すれば差分を反映してくれる便利なコマンドです。しかし差分の反映は単純な上書きではないので注意が必要です。この記事では Kubernetes Meetup Tokyo #5 で発表した内容をベースに kubectl apply の動作を整理してみました。Kubernetes v1.9.0 で確認をしています。 kubectl apply とは kubectl にはオブジェクトを操作する様々なサブコマンドが用意されています。apply 以外の create, replace などのサブコマンドは、現在のオブジェクトの状態を意識して操作をする必要があります。例えば kubectl create では存在する名前のオブジェクトを再度作ろうとするとエラーになりますし、kubectl replace では存在しないオブジェクトを上書
概要 ゼットラボではいくつかの CI/CD ツールを利用していますが、その中の一つが Concourse です。Concourse はパイプラインベースの CI/CD ツールで Pivotal により開発されています。Concourse から Kubernetes にアプリケーションをデプロイするための Concourse リソースに我々の要件を満たすものが存在しなかったため、新たに開発し OSS (MIT License) として公開しています。 zlabjp/kubernetes-resource: A Concourse resource for controlling the Kubernetes cluster Kubernetes にどのようにアプリケーションをデプロイするか Kubernetes にアプリケーションをデプロイするには Kubernetes を操作するための C
はじめに Admission Controlとは Admission ControlとはKubernetesのAPI Serverのリクエスト制御の機能です。APIリクエストに対して認証、認可を行ったあとのフェーズで、別途そのリクエストを受け入れるか制御を行います。また場合によって、リクエストの変更や別の操作を行います。 プラグイン形式で複数の制御の方法が用意されており、APIの起動オプション--admission-controlで有効にしたいものをカンマ区切りで指定します。 Kubernetes: Admission Controlとは何か 上記エントリは 1.2 時点でのプラグインを紹介していますが、ここでは 1.2 から 1.8 までに新たに追加されたプラグインについて記載します。 プラグイン一覧 DefaultStorageClass DefaultTolerationSecond
cri-oとは、kubernetes専用のコンテナランタイムとして主にRed Hatが開発を進めているツールです。 kubernetes(kubelet)がcri-oを操作し、cri-oがコンテナランタイムを操作するという、kubeletとコンテナランタイムの橋渡し的な位置付けになっています。 開発の背景 kubernetesは、コンテナを操作するインターフェースとしてCRIと呼ばれる仕様を策定しており、kubeletはこのインターフェースを使ってコンテナを操作することになっています。 CRIに準拠したツールであれば、どんなコンテナランタイムでもkubernetesと結合して使えるというわけです。 現在、kubernetesを使っている人は大抵コンテナランタイムとしてdockerを利用されているかと思いますが、これもkubelet組み込みのCRI-dockerアダプタで操作されています。
構成 今回は以下2つのコンテナを1Podとして配置します。 test-db 前回の記事で作成したサンプルを流用 DBサーバ(実際はjsonファイルを読みだすだけ) DockerHub上にmmitti/test-dbとしてイメージを公開しています 8000番ポートで稼働しています test-db-viewer 前回の記事で作成したtest-db-clientを変更したもの test-dbが読み込んでいるjsonファイルと同じものを読み込みHTMLを生成します データの追加は自ホスト8000番ポート(test-db)宛にデータをポストします 5000番ポートで稼働しています また、2つのコンテナはemptyDirをマウントしてjsonファイルを共有しています。 サンプルコード サンプルのyamlファイル及びtest-db-viewerコンテナのコードはGithub上で公開しています。必要であれ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く