(O+P)ut

アウトプット



(O+P)ut

Output Log

IT技術-DevOps

【Kubernetes】PVを削除しても過去のPVCが残り続ける事象

事象 PVを落とし上げしているにもかかわらず $ kubectl delete apply -f pv.yaml persistentvolume "pv-1" deleted $ kubectl get pv No resources found in default namespace. $ kubectl apply -f pv.yaml persistentvolume/pv-1 created起動直後にPVCが紐…

【Kubernetes】定義済のstorageclassがあるにもかかわらずnot foundとなるエラー

事象 事前にPVを用意しているにもかかわらず $ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE test-pv 1Gi RWO Retain Available slow XmそのPVに紐づけようとしたPVCがPendingになる。 $ kubectl get pv…

【Docker】プライベートレジストリを最小限の設定で利用する

はじめに ローカル環境にコンテナ用のプライベートレジストリを立ててPush操作の検証を行った際の動作確認メモを記しておきます。 尚、環境としてはdockerインストール済のLinux仮想マシンの上でレジストリを起動しました。 環境情報 RedHat Enterprise Linu…

【Linux】Failed to start Docker Application Container Engineでdocker.serviceが起動しない

事象 DockerEngineの起動に失敗している。 # systemctl status docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: failed (Result: start-limit) …

【Kubernetes】ノードのkubeadm/kubelet/kubectlをUpgradeする

はじめに kubeadmで用意したノードのkubeadm/kubelet/kubectlをaptでアップグレードした際のメモです。 環境情報 kubectl v1.17.0 kubeadm v1.17.0 kubelet v1.17.0 kubeadmのバージョンアップ バージョンアップ前にdrainコマンドでPodがスケジュールされな…

【Kubernetes】kubectlコマンドでNodeに付与したlabelを外す方法

やりたいこと Nodeに付与されたラベルを外す。例えば以下のようなcolorラベルがついているとする。 # kubectl get node test01 --show-lables ... LABELS ... beta.kubernetes.io/arch=amd64.beta.kubernetes.io/os=linux,coloer=blue,.... 環境情報 kubectl…

【Kubernetes】CoreDNSへのnslookupがtimedoutする事象

事象 Kubeadmで構築した環境にてPod内の名前解決に失敗する。 具体的には/etc/resolv.confにcore-dnsのサービスであるkube-dnsのIPが記載されているにも関わらずPodからの通信に失敗する。 # nslookup testnode ;; connection timed out ; no servers could …

【Docker/Linux】CAP_NET_RAWを無効にしてコンテナを起動する

はじめに 「CAP_NET_RAW」というケーパビリティがありますが、セキュリティを考慮してコンテナ起動時に削除することができます。 このケーパビリティは「RAWソケットとPACKETソケットの使用を許可」を司っていいて、任意のパケットの送受信を行うために必要…

【Kubernetes】custom-columnsで自在に情報を出力する

はじめに kubectlコマンドのオプションにて-o custom-columns=HOGE:...で任意の列を出力することが可能です。 本記事ではjqコマンドと比較しながらcustom-columnsを利用して特定の値を抜き出してみます。 環境情報 kubectl v1.15.5 想定環境 $ kubectl get p…

【Kubernetes】マルチノード環境のNodePortに対する疎通確認

はじめに 以下記事にてKubernetesのサービスで利用するClusterIPとNodePortの違いについて説明しました。 その違いは K8sクラスタに所属していないマシンからポッド内に通信できるか否か です。本記事ではそこからさらに踏み込んで、「どのポートをどの環境…

【Kubernetes】kubeadmを利用してWorkerNodeを追加する手順

はじめに 以下の記事にてMasterNodeとWorkerNodeを1台ずつ構築しました。 本記事ではtokenの有効期限が切れた際にWorkerNodeを追加する流れを記載します。 環境情報 kubeadm 1.15 Tokenを再作成する必要がある Masterノードを構築した際に出たtoken情報をWor…

【Kubernetes】illegal base64 data at input byteというCSRオブジェクト生成エラー

事象 KubernetesにてYAMLファイルを用いてCSRを作成しようとした際に以下エラーで生成に失敗する。 Error from server (BadRequest): error when creating "test-csr.yaml": CertificateSigningRequest in version "v1beta1"cannot be handled as a Certific…

【Kubernetes】etcdctlによるバックアップとリストアの流れ

はじめに Kubernetesのバックアップツールであるetchctlを利用してバックアップ&リストアが可能です。 ドキュメントを見ると数多くのオプションを指定して実施していましたが、今回は最低限のオプションでどこまで動くかモ含めて確認ました。結論から言うと…

【Kubernetes】apply your changes to the latest version and try againというエラー

