Jaegerを使った分散トレーシングの検証 on Kubernetes (1)

08 Feb 2021, 17:04 By mosuke5

もーすけです。
過去にDatadogでAPMを少し検証したり、トレーニングの中でJaegerを触ったりしましたが、正直ちゃんとわかっていなかったので、改めてJaegerというか分散トレーシングについて検証してみたいと思います。

今回はKubernetes上にJaegerを構築するので、Jaeger Operatorをインストールして利用します。 今回はOpenShiftにて検証していますが、他のKubernetesディストリビューションでも同じように利用可能です。ockubectl と置き換えて読んでください。 検証環境は下記のとおりです。

  • OpenShift: 4.4
  • Jaeger: 1.17
続きを読む

新形式のCKAを受験し合格しました。受験の教訓紹介。

07 Feb 2021, 11:57 By mosuke5

こんにちは、もーすけです。
本日は、ついに?ようやく?CKA(Certified Kubernetes Administorator)をとりましたのでその報告です。 いまさらのCKA取得に関することなので、CKAとはなんなのか?とかそのあたりについては本ブログでは割愛します。ぜひ他のブログを参照してください。 どちらかというと、個人的なモチベーションや準備したこと、受験に関する教訓(失敗談)などを中心にまとめたいと思います。 1年半ほど前にCKADをとったときのブログは以下です。合わせて読んでみてください。

続きを読む

Kubernetes上のアプリケーションをtcpdumpでデバッグする

31 Jan 2021, 12:10 By mosuke5

こんにちは、もーすけです。休日はもっぱら住宅購入の検討で忙しいマンです。
さて、本日は、Kubernetesのアプリケーションのデバッグに関して書きます。

Kubernetesで運用中のアプリケーションの障害対応で、ネットワーク関連のデバッグをしたいことはよくあります。 このブログでは具体的にtcpdumpを取得したいという場面を想定して書きます。 コンテナアプリケーションの開発・運用をしていると、イメージのサイズを小さく保っておきたいと思うはずです。 その理由についてはいろいろとありますが、イメージの展開のスピードを高めることで、デプロイや障害時の復旧を早めるなどが代表的なところです。(関連するトピックとして「コンテナイメージを軽くする方法と、その原理原則を考える」も読んでみてください。)

それゆえに、アプリケーションの動作に必要なライブラリ以外は入れないことが多く、デバッグツールを除外しておくことが多いでしょう。 しかし、障害発生時にいざtcpdumpやstrace, ping ,digなどを打ちたいと思ってもインストールされておらず困ることがあります。 そんな場面に遭遇しても焦らないようにあらかじめ対応策を頭に入れて練習しておきましょう。

続きを読む

OpenShift on NVIDIA GPU(導入編)

17 Dec 2020, 22:01 By mosuke5

こんにちは、もーすけです。
今回は前回に続き、OpenShiftにGPUのノードを追加して利用する方法(導入編)として書いていきます。 インストールの細かな方法については英語ですが公式ドキュメントに譲るとして、実行していくにあたってのポイントなどを経験者としてまとめておきます。 概要編につきましては以下をご覧ください。

続きを読む

OpenShift on NVIDIA GPU(概要編)

16 Dec 2020, 19:21 By mosuke5

こんにちは、もーすけです。
本日はOpenShiftにNVIDIA GPUのノードを追加して利用する方法2つのブログ(概要編と導入編)に分けて紹介したいと思います。 あまりまだ日本語での情報がないので、挑戦したいと考えている人の参考になればと思います。 また、非常に進化が速く、情報が古くなる可能性もあります。なるべく更新していきたいと思っていますが、最新情報は公式情報をみてください。。 導入編では、OpenShiftを取り扱いますが、他のKubernetesディストリビューションをお使いの方も参考になるところはあると思います。

続きを読む

P2Pでコンテナイメージを配信できるDragonflyとAlibaba Cloudのなぞ

02 Dec 2020, 00:00 By mosuke5

こんにちは、もーすけです。
ここ最近、ワケアッて少しAlibaba Cloud関連のKubernetesについて調べています。 ちなみにこちらの記事はAlibaba Cloud Adovent Calender 2020の2日目の投稿です。

Alibaba Cloudの中の人をやめて、もう1年半以上たちますが、まだこうやって調べるとは思わなかったです。いまになっていろいろAlibaba Cloudが取り組んでいるコンテナ関連のことがよく理解できるようになってきました(笑) 本日はアリババ/Alibaba Cloudが開発するP2Pのファイル配信ソフトウェアのDragonflyについて少し書いてみたいと思います。(まだ調べ中のところもあるので許してください)

