Kubernetes
microservices-demo.github.io 環境 quickstart webアクセス Istio対応 サイドカーインジェクション用namespace Gateway/VirtualService Gateway VirtualService デプロイして実行 Kialiでトラフィックを確認 環境 [zaki@cloud-dev ~]$ kc version --short C…
Kialiを使ってサービスメッシュのトラフィックをチェックする。 [zaki@cloud-dev ~]$ kc get pod,deploy,svc -n istio-system -l app=kiali NAME READY STATUS RESTARTS AGE pod/kiali-d45468dc4-jlshb 1/1 Running 5 23d NAME READY UP-TO-DATE AVAILABLE A…
B2sの2ノード構成のクラスタのノードを増やしたり、B2msインスタンスタイプのノードを追加したり。 ノードのスケールアウト ノードプール名を取得 スケーリング ノードのスケールアップ ノードプールの追加 (参考)VMのインスタンスタイプ ノードプールの削除…
kubeadmを使ったクラスタ作成時にクラスタ名を設定する。 何がしたいの? 設定方法 既存のオプションもkubeadm config YAMLに設定 標準の設定YAMLの取得 (参考)構築後のコンテキスト名のリネーム 環境 Ansible自動化の実装例 何がしたいの? kubectl config …
DockerでKubernetesを動かす。 何をいってるかわからないかもしれないけど、コンテナをK8sノードとして動かすものです。 下の図のような感じで、Kubernetesノードとして動作するコンテナがDockerで動く、というものです。 (なので、podがこのコンテナの中で…
検証なんかでeksctlでバージョン指定してKubernetesクラスタを作成したいときは、--versionを使用する。 $ time eksctl create cluster \ --name eks-1-15 \ --region ap-northeast-1 \ --nodegroup-name eks-ng-1-15 \ --node-type t3.micro \ --nodes 1 \ …
Istioを入れてサービスメッシュなサンプルアプリ(BookInfo)を動かすところまで。 環境 Istio インストール download istioctl install Istio サンプルアプリケーションのデプロイ namespace作成 デプロイ podへの外部からのアクセス設定 外部からのアクセス …
Kubernetes日本語化プロジェクトの翻訳お手伝いで、初めてOSSへのコントリビュートをしてみたのでその時の話について。 きっかけ 担当のアサイン 作業の流れ CLAの署名 初めてのfork コミットメッセージ 翻訳で困ったとき ローカルでの動作確認 本家側の変更…
kubeadm使ったKubernetesクラスタのCNIにCalicoを使う際のカスタムアドレスの指定が簡単(というか不要)になっていたのでメモ CalicoのデフォルトCIDR kubeadm v1.17 / Calico v3.11 kubeadm v1.18 / Calico v3.14 remove flannel CalicoのデフォルトCIDR kub…
クラウドサービスのマネージドK8sだと気軽に使ってしまうtype:LoadBalancer Service、kubeadmとかで作ったオンプレK8sだとそのままだと使えないんだけど、このツイートで「MetalLB」というのを知って(過去にも聞いてたことはあったかもしれないけど、、いろ…
前回はうっかりオプション何もなしでクラスタ作ってしまったので、eksctlで作成できるEKSクラスタ、オプションを指定してノードの設定などいろいろ初期設定してみる。 新規作成時のオプション デプロイ可能なpod数について ノードにsshしてみる ノードグルー…
EKSのCLIツールであるeksctlを使ってEKSクラスタを作った時のメモ。 必要な操作はすべて公式ドキュメントに載っているので、野良記事を参考にせずに公式ドキュメントを見ること。 docs.aws.amazon.com CLIツールをインストール EKSクラスタの作成 認証情報 v…
Rook v1.3のRook Ceph Storage Quickstartに沿って、クラウドのマネージドK8sやvSphere VolumeのようなIaaSのストレージ機能が何もないオンプレベアメタルなKubernetesクラスタでもPersistentVolumeのダイナミックプロビジョニングが使えることを試してみま…
登壇から1週間空いてしまいましたが、「Ansible Night オンライン! 2020.06」で(人生2度目の)LT枠で登壇をしましたので、振り返りたいと思います。 ansible-users.connpass.com 発表スライド 内容について 申し込み(CfP) 企画の参加 初めてのオンライン発表…
podのログの監視ツール作成みたいな作業をしているときに「任意のログをpod内に発生させたい!」ということがあったので、その方法について。 TL;DR 解説 podで動作確認 普通のLinux OS上で確認 TL;DR ログを発生させたい対象podのシェル上(kubectl exec -it…
2020.11追記: 使用するリポジトリについて、以前はドキュメントにも載っていた https://kubernetes-charts.storage.googleapis.com がサービス終了し、新しく https://charts.helm.sh/stable を使用するようになっています。 Helmバージョン3.4.1からは旧リ…
kubectxを使わずkubectlで済ます方法。 namespaceを作る kubectl create dry-run マニフェストから namespace切り替え namespace削除 kubectl delete マニフェストから OpenShiftだと 作成 切り替え 削除 namespaceと違うとこ 環境 namespaceを作る kubectl …
task(1)の実行結果を保持してtask(2)の入力にする、であればregisterを使って可能だけど、play(A)の実行結果を保持してplay(B)の入力にするには、、、registerで保持できる変数のスコープはplay内(←この認識は誤り)で、環境変数なんかはAnsibleから更新する…
OpenShiftだとoc loginやoc project使ってあまり意識しないので簡単にまとめ。。 設定情報 $ kubectl config view apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://k8s-master.esxi.jp-z.jp:6443 name: kube…
masterノードをHA構成でクラスタデプロイしたときに使用した、以下のトークンがどちらも失効したあとに別のmasterノードをクラスタに追加したい場合。 [zaki@k8s-master01 ~]$ kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS 1s127v…
kubeadm使ってmasterをHA構成にするには、kubeadm initのパラメタにLBを指定して構築する。 kubernetes.io 環境(使用バージョン)はkubeadm 1.18 [zaki@k8s-master01 ~]$ kubeadm version kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:…
kubeadmでクラスタ構築するとworkerノード追加のためのコマンドが表示されて簡単にノード追加できるが、使用するtokenの期限が(デフォルトでは24時間で)切れてしまうため、同じ引数でkubeadm joinしてもこの通り、失敗する。 [zaki@k8s-worker03 ~]$ sudo ku…
大抵のオブジェクトには、作成されたタイミングで.metadata.creationTimestampという定義が付与されます。 これを、kubectl/ocの汎用オプションの--sort-byに指定することで、出力の表示順を作成日でソートできます。 使い勝手が良いのは、デフォルトでは時…
今回は(今回も)CentOS 7.7 1908 Minimalを素で入れて、公式ツールであるkubeadmを使ってKubernetesクラスタを作ってみた。 何だかんだで一度もやったことがなかった基礎… kubernetes.io kubernetes.io 追記2: masterを複数ノードにする場合は、kubeadm init…
tail -f /dev/nullやsleep,exitを使ってデバッグや動作確認用に。 run実行で作成されるworkloadsリソースについては以下も参照。 zaki-hmkc.hatenablog.com usage runningするだけで何もしないpod 60秒後に実行完了するpod 60秒後にエラーで完了するpod 任意…
oc run --restart=NeverでPod単体で動作させると、oc adm drainでノードをサービスアウトさせようとしても、Podが退避されないのでその様子の実行ログ。 この記事の補足的な内容。 zaki-hmkc.hatenablog.com 環境 [zaki@okd4-manager ~]$ oc version Client …
oc runを使ったPodのデプロイについて。 OpenShift v4では、oc runを使ってDeploymentConfigやDeploymentを作成するとDEPRECATEDの警告が表示さるようになった。(正確にはv4.1は触ったことないからわからない) k8sバージョン1.18で無くなる模様。 github.com…
bashを使っているのであれば $ source <(oc completion bash) とか $ source <(kubectl completion bash) で。 OCP v3でmasterノードでばかり作業してると、たまにCRCとかクラスタ外部サーバで作業すると、「あれ?」となってしまうので備忘録。 なお、実行…
custom-columnsの簡単な使い方について。 お題 OCP v4の場合 OCP v3の場合 jsonpath(参考) custom-columns 凡例 お題 例えばcluster-admin権限でログインしてる状態でoc get sccすると、、、 OCP v4の場合 $ oc get scc NAME AGE anyuid 54d hostaccess 54d …
前の記事でjsonpathを使って特定のカラムのみをピックアップする指定について説明したけど、条件を指定するフィルターも使えます。 zaki-hmkc.hatenablog.com kubernetes.io 使用するのは?()という書式。 全体 例1 コンテナ名が"mysql"のpod名を出力 例2 sta…