2021-01-01から1年間の記事一覧
シェルスクリプトの変数について、ちょっと試したことを載せます。 #!/bin/bash val1=val1 function test1() { echo $val1 echo $val2 echo $val3 } val2=val2 test1 val3=val3 function の前後に定義した値がどこまで取得できるのかを試してみました。 結果…
* 0917e6be 2021-12-09 自分 Merge remote-tracking branch 'xxx/main' into 自分のブランチ |\ | * 03234646 2021-12-09 GitHub Merge pull request #xxx | |\ | | * 2514bd4a 2021-12-09 GitHub Merge main into 別の人の作業用ブランチ | | |\ | | |/ | |…
GCP Cloud Monitoringを利用する際に前提としてわかっておくべき内容を、個人の備忘として残しておきます。適宜追加していくため不完全な内容になっていますがご了承ください。 メトリクスの種類 データの整形 実際にポリシーを読み解く 例1 CPU使用率 Terra…
kubernetes - referring a resource yaml from another directory in kustomization - Stack Overflow . ├── base │ ├── main │ │ ├── kustomization.yaml │ │ └── resource.yaml │ └── stuff │ ├── first.yaml │ └── kustomization.yaml └── cluster └── ku…
GCP上のkube-dnsはその裏側にdnsmasqとskydnsが存在しています。 その二つの違いはRedHatの資料に詳しく書かれており OpenShiftの内部DNSについて語る...のではなく、dnsmasqとgdbで遊ぶ話 - 赤帽エンジニアブログ 上記のように紹介されています。GKEだと少…
cpu_stateでどうにかフィルタするのをTerraformに設定したくて、どうにか辿り着いたTips。 下記のサイトにまとまっている情報をみる。 Legacy Monitoring and Logging agent metrics | Google Cloud 太文字のものはmetric.label.\"cpu_state\"= \"idle\""の…
Bazelでコンテナイメージを作成しPushする際に、まとめてPushする方法です。 distroless/BUILD at main · GoogleContainerTools/distroless · GitHub を参考にしました。 事前準備 git clone https://github.com/bazelbuild/examples cd examples/cpp-tutori…
ArgoCD Notificationでmanifestの適用後の失敗検知をしていると、10分経たないと通知がされません。これを短くする方法です。 方法 Statefulset / DaemonSetの場合はExceededの処理がArgoCDに見当たらなかったのでその状態にならなさそう。 Deploymentの場合…
問題 HPA を使うとOut of Sync状態のままになる spec: maxReplicas: 30 metrics: - resource: name: cpu target: averageUtilization: 70 type: Utilization type: Resource - resource: name: memory target: averageUtilization: 70 type: Utilization typ…
GoとかPythonでOpenCensusでいちいち書くのが煩わしすぎるので、手軽にシェルでstackdriverでメトリクスを送信する方法です。 元ネタ stackoverflow.com /home/testuser/test.sh duした値を出力するだけです。 #!/bin/bash INTERVAL=10 HOSTNAME=test FOLDER…
gcp_compute を使ってAnsibleのグループを作成するTipsを載せておきます。 GCEの操作 GCEにラベルを付与する(コンソールでもコマンドでも) ansible = true env = development or env = stg or env = production ラベルはなんでもよいし、値もなんでも良い…
IAP越しのSSHを行ってAnsibleを操作する場合、ネットを調べると以下の二つが存在するようです。 wrapper shellを使用する iap-tunnelコマンドをProxyCommandとして追加してSSHをする 最初1を使っていたのですがあまりにも遅すぎてストレスが溜まっていたので…
昔ふとした疑問からこんな記事を書きました。 qiita.com そして最近QUICの勉強をしていたら「QUICではLTEとWifiを切り替えても通信が継続できる」という記載があったのでちょっと調べてみることにしました。 5-tuple そもそもTCP/UDP通信は5-tupleと呼ばれる…
GCPにおけるIAMの構造 メンバー ユーザ / グループ / サービスアカウント / ドメイン ロール(役割) GCPのリソースに対する権限(例:GCSの管理者権限 / Projectの閲覧権限 など) IAMポリシー ロールバインディングという名前で 「どのメンバーにどのロール…
GCPにもAWSにも外部IPを持たないインスタンスを作ることができます。 AWSの場合はプライベートサブネットで作成したEC2インスタンスへアクセスをさせるためには、ALBやNLBなどのロードバランサーを使うかプロキシサーバを経由して外部アクセスを許容する方法…
MemoryStore for Redisを起動するとIPアドレスが発行されます。 クラウド使ってる勢からすると障害が起きて切り替わるようなDBへのアクセスはFQDNがいいわけです。 アプリケーション側でIP切り替えるの嫌ですからね。 で、MemoryStore for RedisでFQDNが使え…
結論 調査過程(コードリーディング) 普通の場合(ArgoCDによって用意されているやつ) 独自に定義する場合(Applicationなど) 結論 ArgoCDにおけるSync-Operationのステータスの意味は以下の通りです。 種類 状態 Healthy 正常 Progressing 正常ではないが、…
ほぼほぼ独力で調べ切った後に全く同じ悩みにヒットした方の記事が出てきた。 argocdでSSOしたいときにclientSecretをSealedSecretで保持したい - うさだのブログ 問題 ArgoCDは自分自身でSecret(argo-secret)を作成します。 それとは別にSSOの設定などをExt…
GKEのIngress=外部HTTP(S)ロードバランサを触ってカスタムヘッダの追加や上書きの挙動を確認してみます。 使用したのは以下のmanifestです。 apiVersion: v1 kind: Service metadata: name: web annotations: cloud.google.com/neg: '{"ingress": true}' cl…
これを実現したい! Gatekeeperのハンズオンをやっていたらシェルでデモが行われていて裏側が気になったので追っかけてみました。するとdemo-magicというスクリプトが使われていたので紹介です。 GitHub - paxtonhare/demo-magic: A handy shell script that…
ちがいます。 インフラエンジニアが思うミドルウェアやApacheやEnvoyなどのアプリを動かすソフトのことをさしています。 しかしGoでAPIサーバを立てるときなどに用いられるMiddlewareという言葉は、HTTPリクエストを途中で処理する層のことを指しています。 …
こんか感じで書くことで、ランダムに取得できます! ![LGTM](https://image.lgtmoon.dev/{random:120000..130000}) ![LGTM](https://image.lgtmoon.dev/{random:120000..130000}) ![LGTM](https://image.lgtmoon.dev/{random:120000..130000}) ![LGTM](https…
net/httpのHandler周りのコードを読んでいたらよくわからなくなったので理解のため簡単なコードを書いておきます。 HTTPserver package main import ( "fmt" "net/http" ) func main() { // HandlerFunc は与えられたパターン(/hello) をDefaultServeMuxに…
Warning ProvisioningFailed 1s (x2 over 3s) pd.csi.storage.gke.io_gke-5e27e4c13f914c63a047-5131-44b0-vm_d6569e4a-5b72-46f5-9b98-2b1a87a061a3 failed to provision volume with StorageClass "regionalpd-storageclass": rpc error: code = Internal …
kubectl diff -f . ↓ ls . | xargs -t -P$(ls | wc -l) -I {} kubectl diff -f {} or ls . | xargs -t -P$(ls | wc -l) -I {} sh -c 'kubectl diff -f {} | tee -a /tmp/diff/{}.diff' kubectl apply -f . ↓ ls . | xargs -t -P$(ls | wc -l) -I {} kubectl …
DIとはなにか? Dependency Injection の略(依存性の注入) プログラミングのデザインパターンの一つ DIが嬉しいこと 猿でも分かる! Dependency Injection: 依存性の注入 - Qiita で紹介されていた例がわかりやすかったです。 要点を摘むと以下の通り。 作っ…
Cloud Buildでこんな感じの構成をDockerComposeで構成しビルドやテストをしています。 この時にひたすらビルドコンテナからRedisコンテナへの接続が失敗したので、他の方がすぐに解決できるようにまとめておきます。 ローカル環境 ローカル環境では以下のよ…
Dockerコンテナはポート番号を変更すればいくらでも立てられますが同じポートで立てたいこともありますよね。ここではその方法をお伝えします。 ちなみに大きく分けて4つのやり方があるかなと思います。 macvlanを使う ipvlanを使う vagrant/virtualboxなど…
BazelやBazeliskを利用してクロスコンパイル環境を用意するケースにて、M1 Macがなかなか厄介です。多くのRuleがM1 Macに対応していないことが多いので結構な確率で処理に失敗します。 そこで対策としてx86−64のBazelを導入することで回避しようというわけで…
以下を実行してキャッシュを消す rm -f $HOME/.gcalcli_cache その後はこれをつけるといい gcalcli --nocache