フラミナル

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

Kubernetes

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におけるロードバラン…

【手順あり】実際にやって学ぶ「kubernetes Helm」のChartの作り方

この記事ではHelmのChart(チャート)の作り方と公開方法を紹介します。 前の記事はこちら→ 【手順あり】実際に使ってみて学ぼう「kubernetes Helm」とは? - フラミナル 環境 作業手順 前提 Helmチャートの雛形作成 テンプレート(sample-chart/templates/se…

【手順あり】実際に使ってみて学ぼう「kubernetes Helm」とは?

この記事では Helmとは? Helmをインストールして、実際にパッケージをいれる手順 を紹介していきます。 環境 Helmとは? 作業手順 Helm Clientのインストール Helm を開始する Jenkinsをインストールしてみよう Jenkinsに接続してみる Jenkinsを削除する My…

【手順あり】KubernetesのHPA(Horizontal Pod Autoscaler)をためしてみる

今回はHPA(Horizontal Pod Autoscaler)を実際に触ってみる検証をしていきたいと思います。 環境 Metrics-Serverを導入する NginxとHPAを導入する Nginx HPA 負荷をかけてみる 負荷掛け前 負荷掛け中 負荷掛けの停止 参考情報 この書籍を参考にしています。 K…

ArgoCDのBestPracticeを意訳してみた

サイト:Best Practices - Argo CD - Declarative GitOps CD for Kubernetes リポジトリの分離 1. CIのビルドを無駄に走らせない 2. 監査ログの簡潔化 3. 複数のコードリポジトリでの単体アプリの存在 4. アクセスの分離 5. CIの無限ループ 命令的な内容はma…

ArgoCDとは?GitOps含めてわかりやすく説明します

ArgoCDとは? 継続的なデプロイメント(CD) GitOpsとは 具体的にどのような動きをするのか? ArgoCDによって実現できること やってみよう バージョンアップしてみる ロールバックしてみる ArgoCDのアーキテクチャー ArgoCDのコンポーネント API サーバ リポ…

【手順】KubernetesにArgoCDを入れてデモアプリを動かしてみる

GitOpsを実現できるArgoCDを試しに使っていきたいと思います。 環境 手順 ArgoCDのインストール ArgoCDのCLIをインストール デモアプリの作成 argoCDを使ってNodePortで公開してみよう 自動Syncも試してみよう。 おまけ 環境 名前 バージョン OS CentOS Linu…

【図解化】KubernetesのRBACについてわかりやすく整理します

こちらの本で紹介されているRBACについてkubernetes-dashboardの例を交えながら紹介します。 Kubernetes完全ガイドposted with ヨメレバ青山真也 インプレス 2018年09月 楽天ブックス楽天koboAmazonKindle RBACとは KubernetesにおけるRBAC kubernetesのユー…

【手順】KubernetesDashboard v2.0.0をExternal IP(NodePort)で公開する

Kubernetes完全ガイドposted with ヨメレバ青山真也 インプレス 2018年09月 楽天ブックス楽天koboAmazonKindle 前提条件 手順 1 kubernetes dashboard のyamlをダウンロードし修正する 2. 自己証明書を作成する 3. 自己証明書を1でダウンロードしたyamlに埋…

kubernetesをkubeadmでVagrant上のCentOS7にインストールする

kubernetesの環境をサクッと用意したいので手順を示しておきます。 仮想マシンの準備 以下のようなVagrantfileを用意します。今回はmaster1台とworker node1台の構成でいきます。 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |conf…

kubeadmで入れたkube-proxyの設定を変更する

kubeadmでkubernetesをインストールするとkube-proxyはpodとして起動します。 そのため手動でインストールした時と異なり/var/lib/kube-proxy/config.confを使えないため他の方法を行う必要があります。 方法 設定変更を行う 設定の反映を行う 方法 方法とし…

Kubernetesの代表的なコンポーネントについてまとめた

Kubernetesのコンポーネントについてまとめます。 コンポーネント マスターコンポーネント kube-apiserver etcd kube-sheduler kube-controller cloud-controller-manager ノードコンポーネント kubelet kube-proxy Container Runtime アドオン DNS WEB UI …