2018-01-01から1年間の記事一覧

複数のPodのログをまとめて表示する

Kubernetesを開発環境として使用しプロダクションと同じような環境で開発すると、複数のアプリケーションが可動することになると思います。 そうするとログも複数の場所に出力されることになります。 複数個のターミナルを立ち上げ1つずつログを表示しても…

GKEでプリエンプティブインスタンスを使いこなす

GCPにあるプリエンプティブ インスタンスをGKEでうまいこと使えないか、試行錯誤した結果をまとめます。 プリエンプティブ インスタンスとは 一言で言ってしまえば、AWSにあるスポットインスタンスのGCP版です。 公式ドキュメントにはこのように書いてありま…

GKEからCloud SQLに接続する

GKEからCloud SQLに接続するやり方としてCloud SQL Proxyを使う方法が推奨されています。 公式ドキュメントで解説されているやり方は、Cloud SQLにアクセスしたいコンテナが入っているPodにサイドカーとしてProxyを入れる方法です。 公式の例だと、wordpress…

Istioで使うTLS証明書をcert-managerで作成する

Istioは0.7まではIstio IngressというIngress Controllerの一種を使用してトラフィックを受け入れていましたが、0.8以降はGatewayを使うようになりました。 Istio Ingressでは他のIngressと同様のやり方でTLS証明書を扱えたのでcert-managerと組み合わせるの…

route53で管理するドメインの証明書をcert-managerで管理しGKEで使用する

GCPでKubernetesを使用する場合、AWSと違いTLS証明書を発行してくれるサービスが存在しません。 有料の証明書を購入すれば良い話ではありますが、機能は同じなので無料でいきたいところです。 そこで、今回はLet's Encryptを利用したいと思います。 しかし、…

Kubernetesのdashboardをingressから表示する

Kubernetesの状態が知りたいなと思い調べたところ、公式のWebUIであるdashboardをみつけました。 README通りにやれば簡単にインストールできますが、proxy経由でしか表示させる方法が書いてなく不便だったので、ingressを使用して表示させる方法を書きます。…

GKEにPrometheusを導入する

GKEにはPrometheusを導入するドキュメントが無いんですよね・・・ IstioやSpinnakerのドキュメントはあるのに、もっと需要がありそうなPrometheusのドキュメントが無いのはつらいです。 そんなわけで、自分が導入したときの手順を記録しておきます。 環境 GK…

GKEでPersitentVolumeを使う

KubernetesでPersitentVolumeを使う方法はドキュメントに書いてありますが、使う環境によって永続ディスクが異なるためにスムーズにいかないことがあります。 そのため、今回はGKEでPersitentVolumeを使う方法を紹介します。 環境 GKE 1.9.7-gke.0 永続ディ…

KubernetesでBlue-Green Deploymentしてみる

今回はサービスを本番で運用していくときに欲しくなるBlue-Green DeploymentをKubernetesでやってみます。 TL;DR Serviceのselectorを更新するやり方だと10分程度BlueとGreenがまざる Istioを使用すれば瞬時に100%のトラフィックを切り分けられるのでBlue-Gr…

Kubernetesに負荷をかけオートスケールを観察する

本番環境でKubernetesを使うためには、Kubernetesがどのように動作するか把握していないと安心して運用することができません。 まずはサービスを運用する上で重要になる、高負荷時の動きを確認してみたいと思います。 KubernetesにはHPAとCluster Autoscaler…

Webpackでビルドするときにflowtypeで型をチェックする

flowを導入して型のチェックがされるようになっても、開発者がエディタで設定していなかったり、 エディタによっては開いていないソースはチェックの対象になっていなかったりします。 これではせっかく導入したflowが活かせません。 そこでWebpackでビルド…

QNAPにTwonky Serverをインストールする

QNAPが公式に提供しているDLNAサーバーはいろいろと貧弱なので、評判の高いTwonky Serverを使えるようにします。 環境 QNAP: TS-431P OS: QTS 4.3.4 Twonky Serverのダウンロード まずは以下のリンクからダウンロードページに移動します。 http://download.t…

JUnit5をmainから実行する

こんにちは。akaimoです。 今回はJUnit5をmain関数内で使用する方法です。 環境 Java9 JUnit5.1.0-M1 Kotlin1.2 ソース これでmainからJUnitを動かせます。詳しい解説は後ほど。 import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder i…

react-reduxにflowtypeを導入しPropsに型を付ける

flowtypeを導入したとき、reactとreduxをつなぐ部分の情報が少なかったのでまとめます。 flowtypeの導入前 比較として導入前のソースを載せておきます。 import React, {PropTypes, Component} from 'react' import {connect} from 'react-redux' import * a…

Travis CIでfastlaneを使用する

こんにちは。akaimoです。 Travis CIを利用しているiOSプロジェクトにfastlaneを導入して、xcodebuildを直接実行する環境から開放されたので、 備忘録としてやったことを残しておきます。 github.com 前提 CI上でfastlaneを使用 複数人で開発 fastlaneのイン…