地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2020-01-01から1年間の記事一覧

【k8s】configMapGeneratorをconf書き換え時にdeploymentを再作成させる

k8s

kustomize.io 背景/概要 Configmapは通常書き換えただけだとその内容は既存のpodには反映されない。この仕組み自体は役立つケースもあるがミドルウェアの修正時に即座に反映させたいケースで人の手を介してkubectl の rollout restartを打つ必要が出てきてし…

【Ubuntu】stressコマンドで負荷を上げる

snapcraft.io CPUを目いっぱい使いたい場合に指定するオプションです。 実行すると、CPU使用率が100%程度に達します。 なお、stress-ngを使うと、CPU使用率を指定できるようになります 使い方は、「stress-ngコマンドの使い方」を参照してください。

【GitHub Actions】PRを自動生成する

アプリケーションの修正でDockerPushされたらPRを作成したいケースで欲しかったので書いてみた。 - name: Create pull request uses: actions/github-script@v2 env: BRANCH: ${{ steps.get_branch.outputs.BRANCH }} VERSION: ${{ steps.bump_version.outpu…

【GitHub Actions】タグpushを行った際にDockerHubにもpushするyaml

- name: Container Push if: startsWith( github.ref, 'refs/tags/' ) env: REF: ${{ github.ref }} DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} run: | docker login -u ${DOCKERHUB_USER} -p $…

【k8s】metallbでオンプレでもtype: loadbalancerをやる

k8s

github.com オンプレでk8sを遊んでいてぶつかる問題としてLBが定義でなくてnodePortを使って遊ぶしかない問題。これはこれで問題ないけどnodeの数が増えた際に覚えなければいけない事項が増えて困るので導入してみた。 Metallbで出来ること MetalLBをKuberne…

【GitHub Actions】GitHub Actionsで修正のあったファイルを取得しformatterを実行する

歴史あるリポジトリとかで数千ファイルが既にあったりするケースのリポジトリに対して全体的にformatterをかけたりはしたくないけど直近で修正してるファイルはformatterをかけたいみたいなケースで使える小技。 GitHub scriptを自分たちで書いても良さそう…

【Istio】サービスメッシュの基本機能メモ

k8s

カナリアっぽいこと apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: reviews-route spec: hosts: - reviews.prod.svc.cluster.local http: - route: - destination: host: reviews.prod.svc.cluster.local subset: v2 weigh…

【k8s】Istioを使ってB/Gとかカナリーとかやってみる

k8s

概要 istio/envoyを使ってB/Gデプロイとかカナリアリリースとかを試してみた際のメモです。 github.com github.com Istio/Envoyとは ざっくりいうとクラウドネイティブなWebサービスのために設計されたロードバランサーのツール群。サービスメッシュの通信な…

【Mac】[brew] Error: homebrew-core is a shallow clone.

mac

$ brew update Error: homebrew-core is a shallow clone. To `brew update` first run: git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallow This restriction has been made on GitHub's request because updating shall…

【Istio】サーキットブレーカをやるサンプル

k8s

apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: httpbin-destination-rule spec: host: c-native-flask-svc subsets: - name: v1 labels: version: v1 trafficPolicy: connectionPool: tcp: maxConnections: 2 http: http2…

【k8s】水平オートスケールして遊ぶ

k8s

概要 kubernetes.io Horizontal Pod Autoscalerを使って遊んだ時のログ記事です。 メトリクスサーバをデプロイ オートスケールの契機を決めるのにpodやnodeのメトリクスを取得する必要があるのでこちらをデプロイします。 GitHub - kubernetes-sigs/metrics-…

【k8s】nslookup: can't resolve '(null)': Name does not resolve

k8s

作成したpodが外部の名前を引こうとした際に出力されるメッセージ / # nslookup google.com nslookup: can't resolve '(null)': Name does not resolve nslookup: can't resolve 'kubernetes.default': Try again / # ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): …

【k8s】kubenetesを学ぶ上での前提知識的な記事を見つけたのでスキルチェックシート的なものをやってみた。

k8s

前職では撃沈したのでこの辺の知識を学び直して再入門してる。改めて前提知識の多さに撃沈しそう。https://t.co/5XWYnPLnPB— Ryuichi@vimなにもわからない (@ryuichi_1208) 2020年12月12日 久々にk8sを触って遊んでいて「Kubernetesを始める前に必要そうな知…

【k8s】kindを使ってGitHub Actionsでmanifestをテストしてみる

k8s

ステージング環境見たいなそんなに高頻度に更新がされないかつコンフリクトがあんまり無いフェーズでのテストではなく開発中に小さい単位でmanifestをapplyしてみたいケースがあるとします。 その場合開発者がそれぞれkindをローカルに持つといった解決策が…

【k8s】ダッシュボード 2.1を外部から表示させるための手順

k8s

qiita.com この記事書いたのが2年前で久々にk8sの勉強を始めたらダッシュボードのバージョンがめっちゃ上がってることに気づいたのでせっかくなので導入してみたのでまとめます。 ゴール クラスタ外のクライアントからkubernetesのダッシュボードを閲覧する …

【k8s】bashで便利に補完したりする

k8s

kubetnetsクラスタを壊して繰り返してをしてるとzshのセットアップなんかするのすらめんどくさいことがあったりします。 なのでbashで使えるk8sの便利ツールを最低限入れる際の手順です。(githubでcurl & shとかで叩けるようにしておくと便利) cat <<"EOT" >…

【資格】AWS資格4冠した話と感想(と勉強方法)

AWS

先日受けたAWS DVAの試験に合格しついにCLF合わせアソシエイト4冠を達成したのでメモ的なものを残してみる。 スキルセットと職務経歴的なの 2017年4月 ~ 新卒カードを切ってLinuxカーネルエンジニアの末端の末端の末端くらいにジョイン 2019年4月 ~ 第二新卒…

【Perl】lintツールperlcriticを使う

metacpan.org perlでの静的解析ツールって何があるんだろうとか思って調べてたら出てきたので使ってみた。perl何も分からんを感じさせてくれるツールと感じました。 導入 cpanmで入ります。 $ cpanm Perl::Critic; ちなみにめちゃめちゃ多機能です。pythonで…

【k8s】podをワンライナー で消す

k8s

kubectl run -it --rm --restart=Never poisute --image=alpine -- sh -c "while true; do date; sleep 3; done

【Linux】負荷テスト

負荷テストをやる目的 一般的には、システムが、特定のワークロードの元で、応答性(responsiveness)、安定性(stability)の面で、どの程度動作するかを測定するのが目的。さらに最近だとインフラがスケールするのが前提だったりするのでスケーラビリティ…

【GitHub Actions】便利な関数表

GitHub Actionsで使える関数一覧 contains() contains( search, item )searchがitem を含む場合、true を返す。 特定ラベルで動作するジョブの定義なんかで使う場合は以下のようになる。 if contains(github.event.issue.labels.*.name, 'bug') startWith() …

【C】スタック使用量を出力する

C

perlアプリケーションの負荷テストをやっていて関数ごとのメモリ使用量とかみたいけどどうやって出すんだ。Cなら分かるのにって場面があった。Cなら分かるって思ったはいいもののそういえばどうやって出すんだろって思ってサンプル見ながら実装してみた。 ラ…

【vim】いい感じの設定が入ったvimコンテナ

fzfやらemmetやらそれなりに使ってるプラグインをセットにしてどんな環境でも使えそうなのdockerコンテナ。 自前のdotfilesも同梱しようか悩み中。試行錯誤しつつやっていこうと思う。docker hubにはprivateで上げていてそこには一応dotfilseも入れてしまっ…

【mac】socket: Too many open files (24)

mac

socket: Too many open files (24) Macで大量にリクエストを送るプログラムを実行するとプロセスが開けるファイルディスクリプタの上限に達してしまうと発生するエラーが出たりします。そもそもmacでやるなよって話ですがこれを対処するには以下の方法で対処…

【k8s】dial tcp 10.96.0.1:443: i/o timeout

k8s

あるタイミングから「dial tcp 10.96.0.1:443: i/o timeout」がずっと出力され続けるようになった。意味としては特定のpodからapiサーバへの通信がタイムアウトするよ的な意味。 環境 (⎈ |kubernetes-admin@kubernetes:default) [root@k8s-master manifest]#…

【Python】遅延読み込みライブラリを作ってみる

ログファイルの集計をpythonでやってるとめちゃめちゃメモリ食うので遅延読み込みを使ったりするのだが毎回書くのもアホらしいのでライブラリとして書いてみる。 yield使ってジェネレータとして実装しておけば問題なさそうなのでこんな感じ。ログ集計のたび…

【vim】Building vim with Python 3.8 fails when loading python plugins

良くみるやつ。自前でvimビルドすると良くなるというかMacのpythonへのパスの仕組みをあまり理解していないので結構起こる。。 ./configure \ --with-python3-command=/usr/local/bin/python3.8 \ vimのconfigurしたときの情報を表示してpythonのパスをリン…

【AWS】DVA試験で出てきそうなサービスのメモ

AWS

DVAの資格勉強中に思ったハンズオンだけでもやるべきサービスのメモ。SAAに比べるとサービス数は少ないが模擬試験を受けてみて深く突っ込んだ問題が多くなってる印象。実際開発しないと分からないことだらけで結構大変そう。。 コンピューティング/コンテナ …

【Git】diffでファイル名のみを取得する

git diff 比較ブランチ名 --name-only って感じでブランチ名をしてしておけば特定ブランチとの差分があったファイルを取得できる。ついでにhelpをみてみた。 usage: git diff [<options>] [<commit>] [--] [<path>...] or: git diff [<options>] --cached [<commit>] [--] [<path>...] or: git diff [<options>] <commit> [<commit>..</commit></commit></options></path></commit></options></path></commit></options>…

【Linux】ssコマンドのSend-Q/Recv-Q

ssってあまりなじみないけどこの一個前の記事書きながら状態を見るのに使ってみた。Send-Q/Recv-Qの値がそれぞれ何を意味してるのかを調べてみた。 サーバアプリ ネタバレするとsocketの状態次第でssの出力の意味は変わってくるらしい。listen状態の場合はSe…