はじまして

ようこそインフラエンジニアのブログへ

KubernetesのUIである「Dashboard」を使ってみる

0. 背景 以前KubernetesのKubectlを代替するツールであるkuiを触ってみた。 その関連ツールであるDashboardも触ってみたいと思ったので、本記事にまとめる。 1. 動作環境 M1 Macbook AirのDocker Desktop 2. Dashboardをデプロイする 早速使ってみる kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yamlku Podが二つ起動している >> kubectl get po -n kubernetes-dashboard 03/01 8:09:48 <0> NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-856586f554-rklvj 1/1 Running 0 44s kubernetes-dashboard-7979bc45d5-tx7hb 1/1 Running 0 44s 3.Dashboardアクセス用のService Accountの作成 Serivce account用のyamlを作成する >> cat temp.yaml 03/01 8:38:37 <0> apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac....

February 28, 2022 · 1 min · Me

kubectl を GUIから扱えるようにするツール「kui」を使ってみる

1. 動作環境 MacBook Air (M1, 2020) Homebrew 3.4.0 Docker Desktop Version 4.5.0 2. 「kui」とは GUIでkubectlと同等の操作をできるツール。 kubernetesのGUIとしてはdashboardがあるが、これは既存のリソースなどを確認するためのもので、kubectlによる操作を代替するものではない。 今回はkuiを使ってみて操作性などを確認してみる。 3. インストール方法 Macならbrewでインストール可能。 brew install --cask kui 4. 利用方法 kubectl kui get po GUIを起動することが出来る。 5. 触ってみる 今回はNamespaceに限定してどのような操作が可能か確認する kubeconfigのコンテキスト、namespace、kuiのGUIの表示を左下のボタンから変更できる リソースを表示してみる(namespace) それぞれのnamespaceに関して詳細を表示できる 画面下部にはOSのshellもある 6. 参考サイト https://kui.tools/

February 27, 2022 · 1 min · Me

HTTPでPOSTした内容をおうむ返しで表示するHTTPサーバ(Flask)

背景 webhookなどの自作スクリプトの動作確認などをする際に、 httpリクエストの対応相手側が受け取った情報を確認できるようにしたい 動作要件 python3/flask (動作確認は、Python 3.7.3@Macbookpro2019で行った) 事前準備 $ pip3 install Flask $ python3 -m pip install Flask スクリプト from flask import Flask, request app = Flask(__name__) @app.route("/", methods=['POST']) def webhook(): headers = request.headers print(headers) body = request.get_data().decode('utf-8') + '\n' print(body) return body if __name__ == "__main__": app.run() 起動方法 スクリプトを実行するのみ。終了はCtrl+C ※環境に依っては、pythonの部分がpython3だったりpytohn3.xだったりします。 $ python test.py * Serving Flask app "test" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment....

February 26, 2022 · 1 min · Me

コンテナ内部からコンテナを作成する(DinD, DooD)

0.動作環境 AWS EC2 Ubuntu 18.04.6 Docker 20.10.12 1. 概要 Dockerコンテナ内部でコンテナを操作することは例えばGitLab Runnerなどでよく利用されるユースケースである。 コンテナからコンテナを操作する主要な方法である DinD (Docker in Docker): Dockerインストール済みのコンテナを利用し、コンテナ内でホストとは別のDockerデーモンを動かす方法。 DooD (Docker outside of Docker): Dockerインストール済みのコンテナを使用するのはDinDと同じだがdockerd、containerdは使用しない。代わりコンテナ側からホストのdocker.sock (/var/run/docker.sock)をマウントする。そのため、コンテナ上のDockerコマンドはホスト側のDocker環境で実行されることになる。 上記2種類の方法を今記事では扱う。 2. DinD Docker 公式のDinDに対応しているイメージであるdocker:stable-dindを利用する。 ubuntu@ip-172-31-17-145:~$ docker run --privileged --name dind -d docker:stable-dind デフォルトのままでは、Dockerコンテナはデバイスファイルにアクセスできないためコンテナ内でDockerデーモンを起動することはできない。 DinDコンテナの起動のためprivilegedフラグを付与し特権モードで動かす。 起動した確認する。 ubuntu@ip-172-31-17-145:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 21824f35109e docker:stable-dind "dockerd-entrypoint.…" 56 seconds ago Up 55 seconds 2375-2376/tcp dind DinDコンテナのシェルに入り、dockerコマンドを利用可能なことを確かめる。 ubuntu@ip-172-31-17-145:~$ docker exec -it dind ash / # docker -v Docker version 19....

February 22, 2022 · 2 min · Me

GitLab Runner(Docker)をAnsibleでインストールする

0. 前提 1. 動作環境 ansible実行側 Mac(M1) python 3.9.10 2.12.1 ansible実行される側 . 参考にしたサイト

February 10, 2022 · 1 min · Me

Oh My Bash!で Bashのプロンプトをカッコ良くする

