zaki work log

作業ログやら生活ログやらなんやら

[kubernetes] kubeadmを使ったmasterノードのHA構成クラスタ

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:…

[kubernetes] kubeadmで構築した後トークン失効後にworkerノードを追加する

kubeadmでクラスタ構築するとworkerノード追加のためのコマンドが表示されて簡単にノード追加できるが、使用するtokenの期限が(デフォルトでは24時間で)切れてしまうため、同じ引数でkubeadm joinしてもこの通り、失敗する。 [zaki@k8s-worker03 ~]$ sudo ku…

[VMware] govcを使ってCLIでVMを作ったり消したりする

ESXiの無償ライセンスだとwrite系のAPIは使えないけど、評価版ラインセスなら試せるのでまとめてみた。 業務の検証環境のvCenterだとたまに使うので"カンペ"が欲しかったのです。 github.com 確認した環境 $ govc version govc 0.22.1 環境変数設定 VM作成 …

[kubectl / oc] get eventなどの一覧表示を時系列で表示してみる(--sort-by)

大抵のオブジェクトには、作成されたタイミングで.metadata.creationTimestampという定義が付与されます。 これを、kubectl/ocの汎用オプションの--sort-byに指定することで、出力の表示順を作成日でソートできます。 使い勝手が良いのは、デフォルトでは時…

rsyslogでリモートへログを送りつける設定

今回は、リモートのrsyslogへログを送りつける設定について。 (図の左側のrsyslogの設定です) 対向のrsyslog(図の右側)は前回の記事の、リモートからログの受信を受け付けるrsyslogの設定が入ってる前提 zaki-hmkc.hatenablog.com 基本 実は/etc/rsyslog.con…

rsyslogでリモートからのログ出力を受け付ける設定とloggerコマンドでの確認

The rocket-fast Syslog Server - rsyslog rsyslogでリモートからのログ出力を受け付ける設定とloggerの簡単な使い方。 図で言うと、右側のrsyslogの設定。 (図の左側に当たる送信側については別記事参照) (確認用)loggerコマンド 基本 オプション 出力先の…

[Kubernetes] kubeadmを使ってCentOSへk8sクラスタをデプロイしてみた (firewalld有効だとpodネットワークの不備あり)

今回は(今回も)CentOS 7.7 1908 Minimalを素で入れて、公式ツールであるkubeadmを使ってKubernetesクラスタを作ってみた。 何だかんだで一度もやったことがなかった基礎… kubernetes.io kubernetes.io 追記2: masterを複数ノードにする場合は、kubeadm init…

(小ネタ) systemctlでサービスの有効化と起動を同時に設定

systemctl enableのオプションに--nowというのを追加できた…! いつもいつも # systemctl enable docker # systemctl start docker みたいに実行してて、「コマンド2回たたくの面倒だなー」か、「インストールしたときenable忘れて、何日も経った後にreboot…

[Python] オフライン環境でpipする

