フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

Kubernetes

ArgoCDにおけるステータスの意味をコードを追って調べた

結論 調査過程(コードリーディング) 普通の場合(ArgoCDによって用意されているやつ) 独自に定義する場合(Applicationなど) 結論 ArgoCDにおけるSync-Operationのステータスの意味は以下の通りです。 種類 状態 Healthy 正常 Progressing 正常ではないが、…

ArgoCDとExternalSecretを併用するときにSecret上書き問題を解消する

ほぼほぼ独力で調べ切った後に全く同じ悩みにヒットした方の記事が出てきた。 argocdでSSOしたいときにclientSecretをSealedSecretで保持したい - うさだのブログ 問題 ArgoCDは自分自身でSecret(argo-secret)を作成します。 それとは別にSSOの設定などをExt…

GKE IngressでCustom Headerを少し触ってみる

GKEのIngress=外部HTTP(S)ロードバランサを触ってカスタムヘッダの追加や上書きの挙動を確認してみます。 使用したのは以下のmanifestです。 apiVersion: v1 kind: Service metadata: name: web annotations: cloud.google.com/neg: '{"ingress": true}' cl…

備忘:GKE CSIでPVCを作成するときに発生したエラー

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 apply / diff をxargsを使って高速で終わらせる

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 …

Graceful Node Shutdown についてまとめ

Graceful Node Shutdown とは? 通常PodとクリティカルPodの話 Critical Podに設定する方法 この記事を読んだ内容を備忘がてらまとめます。 kubernetes.io Graceful Node Shutdown とは? Graceful Shutdownとは「通常のShutdownと比べて丁寧に停止する機能…

トポロジー単位でpodの割り当てを管理するTopologySpreadConstraintsについて

TopologySpreadConstraints とは? NodeSelectorやNodeAffinityとの併用 Multiple TopologySpreadConstraints NodeSelector&AffinityとMultiple TopologySpreadConstraintsの違い この記事で紹介されていた「TopologySpreadConstraints」について備忘がてら…

スパイク時のスケーリングの仕組みを自分で考えてみる

はじめに 世の中にはすごいエンジニアや、よりよい物を作ろうと工夫しているエンジニアがたくさんいます。しかもその工夫や苦労をネットに公開してくれていることさえあります。 本になっているわけではないので体系的に学ぶことはできないのですが、そこで…

2021年のk8sとストレージ管理で気になったことを調べる

Kubernetes Native Storage OpenEBSができること NVMe-oFのCSI Driver PersistentMemoryとCSI Driver PersistentMemory(永続メモリ:PMEM)とは PMEMの使い方 PMEMを使っている製品 PMEM用のCSI オブジェクトストレージ向け標準I/F(COSI) ストレージ(CSI)の自…

EKS設計ノウハウまとめ

読むべきドキュメント 公式ドキュメント:https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/what-is-eks.html EKSベストプラクティス:https://jawsdays2019.jaws-ug.jp/session/1918/ EKSベストプラクティス:https://aws.github.io/aws-eks-best-p…

【備忘録】Kubernetesカスタムコントローラーへの道 を読んだ

これを買って読みました。記憶しておきたいところなどまとめ。 OD>実践入門Kubernetesカスタムコントローラーへの道 /インプレスR&D/磯賢大posted with カエレバ楽天市場Amazon 章構成 第1章 CRDとController 第2章 client-goと知っておくべ…

Linkerdを用いたAWSでのスループット向上の事例を読んで学ぶ

はじめに 今回紹介する記事 背景 課題 解決策 学び はじめに 世の中にはすごいエンジニアや、よりよい物を作ろうと工夫しているエンジニアがたくさんいます。しかもその工夫や苦労をネットに公開してくれていることさえあります。 本になっているわけではな…

ZOZOのAPI Gatewayの事例を読み込んでみて理解して&学びを得る

はじめに 今回紹介する記事 ZOZOTOWNについて ZOZOTOWNにおけるAPI Gateway 自分だったらどう考えるか? 個人的に勉強になる点 ドキュメンテーション & スキーマ テスト API Gatewayをカナリアリリースする まとめ はじめに 世の中にはすごいエンジニアや、…

Podにannotationやlabel情報をマウントして環境ごとに振る舞いを変えられるようにする

ユースケースとしてマルチクラスタのKubernetesなどを利用している場合、同じPodであってもロケーションや役割によってびみょーにやりたいことや振る舞いを変えたいケースがあります。かといって少しづつ変更するのは面倒…。 たいていのケースの場合、マルチ…

【オンプレ/AWS/GCP】 ClusterIP / NodePort / External IP / Loadbalancer / Ingress / Router の違いとその動き

KubenetesのPodを外部公開する時のそれぞれの流れについて図ありで解説します。 ClusterIP ClusteIPの振り分けについて NodePort External IP LoadBalancer クラウドの場合 オンプレの場合 Ingress クラウドの場合 オンプレの場合 Router(Openshift) Cluster…

CNIのCiliumについて調べてみた

調査テーマ Ciliumとは? / 登場背景 / 解決すること Ciliumとは? 登場背景 Ciliumが解決すること eBPF(extend Berkeley Packet Filter)とは? XDP(eXpress DataPath)とは? Ciliumができること/他との違い Nodeを跨ぐ通信の実現(CNI) ロードバランシング …

