Kubernetes
背景 CloudNative Days Tokyo 2021の下記を視聴し、Kubernetesエコシステムのバージョン追従を自動化せねばと思った次第です。 event.cloudnativedays.jp 発表の中では独自の仕組みで実現されているということで、Renovateで同じようなことができないかを試…
Udemyにコースを公開して講師デビューしました。この投稿はそのコースの宣伝記事です。 どんなコースでどんな思いで作成したのかを紹介します。 コース内容 Kubernetes、Amazon EKSを手を動かして学ぶハンズオンのコンテンツになります。 www.udemy.com Kube…
ALB Ingress ControllerからAWS Load Balancer Controllerに変わってから、Getting Startedしてなかったので、試してみました。 公式ドキュメントのExamplesを試すでも良かったのですが、手数が多そうだったので、自分なりに手順を作りました。 kubernetes-s…
Kubecon EU 2021のセッションで知ったCluster API Provider AWSを軽く試したので、その内容を紹介します。 Cluster API Provider AWSを使って、EKSでKubernetes Clusterを作成しました。 ちなみにセッションはこれです。 kccnceu2021.sched.com youtu.be な…
type: LoadBalancerは、ロードバランサーを表すKubernetesリソースです。 パブリッククラウドでのKubernetes環境であればLoadBalancerリソースを作成すると、各パブリッククラウドが提供するロードバランサーが作られて、Kubernetes環境でロードバランサーを…
ラズベリーパイでKubernetesクラスタを構築した場合、ラズベリーパイはCPUがARMアーキテクチャなので、各種プログラムの起動には、ARM用コンテナイメージが必要になります。 Argo CDなどで有名なArgo Projectのツールでは、ARM用のコンテナイメージがないこ…
この記事は、Kubernetes3 Advent Calendar 2020の25日目の投稿です。 最近AWSとTerraformを使ってKubernetesを学ぶ本を書きました。 本記事では、その内容をただ載せるだけの楽をしてしまっています。すみません。ただの宣伝です。 興味を持った方は、明日か…
Kubernetesにおけるデプロイ方法はGitOpsがデファクトスタンダードになったと思います。 GitOpsを実現するツールの中で、今回はArgo CDの使い方を紹介します。 argoproj.github.io 内容 セットアップ Argo CDをインストールします。 $ kubectl create namesp…
AWS Systems Manager Parameter Storeを使って、SecretsリソースをGenerateするKustomize Pluginを作りました。 作ったもの github.com この記事では、なぜこのPluginが必要だったのか、どのようにPluginを作ったかといったことを紹介します。 このPlugin自…
kubectl pluginという形でKubernetes Nativeなプログラムを作りました。 github.com その際に前提知識としてKubernetes APIの理解が必要だと感じました。 本投稿では、Kubernetes Nativeなプログラムを作る際に知っておくべき知識を紹介します。 なお、Goお…
kubectl pluginのページで紹介されているcli-runtimeについて、kubeconfig fileを扱うヘルパーとして使えるなどkubectl pliuginを作るのに利用できるとあります。 kubernetes.io このcli-runtimeを使い方を調べてみたので、その内容を紹介します。 ソースは…
Raspberry Piを使って自宅環境でKubernetesクラスタを構築しました。 いわゆる、おうちKubernetesをやってみたかったのでやりました。 その内容を紹介します。 物理構築 自宅で未使用だったRaspberry Pi 3と買い足したRaspberry Pi 4を使用しました。 物品一…
Kubernetes Meetup Tokyoでここ1年くらいAmazon EKSに関わってきた内容を「1人運用を支えるAmazon EKSノウハウ」というタイトルで発表しました。 k8sjp.connpass.com 発表内容を振り返りつつ、補足も交えてここで紹介できればと思います。 発表資料は下記で…
Kubernetesマニフェストはyamlファイルなので、ファイルの数が多くなるにしたがって記述の重複も多くなって困ります。 kustomizeを利用すると、重複をなくすDRYな状態を保てます。 その他にもKubernetesマニフェストを記述する際に便利な機能があります。 本…
Infra Study Meetup #2において、Kubernetesの紹介を中心とした基調講演が行われました。 Kubernetesに興味を持っている自分にとっては、Kubernetesの未来を感じさせてくれる講演でした。 youtu.be この講演の中でKubernetesに未来を感じる部分として、Contr…
EKSの環境を作るにはeksctlという便利なツールがあります。 これを使えば、様々なパターンの環境構築に簡単に対応できて、とても便利です。 ただし、eksctlはEKS周辺の環境構築しか行うことができません。 今の環境ではAWSリソースの管理はTerraformで実施し…
EKSでFargateを動かしてみたので、その記録です。 セットアップ fargate起動向けのクラスタを作成する eksctlを使います。クラスタの設定は下記です。 cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: fargate-cluster re…
Amazon EKSには、マネージド型ノードグループでノードを用意する方法とセルフでノードを用意する方法の2つのノードを作成する方法があります。 docs.aws.amazon.com Getting startedを見ると、マネージド型ノードグループを前提とした手順になっています。 …
Kubernetesを利用するに当たってのおすすめツールを紹介します。 kube-ps1 ある程度kubernetesを使うようになると、contextの切り替えが頻繁に発生します。 そういった中で、現在のcontextが何なのかを毎回確認するのが面倒になります。 そこで使えるのがkub…
こちらでEnvoyを一通り学習しました。 www.katacoda.com 理解できているかの確認のために、KubernetesでEnvoyを使ってみます。 KubernetesでEnvoyを使う場合、EnvoyをSidecarプロキシにすることで各Podの通信をコントロールする構成が知られています。 サー…
Kubernetes環境で開発する場合のTipsを紹介します。 Kubernetes環境での開発について Tipsを紹介する前にKubernetes環境での開発について説明します。 Kubernetes環境で開発したサービスを動かすには、実際に動かすプログラムの他にマニフェストファイルが必…
KubernetesのHorizontal Pod Autoscaler(HPA)を使用することで、CPUやメモリの使用状況に応じてPodをスケールアウトすることができます。 また、HPAではカスタムメトリクスを使うことで、CPUやメモリ以外のメトリクスを活用できます。 AWSでは、CloudWatchの…
client-goとは KubernetesのAPIを実行するためのgoのモジュールです。 github.com Kubernetesの拡張にも使われてます。 ゼロから始めるKubernetes Controller / Under the Kubernetes Controller - Speaker Deck これ以降は実際に使ってみた内容です。 筆者…
JAWS-UGコンテナ支部 #16〜EKS on Fargateローンチ記念!EKS祭りだワッショイの参加レポートです。 jawsug-container.connpass.com イベント名のとおり、AWSのサービスであるAmazon EKSやそのベースとなるKubernetesについての発表が数多く行われたイベント…
Kubernetesでは、ContainerのCPUやMemoryの使用量を設定するためのResource requestsとlimitsの機能があります。 これらの値をどのように決めるかはなかなか難しいのではないかと思います。 ただKubernetesの運用において、Resource requestsとlimitsの設定…
2019年を振り返る内容です。 半年過ぎたころからAWSメインのインフラ業務が多くなってきたので、そのあたりで学ぶことが変わったりしました。 AWS 基本的な理解 Udemyのコース「手を動かしながら2週間で学ぶ AWS 基本から応用まで」 ※こちらは現在新規での受…
Kubernetesでエラーを返さずにPodを更新するにはどうすれば良いか色々検証しました。 結論はPodが終了する直前にwaitするです。 以下、試したことを書きます。 結論だけ知りたい方はこちらからどうぞ。 今回はNode.jsで検証しましたが 、そのほか全般的に当…
試したものはPrometheusのOperatorです。 github.com Kubernetes Operatorとは OperatorはKubernetesに特化したアプリケーションです。Custom Controllerとして実装されています。 Operatorはアプリケーションのデプロイとスケーリングのノウハウをカプセル…
KubernetesのCustom ResourceはKubernetesをユーザが拡張するためのものです。 Kubernetesの標準にあるDeploymentのようなリソースをユーザが独自に作成し、リソースの定義に応じて、Kubernetes上のリソースをコントロールすることが可能です。 Controllerと…
Kubernetesではコンテナイメージを実行するのにDeploymentが使われます。 ただこのDeploymentではカナリアリリースを実現することはできません。 そこでArgo Rolloutsを使って、カナリアリリースを試します。 argoproj.github.io 以下に試した内容を紹介しま…