Dragonflyとは

Dragonflyは、アリババおよびAlibaba Cloudがメインとなって開発している、オープンソースのP2Pファイル配信の仕組みです。
よくコンテナイメージの配信のためのソフトウェアといわれることもありますが、実態はコンテナイメージだけでなく、どんなファイルにも活用できるものです。 コンテナ時代より前からアリババが研究していた効率的なアプリケーションの配布、キャッシュの配布、ログの配布、画像の配布がもとになっています。 現代のクラウドネイティブの環境になってコンテナイメージの配布にも活用されてきているということです。 その目標は、クラウドネイティブのシナリオにおけるすべての配布問題に取り組むことです。現在、Dragonflyは以下の点に焦点を当てています。

続きを読む

[Alibaba Cloud] KubernetesのProfessional managed clustersは何が違うのか?

29 Nov 2020, 20:46 By mosuke5

こんにちは、もーすけです。
Container Service for Kubernetes (ACK) では、新しくマネージドクラスタの中でサービスレベルを選べるようになりました。 Professional managed clustersというものです。 このクラスターは通常のマネージドクラスタと比べて何が違うのでしょうか? 調べてみたのでまとめました。

続きを読む

Docker Hubのダウンロード回数制限の対策を考える

18 Nov 2020, 17:32 By mosuke5

こんにちは。もーすけです。
今日は最近開始されたDocker Hubのイメージダウンロードの回数制限について書きたいと思います。 動向だけはなんとなく追っていたのですが、先日に自分がこの問題に向き合わなければいけないケースに遭遇したため、残しておこうと思い立ちました。

きっかけ

本ブログの記事のビルドやデプロイにはWeckerというサービスを利用しています。 ある日、記事を投稿しようとしたところCIのビルドがコケて記事を投稿できませんでした。 エラーは以下のとおりで、調べるとDocker Hubのイメージダウンロードの回数制限に引っかかっていることがわかりました。

fetch failed to pull image debian: API error (500): {"message":"toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit"}

docker-rate-limit-error

続きを読む

【翻訳】Kubernetes as a serviceの謎を解く。Alibaba Cloudが1万個のKubernetesクラスタを管理する方法

17 Nov 2020, 17:24 By mosuke5

※本記事は、著者であるZhimin Tangの許可をとって翻訳した記事となります。(原文)
また本記事の内容は、2020/12/11のAliEaters Tokyo #16にて発表しており、スライドは以下です。

概要

2015年以来、Alibaba Cloud Container Service for Kubernetes(ACK)は、Alibaba Cloud上でもっとも急速に成長しているクラウドサービスの1つです。今日では、ACKは多数のAlibaba Cloudの顧客にサービスを提供しているだけでなく、Alibabaの社内インフラストラクチャやその他多くのAlibaba Cloudサービスをサポートしています。

世界的なクラウドベンダーが提供する他の多くのコンテナサービスと同様に、ACKでは信頼性と可用性が最優先事項となっています。これらの目標を達成するために、セルベースでグローバルに利用可能なプラットフォームを構築し、数万個のKubernetesクラスタを稼働させています。

今回のブログ記事では、クラウドインフラ上で大量のKubernetesクラスタを管理した経験と、その基盤となるプラットフォームの設計についてご紹介します。

続きを読む

OperatorSDK for Ansible の開発。チュートリアルの次の一歩

10 Oct 2020, 14:06 By mosuke5

こんにちは、もーすけです。
本日は、Kubernetes Operatorの開発に関する情報提供をしたいと思います。 Operatorってなに?ってかたやより内部実装を学びたい方はぜひこちらの書籍(実践入門 Kubernetesカスタムコントローラーへの道)を参考にしてください。

Operator開発にはOperatorSDKを利用するのが非常に便利です。Go, Ansible, Helmなどを用いて開発できるのですが、今回はAnsibleを使ったOperatorについて書きます。 OperatorSDKは便利ですが、まだまだ情報が少なく、ドキュメントのチュートリアルを実施したあとに何をすればいいのか?とっつきにくいさもあります。 というわけで、このブログでは、チュートリアル後に何をすればいいか?どんなことを確認していけばいいのか?という観点でまとめてみましたので、ぜひ参考にしてOperator開発を楽しんでください。

まだチュートリアルをやっていないよ、というかたはこちらから済ましてみましょう。

続きを読む