Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。Barua翻訳者h_yoshida原文(投稿日:2017/02/27)へのリンク先日公開された一連の記事に、Kubernetesのデプロイが失敗する、一般的な10の理由が取り上げられていた。describe’コマンドが有効だ。Kubernetesデプロイメント時の入力誤りとして、存在しない、あるいは権限的な問題でアクセスできないコンテナイメージの指定がある。ECRやQuay.ioなど他のレジストリを使用する場合には、レジストリのURLを指定しなければならない。プライベートレジストリの場合は、イメージアクセス時の資格情報が必要だ。プルするタグ名が正しくない場合も、イメージのプルに失敗する。イメージにlatestタグ(何も指定しない場合、‘latest’がデフォルトのタグとなる)が存在しない場合、こういった状況が発生する可能性がある。ネットワークの障害も問題の原因となり得る。これらのケースでは同じようなエラーメッセージが出力されるため、正確な原因の特定には、より詳細な調査が必要になる。特定のPodが立ち上がらないという状態で現れる。実行すれば、エラーの原因を記述したイベントログが表示される。組み合わせは、デプロイ時のエラーをデバッグする上で重要な役割を持つ。Kubernetesのデフォルトポリシが常にレジストリからプルしないように設定されていると、更新された変更がコミットされ、イメージがプッシュされた後でも、その内容を参照できない場合がある。運用上のアプローチとして推奨されるのは、各イメージにユニークなタグを使用して、プルリクエスト時にそれを指定する方法だ。デプロイメント設定で指定した永続ボリュームが存在しない場合にも、デプロイメントが失敗する可能性がある。ConfigMapはアプリケーションに必要な設定データを指定したキーと値のペアのマップで、CLIの引数、環境変数、あるいはマウントされたボリューム内のファイルとして参照される。これが存在しない場合、Podの生成が停止して‘RunContainerError’状態がセットされる。一方のSecretは資格情報などの機密データを格納するメカニズムである。Secrentが存在しない場合も同じようなエラーとなる。ConfigMapとSecretは、いずれもボリュームとしてマウント可能だが、これに失敗すると、イベントログに‘ContainerCreating’が記録された状態でコンテナ生成が停止する。Specオブジェクトの指定も障害の原因となる。フラグを指定することで容易に防止可能だ。--validate=trueこの実行にはKubernetesクラスタが起動中であることが必要だが、そのような依存性を回避して、クライアント側でも検証を可能にする作業が進行中である。このYAML検証は、ソース管理システムのコミット前フックの一部として追加することもできる。Kubernetesのデプロイ失敗のもうひとつの部類は、リソース制限超過によるものだ。Podとコンテナにはそれぞれ、CPUおよびメモリ使用量の制限が設定されていて、これらの制限を超過するとPodの生成が行われない。指定すれば、Kubernetesが作成を試みたレプリカセットの名称が確認できる。name>’を実行すれば、以前のステップで適用されたレプリカセットの名称がプリントアウトされた上で、他のケースと同じようなイベントログがエラーメッセージを伴ってプリントアウトされる。デプロイメントの失敗はリソースクオータ超過によっても発生する。リソースクオータは、ノード数の固定されたクラスタを複数チームが共有する場合に、名前空間毎のリソース消費を制限するためのメカニズムである。管理対象のリソースにはPodやサービス、デプロイメントの他、計算リソースの総量も含まれている。コマンドは、実際のエラーメッセージの掘り下げに有効だ。autoscaler)では、ノードがリソースを十分に活用していない場合、あるいはリソース不足のためにPodが実行不可能な場合の両方において、Kubernetesクラスタサイズの自動調整を実行する。これが無効になっていると、割り当てられた以上のリソースを要求するデプロイメントは失敗し、Podのステータスは‘Pending’のままになる。実際に不足したリソースが何であるかはイベントログに表示される。アプリケーション動作の予期しない変更は、さまざまな障害を引き起こす可能性がある。‘CrashLoopBackOff’メッセージを伴うローンチエラーは、一般的にアプリのクラッシュによって発生する。この問題の特定にはアプリケーションログが有効だ。Kubernetesがサービスの状態および起動状況の検出に使用しているLiveness/Readinessプローブについても、設定ミスやタイムアウトなどで失敗する可能性がある。アプリケーションのヘルスチェックURLが変更されたり、あるいはデータベースの変更によってアプリケーションが期待した動作を行なわない場合がそれに当たる。起動状態チェックに対するURLからの応答に時間がかかると、タイムアウトが発生してデプロイに失敗する場合もある。本記事の筆者は、ビルド失敗時にKubernetesに関する有用な情報をビルトログに表示するスクリプトを、オープンソースとして公開している。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員��して、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。