EKSにおけるIMDSについて調べてみた

EKSを使う際に注意すべきという情報をゲットしたのでまとめます。 Amazon EKS セキュリティのベストプラクティス - Amazon EKS IMDSとは? ちなみに脆弱性の対象になることも… EKSにおけるIMDS 結局どうすればいい? 注意事項 IMDSとは? AWS EC2におけるイ…

Volterraについて調べてみた(更新中)

用語 Namespaces Podを外部公開する Origin Pool Origin Poolの設定 Site内のネットワークトポロジー singleNICの場合 Multi NIC(以上) の場合 Clusterに対するVIP Site間のトポロジー Regional Edge(RE)の接続 Site-Site間の接続 仮想ネットワーク Network …

Kubernetesでマルチクラスタネットワークを実現する方法

Kubernetesでマルチクラスタネットワークを実現する方法について簡単に調査した。鋭意更新中。 skupper Submariner Istio 複数のコントロールプレーントポロジ 単一のコントロールプレーントポロジ VPN接続を備えた単一のコントロールプレーン VPN接続のない…

Pod sandbox changed, it will be killed and re-created. の解消法

誰かの役に立てば・・・ kubernetesで以下のエラーが出ました Normal SandboxChanged 5m21s (x5 over 6m40s) kubelet, xxxx Pod sandbox changed, it will be killed and re-created. Warning BackOff 105s (x20 over 5m20s) kubelet, xxx Back-off restarti…

AWS EKSで動かした時にkubeletとの接続失敗を解消する方法

問題 EKSにてdatadog agentをDamonSetで動かしkube-state-metricsを導入すると以下のようなエラーが発生します。 2020-07-21 04:58:16 UTC | CORE | ERROR | (pkg/collector/runner/runner.go:292 in work) | Error running check kubelet: [{"message": "Un…

AWS EKSを使う時の注意点と見ておくべきドキュメントまとめ

EKSを使うにあたって個人的に気になった点をまとめ。 EKSとは コントロールプレーンのアーキテクチャ EKSの開始方法 3種類のクラスターVPCタイプ プライベートクラスタの注意点 IAMユーザがk8sのRBACに追加される クラスタエンドポイントのアクセス 注意 k8s…

MetalLBのv0.9.2で搭載されたL2でのノードの停止の回復速度向上を追ってみた

Dramatically reduce dead node detection time when using Layer 2 mode (#527). This is improvement closes the long standing issue #298 that has been a common pain point for users using Layer 2 mode. This feature is enabled by default. You ca…

Kubernetes Meetup Tokyo #30で個人的学びまとめ

www.youtube.com Amazon EKS によるスマホゲームのバックエンド運用事例 Kubernetes Security for Microservices Amazon EKS によるスマホゲームのバックエンド運用事例 AWSのEC2上でPodが起動する際、EC2には2つのENIが付与される。ENIにはIPアドレスが事前…

krustletをAWS上のEC2(kubernetes)で動かしてみよう

KubernetesのノードとしてWebAssemblyが動作するkrustletが紹介されていました。一体どういうものなのかについて公式サイトのQuickStartを実際にやってみます。 図解化するとこんな感じです。 通常はkubeletとdocker(他のコンテナランタイムでもよい)を利用…

ArgoCDでkubernetesとGitの差分を比較するアルゴリズムについて

ArgoCDにおけるkubernetesリソースの変更(特にprune周り)がどうなっているのかをコードから追いましたので備忘的に残しておきます。 argo-cd/state.go at ca42a375c2a9f40993bf86a0f196bd1fdbe1a933 · argoproj/argo-cd · GitHub 以下の通りです。 ローカ…

kubernetesにおけるコンポーネントを整理してまとめます

kubernetesのContorollerと呼ばれるノードにはこれらのコンポーネントが存在しています。(kubeadmでインストールした場合) この記事ではそれらのコンポーネントがどのように起動され何を担当しているのかを簡単に紹介します。 名前 種類 役割 kubelet デー…

Kubernetesの障害時のPodへの接続断時間についてまとめ

この記事ではkubernetesで障害が発生した時の挙動と接続断時間をまとめます。 Kubernetes完全ガイドposted with ヨメレバ青山真也 インプレス 2018年09月 楽天ブックス楽天koboAmazonKindle 結論 1 Podで起動している時 Podが削除された場合 Dockerプロセス…

【手順あり】MetalLBとIngressを併用してL7負荷分散を実施する方法まとめ(オンプレミス)

Ingressについて オンプレミス環境におけるNginx Ingressについて 【ハンズオン】MetalLB+Ingressの実装 環境 事前準備 MetalLBの準備 Ingress リソースの準備 Ingress Controllerの準備 動作させるNginxサービス&podを準備 リソースの作成 実際にアクセス…

【手順あり】MetalLBの使い方から動きまで解説します

MetalLBとは? MetalLBを使った際のクラウド環境との違い MetalLBの構成 speakerとは? controllerとは? MetalLBの仕組み(ARP/NDP/BGP) L2 modeについて(ARP/NDP) L2 modeの冗長性 L2 mode利用時の制限 BGP modeについて BGP modeにおけるロードバラン…