事象 yamlファイルをapplyすると以下エラーでapplyに失敗する。 Error from server (Conflict): error when applying patch: {"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"... ... for: "hoge.yaml": Operation cannot…

【Kubernetes】StaticPodのディレクトリの場所とその役割

はじめに Kubernetesの世界でPodを展開するには一般的にkubectl run podやkubectl apply -fを行います。 特殊な例としてcurlコマンドコマンドを押下することはあれ、基本的にはapiserverを介してPodをスケジュールしてもらいます。 一方、それとは別にPodを…

【Kubernetes】Taints/TolerationsとNodeAffinityの違い

はじめに NodeにあるLabelを元にPodのスケジュールを行うのがNodeAffinityで、NodeにあるTaintを元にPodのスケジュールを行うのがTolerationsです。この似通った「Taints/TolerationとNodeAffinityの違い」について分かりやすく解説します。尚、大まかな方針…

【Kubernetes】MasterノードにPodがスケジュールされない理由

はじめに Kubernetesにてマスター&ワーカー構成を用意した際に Podの展開はデフォルトではWorkerNodeに行われます。本記事では「なぜMasterにはPodがスケジュールされないのか?」という素朴な疑問の解説を行います。 環境情報 NAME STATUS ROLES AGE VERSI…

【Kubernetes】PodがPendingかつ展開Nodeが<none>のままの事象

事象 Podを起動するもpodが以下エラーで起動しない。 kubectl get pod NAME READY STATUS ... nginx-xx 0/1 Pending 環境情報 kubectl v1.18 原因/対応策 Materにてschedulerが起動に失敗している $ kubectl get componentstatus NAME STATUS MESSAGE ERROR …

【Kubernetes】ErrImageNeverPull/ErrImagePullへの対応

事象 複数ノードの環境でDeploymentを起動するもpodが以下エラーで起動しない。 kubectl get pod NAME READY STATUS ... nginx-xx 0/1 ErrImageNeverPull尚、ローカルのImageから取得するために以下を記載している。 imagePullPolicy: Never 環境情報 kubect…

【Docker】pids-limitをかけたコンテナでプロセス数上限を超過させる

はじめに コンテナ内のプロセス数の上限を制限するdocker runのオプション--pids-limitを利用するハンズオンです。 --pids-limit int Tune container pids limit (set -1 for unlimited)個人利用では指定することはないと思いますが、本番システムのコンテナ…

【Docker】Outside of Dockerでコンテナ内からコンテナを操作する

はじめに コンテナからホスト上のコンテナを操作する「Docker Outdide of Docker」という手法を実際に利用した結果をまとめました。 環境情報 Debian GNU/Linux 9 Docker Version:19.03.5 コンテナ内でDockerコマンドを利用する コンテナ内でDockerコマンド…

【Kubernetes】busyboxのDeployementを作成する

はじめに 調査用のPodをKubernetesにて起動したい場合は以下のように起動でき $ kubectl run busybox --image=busybox --image-pull-policy=IfNotPresent --restart=Never --tty -i If you don't see a command prompt, try pressing enter. / # hostname bu…

【Kubernetes】found a tab caharacter that violates indentationというYAMLのエラー

事象 YAMLファイルの適用に以下エラーで失敗する。 $ kubectl apply -f busybox.yaml error: error parsing busybox.yaml: error conberting YAML to JSON: yaml: line 22; found a tab caharacter that violates indentation 環境情報 原因/対応策 列を揃え…

【Kubernetes】must specify cpu,memoryとなってPodが作成できないエラー

事象 デプロイメントを作成するも $ kubectl create deployment nginx-dep --image=nginx deployment.apps/nginx-dep created $ kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE nginx-dep 0/1 0 0 xs $ kubectl get pod No resources found in…

【Kubernetes】WorkerNodeがNotReadyとなっている際の対応法

事象 PodのステータスがPending状態でkubectl describe podで確認すると以下のようになっている。 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 43s (x2 over 43s) default-scheduler 0/2 nodes are avail…

【Kubernetes】kubeadmを利用して1マスター1ノードを構築する流れ

はじめに 下記の公式サイトを参考に2つのUbuntuサーバをMasterNodeとWorkerNodeとして構築しました。 環境情報 Ubuntu 20.04 LTS はじめに 環境情報 kubeadm以下必要ツールをインストールする kubeadmを実行してみる MasterNodeを構築する WorkerNodeを構築…

【Kubernetes】kubectlコマンドを補完して利用する方法

やりたいこと kubectlコマンドのサブコマンドを[TAB]キーで補完できるようにしたい。 環境情報 $ kubectl version ... Client Version: version.Info{Major:"1", Minor:"17", ...bash --version GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu) …

【Kubernetes】Deploymentを例にOwnerReferencesを理解する

はじめに Kubernetesではkubectl create deployment nginx-dep --image nginxとデプロイメントを作成すると自動的にReplicaSetやPodが作成され、同デプロイメントを削除すれば自動的にReplicaSetやPodも削除されます。これはOwnerReferencesによってオブジェ…

【Kubernetes】特定Podを停止させずにレプリカセットから切り離す手順

はじめに Kubernetesではkubectl create deployment nginx-dep --image nginxとデプロイメントを作成すると自動的にReplicaSetも作成され、不具合が発生した場合もPodをdeleteすれば自動的に新たなPodが復旧します。ただ、PD対応等で特定のPodを一時的に退避…

【Kubernetes】kubectlではなくcurlコマンドで直接APIサーバと通信する

はじめに Kubernetesではkubectlコマンドを利用してマスターノードのAPIサーバと通信を行いますが、今回はkubectlコマンドではなくcurlコマンドで直接deploymentの削除であるkubectl delete deploymentに相当するリクエストを行ってみます。 コマンド実行環…


他の記事を読む