インターネットに繋がらないホストでpip installするには、パッケージファイル指定インストールかローカルPyPIサーバを用意する。 普通にやっても [zaki@centos1 ~]$ pip install pypdf2 Collecting pypdf2 Retrying (Retry(total=4, connect=None, read=Non…

[Ansible] packageモジュールでパッケージインストールする

Ansibleモジュールの一覧をなんとなく眺めていたらpackage – Generic OS package managerという汎用的なパッケージ管理モジュールみたいなものを見つけたので、yumやaptと違ってプラットフォームに依存しないパッケージインストールができるのかなーと思って…

yumdownloaderを使ってインストール済みのrpmパッケージファイルをダウンロードする

既にインストール済みのパッケージだと [root@manager rpms]# yum install --downloadonly --downloaddir=. python2-pip 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 6.4 kB 00:00 * base: ftp-…

yum updateするときに特定のパッケージを更新対象外にする

色んな事情でyumでインストールした特定パッケージのバージョンを固定したい(アップデートしたくない)場合の設定について。 環境 お題 準備 epelを追加 updateを確認 除外設定 (a) --excludeオプションで指定 (b) /etc/yum.conf に設定 うっかりアップデート…

GitLab CE/GitLab Runner on Docker環境でexecutorもDockerなCI/CD環境

"GitLab CE/GitLab Runner" on Docker環境で、CI/CDの実行環境であるexecutorもDockerで動かす。 これまでの流れ docker executor 設定の追加 CI/CDの実行(Host is unreachable) 既存設定を削除 docker networkの設定 docker network指定でRunnerの再作成 jo…

既存のGitLab CE on Dockerに、Runnerコンテナも追加してCI/CD環境をつくる

Dockerで動かしてるGitLab CEにGitLab Runnerもコンテナで追加して、GitLab CE本体とRunnerを同じDocker上(別コンテナ)で動かして、初めてのGitLab Runnerお試し。 構成の概要としてはこんな感じ。 お題 Runnerコンテナの起動 Runnerの設定 GitLab CEでトー…

[oc / kubectl] run --commandを使って何もしないpodや一定時間後に任意のリターンコードで終了するpodをデプロイ

tail -f /dev/nullやsleep,exitを使ってデバッグや動作確認用に。 run実行で作成されるworkloadsリソースについては以下も参照。 zaki-hmkc.hatenablog.com usage runningするだけで何もしないpod 60秒後に実行完了するpod 60秒後にエラーで完了するpod 任意…

Ansibleのyum_repositoryモジュールを使ってyumインストール用のリポジトリを追加する

/etc/yum.repos.d/以下の設定ファイルをAnsibleを使って作成する方法。 ドキュメント yum_repository – Add or remove YUM repositories — Ansible Documentation お題 zaki-hmkc.hatenablog.com このクライアント側のyum設定 playbook --- - hosts: localho…

(CentOS7)プライベート環境に必要なパッケージのみ提供するyumリポジトリサーバを構築する

プライベート環境で用意されているyumリポジトリサーバではインストールできないパッケージを、rpmファイル配布してインストールでなく、ローカルにyumリポジトリサーバを構築し、そのリポジトリからパッケージインストールする。 例としてjq用のyumリポジト…

(CentOS7) sudo実行時に/usr/local/binにパスが設定されてないのは何故

結論から書くと、sudoの実行元のユーザのPATH設定・sudoの実行先のユーザ(root)のPATH設定、どちらも関係なく、/etc/sudoersでPATHを再設定しているため。 Defaults env_reset # 環境変数をクリア Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin # …

(コマンドメモ)ssh経由でリモートのファイル一覧をtarする

たまに使うので備忘録 リモートの/home/zaki/work/ansibleをローカルにansible.tar.gzとして固める [zaki@manager-dev ~]$ ls [zaki@manager-dev ~]$ [zaki@manager-dev ~]$ ssh zaki@192.168.0.19 tar cz /home/zaki/work/ansible | cat - > ansible.tar.gz…

oc runでPod単体デプロイするとoc adm drainで退避できないので注意 (作業ログ)

oc run --restart=NeverでPod単体で動作させると、oc adm drainでノードをサービスアウトさせようとしても、Podが退避されないのでその様子の実行ログ。 この記事の補足的な内容。 zaki-hmkc.hatenablog.com 環境 [zaki@okd4-manager ~]$ oc version Client …

[oc / kubectl] runでデプロイできるpodとその親リソースについて (廃止予定オプション--generatorの動作)

oc runを使ったPodのデプロイについて。 OpenShift v4では、oc runを使ってDeploymentConfigやDeploymentを作成するとDEPRECATEDの警告が表示さるようになった。(正確にはv4.1は触ったことないからわからない) k8sバージョン1.18で無くなる模様。 github.com…

[oc / kubectl] コマンドや引数の補完設定 【completion】

bashを使っているのであれば $ source <(oc completion bash) とか $ source <(kubectl completion bash) で。 OCP v3でmasterノードでばかり作業してると、たまにCRCとかクラスタ外部サーバで作業すると、「あれ?」となってしまうので備忘録。 なお、実行…

[OpenShift]指定nodeでデプロイされているpod一覧を表示する

すぐoc get pod --all-namespaces -o wide | grep ${node-name}やっちゃうんだけど、、、 v3だと便利コマンドありました。 ※ 以下、小ネタです。(こんなコマンドもあるんだなー程度で見てください。たぶんストレートにgrepした方が早いです笑) OCV v3 OCP v4…

パラメタの多いdocker runをdocker-composeを使ってYAMLで定義する(GitLab CE編)

docker runのパラメタが多いと設定変更して再実行しづらかったりメンテが大変なので、YAMLに書いてdocker-composeで実行すれば色々と便利です。 ということで、お題として以下のGitLab CEを起動するdocker runをdocker-composeで動かせるようにしてみます。 …

[OpenShift] sccのrunAsUserを使って特定のUIDを指定してpodを実行

root(UID:0)を含む、任意のUIDでpod(の中で動作するプロセス)を動かすには。 基本的にid:nekopさんの記事の通りです。 nekop.hatenablog.com 環境 前置き nonrootを使って指定のUID(非0)で動作させる 作業用プロジェクト作成 ServiceAccount/defaultにnonroo…

[kubectl / oc] custom-columnsを指定して欲しい情報だけリストアップする

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 …

[OpenShift] Webhookを使ってGitLab CEへpushされたら自動でS2Iビルド&デプロイする

自前のS2Iスクリプトを使ったイメージビルドをプライベートネットワーク上のGitLab CEのリポジトリ上のソースコードからビルド&デプロイする手順と、更にそれをWebhookを使ってpushをトリガーに自動でビルド&デプロイする設定について。 扱っているソース…

[OpenShift]自作のS2Iスクリプトを使ってローカルにあるPerlスクリプトをS2Iビルドしてデプロイする

単体で動作するPerlスクリプトをS2I使ってビルド&デプロイする。 環境はCodeReady Containers (OpenShift v4.3)ですが、OKD 3.11でも同じ。 [zaki@codeready s2isample]$ crc version crc version: 1.4.0+d5bb3a3 OpenShift version: 4.2.13 (embedded in b…

CentOS7にsamba4.9を入れるときのSELinuxの設定

設定はだいたいあってるはずだしwindowsからディレクトリ一覧は見えるのにディレクトリにアクセスできないと思って色々調べてたらSELinuxの設定が足りてませんでした。 そういえばubuntu/debianでしかsambaインストールしたことなかったなと思って… sambaイ…

OpenShiftの認証にGitLab CEを認証プロバイダとして使用する(OCP v3.11編)

OpenShift v3.11の認証(web / oc login)に、GitLab CEを使うための認証プロバイダの設定。 環境は以下の内容で構築したOKD3.11で確認 zaki-hmkc.hatenablog.com v4はこちら zaki-hmkc.hatenablog.com ドキュメントはこちら 第13章 認証およびユーザーエージ…