Oh My Bashとは 1. 動作環境 bash -c "$(curl -fsSL https://raw.github.com/ohmybash/oh-my-bash/master/tools/install.sh)" . 最後に . 参考にしたサイト https://terminalroot.com/discover-and-install-oh-my-bash/ https://www.lisz-works.com/entry/xubuntu-ssh-load-failed-bashrc

February 8, 2022 · 1 min · Me

VSCode Remote Containerを使ってみる

0. 前提 1. 動作環境 . 最後に . 参考にしたサイト https://zenn.dev/hkdord/articles/remote-containers

February 7, 2022 · 1 min · Me

Chromeの拡張機能で名前解決の設定を変更する

Google Chromeの拡張機能で/etc/hostsのファイルを変更せずに名前解決を設定できるものがあります。 今回の記事ではChromeの拡張機能のみで/etc/hostsを書き換えるような設定を行える「Virtual Hosts」をご紹介します。 インストール方法 https://chrome.google.com/webstore/detail/virtual-hosts/aiehidpclglccialeifedhajckcpedom こちらのURLをクリックしていただくと、インストール画面が表示されます。 拡張機能Virtual Hostsのメリット /etc/hostsを編集するとGoogle Chrome以外のブラウザにも変更が反映されてしまいます。 しかし、拡張機能Virtual Hostsを使えばPCの/etc/hostsを変更することなく、名前解決をすることができ、Chrome以外に設定が反映されることはありません。 触ってみて思った拡張機能Virtual Hostsのデメリット 単一のホスト名しか登録できず、対応するIPアドレスも一つに限定されています。 では複数のホスト名を設定するにはどうすれば良いか? /etc/hostsを編集する HostAdmin APPをChromeにインストールする (注意)こちらの方法だと、/etc/hostsを編集するのでChrome以外のブラウザにも影響が出ます。また、/etc/hostsを編集できる権限をchromeに与える必要があります。 https://chrome.google.com/webstore/detail/hostadmin-app/mfoaclfeiefiehgaojbmncmefhdnikeg からインストール可能です。 最後に 今回はChromeの拡張機能で/etc/hostsを編集する方法を紹介しました。 Virtual Hostsには制限も多いですが、一時的に利用する分には十分事足りるのでは無いでしょうか? 何か他に良いツールがあれば、コメント下さると助かります。

February 5, 2022 · 1 min · Me

GitLab RunnerをKubernetes(EKS)上で動かす(Kubernetes executor)

0. 前提 Kubernetes, GitLabに関する基礎的な知識があるとなお良いです 1. 動作環境 EKS v1.19.15-eks-9c63c4 kubectl v1.23.3 helm v3.8.0 SaaS のGitLabを利用 2. Runner用のnamespaceを作成する(省略可) kubectl create namespace gitlab 3. Runner用のhelmリポジトリを追加する helm repo add gitlab https://charts.gitlab.io helm repo list 4. values.yamlに設定を投入する 現在のvalues.yamlを取得する helm inspect values gitlab/gitlab-runner > values.yaml GitLabのURLを設定する gitlabUrlの値を設定する Runner登録用のトークンを設定する runnerRegistrationTokenの値を編集する RBACの作成を有効化する rbac.createdの値を設定する rbac: created: true 5. Helmをインストールする helm install -n gitlab gitlab-runner -f values.yaml gitlab/gitlab-runner helm list -n gitlab kubectl get all -n gitlab 6....

February 4, 2022 · 1 min · Me

OpenShift環境でKubernetes公式チュートリアルをやってみる

はじめに OpenShiftの勉強をするにあたり、CodeReady Container環境を使ってKubernetes公式チュートリアルを一通りやってみる。 学習内容 公式チュートリアルでは、Deploymentの作成、状態確認、外部公開、スケールアウト、アップデート、ロールバックを行う。 https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/ 環境 以下で作成したCodeReady Container環境を使用 https://kurikube.github.io/post/20210131/ Module 1 - Create a Kubernetes cluster Cluster details この章ではクラスターの起動と状態確認を行う。 クラスターの起動と状態確認 Code Ready Containerのバージョンを確認する。 [centos@ip-172-31-19-74 ~]$ crc version WARN A new version (1.39.0) has been published on https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/1.39.0/crc-linux-amd64.tar.xz CodeReady Containers version: 1.38.0+659b2cbd OpenShift version: 4.9.12 (embedded in executable) OpenShift APIを実行するコマンドラインツールocのバージョンとマスターノードのバージョンを確認する。 [centos@ip-172-31-19-74 ~]$ oc version Client Version: 4.9.12 Kubernetes Version: v1.22.3+e790d7f クラスターの詳細確認 クラスターの詳細情報を取得する。 [centos@ip-172-31-19-74 ~]$ oc cluster-info Kubernetes control plane is running at https://api....

February 3, 2022 · 12 min · Me