背景
仕事だと定期的にPCを交換しますが、そのたびにsshキーを全て最初から登録し直すのは非常に大変です。
かといって.sshをdotfilesとしてGitHubに管理したり、手動でコピーするのも転送経路をどうするかとか前PCから消し忘れたりとセキュリティ的に心配になります。
そこでsshキーをBitwarden上で管理し、ssh-agentを使ってsshができるようにします。
MongoDB AtlasではContinuous Cloud Backupという機能を用いることでRPO(Recovery Point Objective)を1分にすることが可能です。
Dedicated Cluster Backups — MongoDB Atlas
その他のストレージやデータベースではPoint in Time Recover/Restoreという名称で提供されていることが多いです。
今回はこの設定方法と使い方、ポイントについて説明します。
続きを読むではEnvoyでのCircuit Breakerの設定や挙動について説明しました。
IstioではDataPlaneにEnvoyを使っているので同じ様にCircuit Breakerを使えますが、設定するコンポーネントとしてはDestination Ruleになります。
今回はIstioでの設定方法について説明します。
前回KubernetesのPodの安全な終了方法について図を交えて解説しました。
今回はistio-proxy(envoy sidecar)がある場合の安全な終了方法について説明します。
Prometheusでメトリクスを可視化する際にPromQLを使います。その中で最もよく使うのがrate()
関数ですが、
irate()
関数との違いなど疑問に思ったので一度きちんと整理してみます。
rate関数を理解する上でまずrange vectorの概念を理解する必要があります。
こちらの図が非常に分かりやすいです。
ref: https://iximiuz.com/en/posts/prometheus-functions-agg-over-time/
続きを読むラベルという名前ゆえか若干軽視されがちですが、Kubernetesにおいてlabelはリソースを識別する上で非常に重要な要素です。
そのlabelについてKubernetesの初学者が気になる(自身も気になった)ことを挙げて行きます。
公式ドキュメントに記載されているDeploymentの例を見てみます。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: # ① app: nginx spec: replicas: 3 selector: matchLabels: # ② app: nginx template: metadata: labels: # ③ app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
この様にlabelに関連するところがなんと3つもあります。
続きを読むKubernetesのPodを安全に終了する際に気をつけるべき事前知識と設定方法について説明します。
あらかじめまとめると
preStop
でPodのアプリケーションコンテナの終了開始を待たせるterminationGracePeriodSeconds
を長くするの3つを実施することになります。
Podが終了するとまずdeletionTimestamp
がPodリソースに設定され、Terminating状態になります。
そしてその次に以下の3つの処理がそれぞれ独立(並行)して実施されます。
これらはそれぞれ独立しているため順序に保証はなく「いずれかの処理の完了を待って次の処理をする」のような依存関係を持った制御もできません。
続きを読む