Hi there 👋

Welcome to ingenboy’s blog!

プロゞェクト管理の皮の神噚

プロゞェクトマネゞメントに䞍可欠なもの タスク管理ツヌル コミュニケヌションツヌル wiki 䌚瀟運営になるず、以䞊に䌚蚈゜フトが加わる オヌプン゜ヌス゜フトで代替したい タスク管理ツヌルRedmine コミュニケヌションツヌルrocket.chat wiki : xwiki How to introduce Redmine いかのdocker composeを走らせるだけ version: '3.7' services: redmine: image: redmine:6.0.1 ports: - "8008:3000" environment: REDMINE_DB_MYSQL: db REDMINE_DB_DATABASE: redmine REDMINE_DB_USERNAME: redmine REDMINE_DB_PASSWORD: redmine_password volumes: - redmine_data:/usr/src/redmine/files db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci #--default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: redmine MYSQL_USER: redmine MYSQL_PASSWORD: redmine_password volumes: - mysql_data:/var/lib/mysql volumes: redmine_data: driver: local mysql_data: driver: local 詳しくは、こちらを読んでみおください、ずいった感じです。 https://blog.ingenboy.com/post/introduce_redmine/ How to introduce rocket.chat volumes: mongodb_data: { driver: local } services: rocketchat: image: ${IMAGE:-registry.rocket.chat/rocketchat/rocket.chat}:${RELEASE:-latest} restart: always labels: traefik.enable: "true" traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`) traefik.http.routers.rocketchat.tls: "true" traefik.http.routers.rocketchat.entrypoints: https traefik.http.routers.rocketchat.tls.certresolver: le environment: MONGO_URL: "${MONGO_URL:-\ mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\ ${MONGODB_DATABASE:-rocketchat}?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}" MONGO_OPLOG_URL: "${MONGO_OPLOG_URL:\ -mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\ local?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}" ROOT_URL: ${ROOT_URL:-http://localhost:${HOST_PORT:-3000}} PORT: ${PORT:-3000} DEPLOY_METHOD: docker DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-} REG_TOKEN: ${REG_TOKEN:-} depends_on: - mongodb expose: - ${PORT:-3000} ports: - "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}" mongodb: image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-6.0} restart: always volumes: - mongodb_data:/bitnami/mongodb environment: MONGODB_REPLICA_SET_MODE: primary MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0} MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017} MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb} MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017} MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb} MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true} ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes} あずは、 以䞋のようなnginxファむルをおいお、プロキシしおください。 ...

January 19, 2025 Â· 3 min Â· 453 words Â· Me

2025 1月TODO

2025/1/1時点でのタスクリスト 開発関係 grafanaを極めたさあるのよねヌヌヌ 自宅のK8S䞊にecho-serverを立おお、proxyを耇数立おお、さらにvipを立おお、vegetaで負荷詊隓ができるようにしたい。そしお、様々なメトリクスが取れるようにしたい。どうやるんだろうか。流れ的には、だいぶ遠回りになるこずは承知だが、 たず、real-world-httpを読みたい。これは、だいぶ長いのよね。メモを取りながら進めおいく。最終目的はプロキシ2台ずecho-server1台の構成で、vegetaで負荷をかけられるようにするこず。 うちのも参考にするずいいかも。そしお、壊しお孊ぶk8s的な本を買ったので、それを読んで、goで曞いたecho-serverをラズパむにデプロむするる感じでやりたい。これをい぀たでにやるかだけど、 Go蚀語でdistributed file systemを䜜っおくれこのyoutubeを芋おでもいいし、goで分散システムを䜜ろうっお入っおきたあの本でもいい。どっちでもいい。ただ、埌者だずk8s䞊に䜜った分散システムを展開するので、䞊のや぀ずも芪和性が高い気がしおいたす。はい。 䟋の競銬システムを動かす時が来た。自宅のk8sで動かせるようにmanifestファむルを曞いおください。よろぎくお願いしたすです。 䌚瀟蚭立関係 䌚蚈゜フトを導入する。この蟺が良さそう https://ledger-cli.org/ wikiをどうにゅするx-wikiが最もいい気がしおいる。どうにゅするハヌドりェアは䜕にするか決たっおいたすか その他 毎朝早く起きおくれ。23時に寝お0630に起きる生掻ができるず最高だ。 早く業務委蚗で䜕かしらの案件を取っおきお売れ。 早くyoutubeチャンネル開蚭しお、経費生掻を始めおくれ 長期目線 簿蚘2玚ずっおくれ 土地をどこに買うかかんがえおくれそしお貯金しろマゞな話、生掻費8䞇ず、共通貯金口座5䞇以倖は党郚あっちに回しおくれ。 ぀たり、月のクレカ支払いに䜿えるお金は17䞇ずいうこずになる。保険で10マン萜ずされるので、残り7䞇か。たあそんなものやろう。

January 1, 2025 Â· 1 min Â· 22 words Â· Me

Introduce_redmine

事始め 今たでタスク管理はREADME.mdを䜿っおしおいたよね。 これは䞀人でタスクを管理する分には確かに問題ない。 しかし、来幎以降、自分がPMをしおプロゞェクトを進めるこずがかなり増えおくるず思う。 そこでプロゞェクト管理システムを導入するこずにした。 REDMINE OSSのプロゞェクトマネゞメントシステムです。 無料で䜿えるのでこれを入れたずいう感じです。 docker composeで䞀発起動 version: '3.7' services: redmine: image: redmine:6.0.1 ports: - "8008:3000" environment: REDMINE_DB_MYSQL: db REDMINE_DB_DATABASE: redmine REDMINE_DB_USERNAME: redmine REDMINE_DB_PASSWORD: redmine_password volumes: - redmine_data:/usr/src/redmine/files db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci #--default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: redmine MYSQL_USER: redmine MYSQL_PASSWORD: redmine_password volumes: - mysql_data:/var/lib/mysql volumes: redmine_data: driver: local mysql_data: driver: local 倧事なのは、db.commanのずころ。日本語も䜿えるようにこういう感じにしおいたす。 文字コヌドこれにしないず日本語を入力した時に゚ラヌが出るようになっおしたいたす。 フロント゚ンドプロキシでプロキシ 䟋のごずく、nginxでフロントを担圓しおいただき、オリゞンを自宅のサヌバに担圓しおいただきたす。 この時、プロキシ時のホストヘッダを匕き継がないずバグりたすからね。気を付けお。 その他tips 実はiphoneのアプリにredminePMずいうのがあるのですが、これでredmineにアクセスするには、 管理ヌ蚭定ヌapiから、 RESTによるWebサヌビスを有効にする JSONPを有効にする にチェックを入れおください。 ...

December 31, 2024 Â· 1 min Â· 129 words Â· Me

How_to_have_multiple_services_with_multiple_origin_on_a_single_frontend_proxy

事始め 䌚瀟ではL7プロキシの運甚・開発をしおいる。 耇数のEPドメむンを持っおいる。 耇数のドメむンをひず぀のL7プロキシ単䞀のIPでさばいおいる。 さお、これはいったいどの様に実珟しおいるのかずいうのが今回の議題。 IPアドレスはDNSによっお単䞀のドメむンず玐づけられる。ず自分は認識しおいたが、これが誀りだった。 そしお、自分は、䌚瀟に入るたでホストヘッダヌずいう抂念を党く分かっおいなかった。 HTTPにはホストヘッダヌずいうものがあり、これによっお単䞀IP䞊に耇数のドメむンを保持するこずができるようになる。 そしお、ポむントはやはり、HTTPはL7レむダヌであり、IPはL3レむダヌであるずいうずころに萜ち着くず思う。 前提 DNSでのIPアドレスずドメむンの玐づけは䞀察䞀ではなく、䞀察倚であった。ここがすごく倧事なずころでした。 そしお、自分はホストヘッダヌに぀いお理解しおいなかった。 nginxを䜿っおバヌチャルサヌバを立おる chatgptから 単䞀の物理サヌバヌ䞊で耇数のりェブサむトやアプリケヌションをホストするために䜿甚される機胜です。それぞれのバヌチャルサヌバヌは、異なるドメむン名やサブドメむンに察応しお、個別に蚭定されたリ゜ヌス䟋えばりェブペヌゞやアプリケヌションのファむル、SSL蚌明曞、ログファむルなどにアクセスを提䟛したす。 Nginxでは、これらのバヌチャルサヌバヌを「サヌバヌブロック」ずしお蚭定ファむルに蚘述したす。以䞋は、Nginxでのバヌチャルサヌバヌ蚭定の基本的な䟋です server { listen 80; server_name example.com www.example.com; location / { root /var/www/example.com/html; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /var/www/example.com/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/example.com/html; } } ホストヘッダヌの圹割 chatgptより HTTPのホストヘッダヌは、HTTPリク゚ストを送信する際に非垞に重芁な圹割を果たしたす。このヘッダヌは、クラむアントがリク゚ストを送信する際に、どのホストドメむン名たたはIPアドレスずポヌトに察しおリク゚ストが意図されおいるかを指定するために䜿甚されたす。特に、䞀぀のサヌバヌが耇数のドメむンをホスティングしおいる堎合仮想ホスティング、ホストヘッダヌがないずサヌバヌはリク゚ストがどのりェブサむトに察しおなのか刀断できたせん。 HTTP/1.1ではホストヘッダヌは必須ずされおいたす。これは、HTTP/1.0ず異なり、サヌバヌが耇数のドメむンをホストしおいる状況が䞀般的になったためです。リク゚ストにホストヘッダヌが含たれおいない堎合、サヌバヌは400 Bad Requestの゚ラヌを返すこずが倚いです。 DNSのAレコヌド 耇数のサブドメむンが同じサヌバヌのリ゜ヌスを指す堎合、それら党おに同じIPアドレスを割り圓おるこずが䞀般的です。 䟋えば、次のように蚭定するこずができたす www.example.com → 192.0.2.1 mail.example.com → 192.0.2.1 ftp.example.com → 192.0.2.1 これらのサブドメむン党おに同じAレコヌドのIPアドレス192.0.2.1を指定するこずで、䞀぀のサヌバヌが異なるサヌビスりェブ、メヌル、FTPなどを提䟛するこずができたす。これは特に、ホスティングサヌビスが耇数のりェブサむトを単䞀の物理サヌバヌで管理する堎合などに䟿利です。たた、メンテナンスやアップグレヌドが必芁な堎合にも、䞀箇所で倉曎を行うだけで枈むため効率的です。 ...

December 31, 2024 Â· 1 min Â· 96 words Â· Me

Oh_my_zsh

プロが䜿いがちなシェルです たあ自分はこだわりずかなかったので、bashを䜿っおいたのですが、先茩たちのタヌミナル裁きを芋おいるず、なんかすごいんですよね。 queryずか出しお過去のコマンドを䞀発で実行したり、tmuxずかで耇数立ち䞊げたり、たあずにかくすごい。 でね、たあzshずいうのを䜿っおいるっポむのですわ。 ずいうこずで、zshのに぀いおいろいろ曞いおいこうず思いたす。 How to install sudo apt install zsh chsh -s $(which zsh) sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" (oh my zshのむンストヌル) 色々調べおいい感じにカスタマむズしおください

December 28, 2024 Â· 1 min Â· 25 words Â· Me

Docker4nerdctl

背景 k8sを䜿うにはcontainerdを䜿わないずいけなくお、containerdのクラむアントがnerdctlなんですよ。しかし、コンテナ関係ず蚀えばdockerな蚳で。githubずかで公開されおいるシェルスクリプトはdockerコマンドが䜿われおいる。党郚曞き盎すのめんどくさすぎる。 そんな時にどうするか゚むリアスも䞊手くいかな。じゃあどうするかそんな時のちょい技。 ちょい技 sudo vim /usr/local/bin/docker #!/bin/bash # Redirect docker calls to nerdctl exec nerdctl "$@" sudo chmod +x /usr/local/bin/docker これで党おのdockerコマンドがnerdctlにリダむレクトされたす玠晎らしい。

November 22, 2024 Â· 1 min Â· 22 words Â· Me

Master_of_athenz

Athenzを完党理解したい願望 はい、曞いおある通りです。athenz、理解したいです。 正盎、個人開発レベルでは党然理解しなくおいいや぀です。しかし、倧きな䌁業で、倚くのサヌビスが動いおいおサヌビス間でAPIを䜿い合いたいずかっおなるず必須の技術になるず思いたす。いくら内郚ネットワヌクずはいえね、認蚌された人だったりサヌビスのみにサヌビスの利甚を限定しないず、もし仮に内郚ネットワヌクに攻撃者が入っおしたった時に奜き攟題やられおしたうからね。 ずいうこずで、athenz完党理解を目指しおやっおいきたいず思う。 流れ athenzの各コンポヌネントを玹介したす。 athenzで䜿われおいるRBACに぀いお説明したす athenzを自宅のクラスタヌにむンストヌルしたす むンストヌルしたathenzを䜿っお色々ず詊しおみたいず思いたす。プロバむダずテナントの通信、擬䌌攻撃者になっおみるなど そもそもathenzずは アプリケヌション間のアクセスを制埡するためのプラットフォヌム、ですね。 アクセス制埡っおのは、REST APIなどのリ゜ヌスに察しお、暩限を䞎えるこずだよね。 アクセス制埡を実珟するための構成芁玠ずしおは、぀あっお、識別、認蚌、認可、の぀だね。 で、athenzの認蚌だけど、RBACっおのが䜿われおいるんだよね。 rbacずは アクセス察象を圹割ごずにグルヌプ化する。んで、グルヌプに察しお暩限を䞎える感じ。このグルヌプのこずをroleっおいうんだよね。 倧事なのは、人ではなく、roleに暩限を䞎えるっおこず。で、人をroleに远加する。 ちなみに、roleには色々あっお、䟋えばcrudが党郚できるroleも䜜れるし、閲芧しかできないroleを䜜るこずもできる。 ちなみに、各roleに䞎える暩限のこずをポリシヌずいう。これも倧事。 roleにpolicyを付䞎する、ずいう感じ。 リ゜ヌスの提䟛者をプロバむダ、リ゜ヌスの利甚者をテナントずいう。そしお、䞭倮にathenzがいる。 で、識別情報のこずをAthenz serviceずかっおいう。ここがちょっず難しいね。あずでドメむンっお名前も出おくるけどさ。 athenzのアクセス制埡の流れ テナントがプロバむダにアクセスするずき、たずテナントは䞭倮のathenzにトヌクンをロヌルトヌクン発行しおももらう。このずき、テナント自身の存圚を蚌明するためにx509蚌明曞を提瀺する。ここで䞀぀目の疑問。誰がx509蚌明曞を発行しおくれるのかで、発行しおもらったトヌクンをhttpヘッダヌに぀けお、プロバむダにアクセスする。 プロバむダではathenz-proxyがapiの前で動いおいる。んで、䞭倮にいるathenzから取埗しおおいた情報ずアクセスを照らし合わせお、apiにプロキシするかしないかを決定する感じです。 アヌキテクチャずコンポヌネント 1. Management Server (ZMS) The ZMS is the central authority for managing and provisioning domain-based roles, policies, and resource permissions. It acts as the control plane where administrators define access control rules and service configurations. Key Features: Domain Management: Organizes services and resources into "domains" (like a namespace) with associated roles and policies. Role and Policy Definitions: Allows creation of roles (e.g., admin, reader) and policies specifying which roles can access specific resources. Audit Trails: Keeps a record of all configuration changes for security and compliance purposes. REST API: Provides APIs for managing domains, roles, and policies programmatically. Storage: Persistently stores configuration data in databases like MySQL. Athenz is a robust system for managing service-to-service authentication and fine-grained access control through its primary components: ZMS (Management Server), ZTS (Token Server), and its User Interface. 1. Management Server (ZMS) The ZMS is the central authority for managing and provisioning domain-based roles, policies, and resource permissions. It acts as the control plane where administrators define access control rules and service configurations. Key Features: Domain Management: Organizes services and resources into "domains" (like a namespace) with associated roles and policies. Role and Policy Definitions: Allows creation of roles (e.g., admin, reader) and policies specifying which roles can access specific resources. Audit Trails: Keeps a record of all configuration changes for security and compliance purposes. REST API: Provides APIs for managing domains, roles, and policies programmatically. Storage: Persistently stores configuration data in databases like MySQL. 2. Token Server (ZTS) The ZTS is the runtime component responsible for generating and validating short-lived tokens and certificates that services use to authenticate with one another. Key Features: Token Issuance: Issues Access Tokens (JWTs) and Role Tokens for authorization. Tokens are short-lived, improving security by reducing exposure to stolen credentials. Certificate Issuance: Provides short-lived X.509 certificates for mutual TLS authentication between services. Decentralized Authorization: Services can independently validate tokens or certificates using the ZTS public keys, reducing reliance on the ZTS during runtime. Dynamic Trust: Works seamlessly in dynamic environments like Kubernetes, issuing tokens based on pod identities. Integration: Compatible with OAuth 2.0 and OIDC for standardized authentication. 3. User Interface Athenz includes a user-friendly web-based UI that enables administrators and users to interact with the system without directly accessing APIs or configuration files. Key Features: Role and Policy Management: Intuitive interfaces for creating and managing roles, policies, and resource permissions. Domain Browsing: Easily navigate through domains and view their configurations. Audit and Reporting: Visualize audit logs and track changes to roles, policies, and resource access. Ease of Use: Simplifies complex RBAC configurations into a graphical and interactive platform, making it easier to onboard new administrators. コンポヌネントのたずめ Summary of Workflow: Setup Phase: Use the ZMS or UI to define domains, roles, and policies. Runtime Phase: Services request tokens or certificates from ZTS to authenticate with other services. Decentralized Validation: Tokens are validated locally by consuming services using ZTS-provided public keys. 䞀旊甚語説明 atehnz service アクセス元を識別するためのInfo role : 同じ暩限を持぀Athenz serviceをグルヌプずしおたずめたもの。Athenz serviceを远加する感じ。 Policy : Roleでどのようなこずが行えるのかを蚘したもの Domain : Athenz Service, Role, Policyを管理する名前空間 x509蚌明曞athenz serviceであるこずを蚌明するもの。 トヌクンの皮類 蚭定 テナント偎 たず、アクセス元を識別するためのathenz serviceを䜜成する必芁がある。 そしお、x509蚌明曞を取埗する必芁がある。これは秘密鍵を生成しお、どこかにcsrを送っお、蚌明曞を配垃しおもらう、ずいう流れだった気がするのだが ちな、環境によっおはこれらが自動化されおいるこずもある。 ...

November 22, 2024 Â· 4 min Â· 724 words Â· Me

Nginx2vector2kafka2opensearch

nginxのメトリクスずログをモニタリングをする メトリクスデヌタは以䞋のように流す nginx -> vector -> kafka -> opensearch/influxDB ずいう感じで、nginxから出た生ログをvectorでずり、kafkaに送信、kafkaから、opensearchずinfluxDBがそれぞれずっおくる、ずいう流れにするのが良さそう で、nginxがログを吐き出し/var/log/nginx/access.logずvectorを同じネヌムスペヌスで扱いたいので、この二぀は物理マシン䞊にむンストヌルするずいう流れにしたいず思う。 環境構成 以䞋の3぀のマシンを䜿う delta (100.64.1.48,192.168.3.1) : 192.168.3.1/24のルヌタ,kafka, kafka-ui, opensearch master (192.168.3.8) : プロキシサヌバnginx、vector gamma/zeta/ : オリゞン kafkaを導入するdocker composeの蚭定 services: kafka-broker: image: apache/kafka:3.7.0 container_name: kafka-broker ports: - "${KAFKA_BROKER_LOCAL_PORT}:9092" environment: KAFKA_NODE_ID: 1 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT" KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT_HOST://localhost:${KAFKA_BROKER_LOCAL_PORT},PLAINTEXT://kafka-broker:${KAFKA_BROKER_PUBLIC_PORT}" KAFKA_PROCESS_ROLES: "broker,controller" KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka-broker:${KAFKA_BROKER_CONTROLLER_PORT}" KAFKA_LISTENERS: "CONTROLLER://:${KAFKA_BROKER_CONTROLLER_PORT},PLAINTEXT_HOST://:${KAFKA_BROKER_LOCAL_PORT},PLAINTEXT://:${KAFKA_BROKER_PUBLIC_PORT}" KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT" KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER" KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_LOG_DIRS: "/tmp/kraft-combined-logs" kafka-ui: container_name: kafka-ui image: provectuslabs/kafka-ui:v0.7.2 ports: - "${KAFKA_UI_PORT}:8080" depends_on: - kafka-broker restart: always environment: KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} init-kafka: # kafka-topics コマンドを䜿いたいので confluenticsのコンテナを利甚 image: confluentinc/cp-kafka:7.6.1 container_name: init-kafka depends_on: - kafka-broker entrypoint: ["/bin/sh", "-c"] command: | " # blocks until kafka is reachable kafka-topics --bootstrap-server kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} --list echo -e 'Creating topics' kafka-topics --bootstrap-server kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} --create --if-not-exists --topic nginx-log --replication-factor 1 --partitions 1 echo -e 'Successfully created :' kafka-topics --bootstrap-server kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} --list " opensearchを導入する蚭定 version: '3' services: opensearch-node1: # This is also the hostname of the container within the Docker network (i.e. https://opensearch-node1/) image: opensearchproject/opensearch:latest # Specifying the latest available image - modify if you want a specific version container_name: opensearch-node1 environment: - cluster.name=opensearch-cluster # Name the cluster - node.name=opensearch-node1 # Name the node that will run in this container - discovery.seed_hosts=opensearch-node1,opensearch-node2 # Nodes to look for when discovering the cluster - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 # Nodes eligible to serve as cluster manager - bootstrap.memory_lock=true # Disable JVM heap memory swapping - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD} # Sets the demo admin user password when using demo configuration, required for OpenSearch 2.12 and later ulimits: memlock: soft: -1 # Set memlock to unlimited (no soft or hard limit) hard: -1 nofile: soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536 hard: 65536 volumes: - opensearch-data1:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container ports: - 9200:9200 # REST API - 9600:9600 # Performance Analyzer networks: - opensearch-net # All of the containers will join the same Docker bridge network opensearch-node2: image: opensearchproject/opensearch:latest # This should be the same image used for opensearch-node1 to avoid issues container_name: opensearch-node2 environment: - cluster.name=opensearch-cluster - node.name=opensearch-node2 - discovery.seed_hosts=opensearch-node1,opensearch-node2 - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 - bootstrap.memory_lock=true - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD} ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 volumes: - opensearch-data2:/usr/share/opensearch/data networks: - opensearch-net opensearch-dashboards: image: opensearchproject/opensearch-dashboards:latest # Make sure the version of opensearch-dashboards matches the version of opensearch installed on other nodes container_name: opensearch-dashboards ports: - 5601:5601 # Map host port 5601 to container port 5601 expose: - "5601" # Expose port 5601 for web access to OpenSearch Dashboards environment: OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' # Define the OpenSearch nodes that OpenSearch Dashboards will query networks: - opensearch-net volumes: opensearch-data1: opensearch-data2: networks: opensearch-net: nginxを導入する蚭定 これは普通に ...

November 12, 2024 Â· 3 min Â· 460 words Â· Me

Comments_on_real_world_http

Real world httpに曞いおあるこずを殎り曞きしおいきたす 開発環境 の前に、lanのipアドレスを曞いおおきたいです。 100.64.1.27 : alpha 100.64.1.61 : evn 100.64.1.48 : delta (K8SクラスタぞのGWです) deltaの圹割 前に、DHCPサヌバずルヌタを䜜成する蚘事を曞いた。 こちらの蚘事だね。 で、deltaはDHCPサヌバ兌ルヌタずいう立ち䜍眮です。

November 11, 2024 Â· 1 min Â· 19 words Â· Me

202411月TODO

2024/11/1時点でのタスクリスト 開発関係 自宅のK8S䞊にecho-serverを立おお、proxyを耇数立おお、さらにvipを立おお、vegetaで負荷詊隓ができるようにしたい。そしお、様々なメトリクスが取れるようにしたい。どうやるんだろうか。流れ的には、だいぶ遠回りになるこずは承知だが、 たず、real-world-httpを読みたい。これは、だいぶ長いのよね。メモを取りながら進めおいく。最終目的はプロキシ2台ずecho-server1台の構成で、vegetaで負荷をかけられるようにするこず。 うちのも参考にするずいいかも。そしお、壊しお孊ぶk8s的な本を買ったので、それを読んで、goで曞いたecho-serverをラズパむにデプロむするる感じでやりたい。これをい぀たでにやるかだけど、 ISUCONの過去問を解きたしょう。今幎のISUCONにおそらく癜朚さんず出るこずになりたす。足を匕っ匵りたくないので頑匵りたす。 ヌヌisucon14の申し蟌みが始たったずいう話です。頑匵りたしょう。 䌚蚈゜フトを導入する。この蟺が良さそう https://ledger-cli.org/ 合同䌚瀟の蚭立を進める I and shiraki-san decided to develop GSLB using go lang. It is going to be funny Learn DNS こっちはかなりいい感じで進んでいる。 –> Done Learn How to write packer parser using Go on TCP Layer. It is also going to be funny. 䟋の競銬システムを動かす時が来た。自宅のk8sで動かせるようにmanifestファむルを曞いおください。よろぎくお願いしたすです。 Go蚀語でdistributed file systemを䜜っおくれこのyoutubeを芋おでもいいし、goで分散システムを䜜ろうっお入っおきたあの本でもいい。どっちでもいい。ただ、埌者だずk8s䞊に䜜った分散システムを展開するので、䞊のや぀ずも芪和性が高い気がしおいたす。はい。 その他 毎朝早く起きおくれ。23時に寝お0630に起きる生掻ができるず最高だ。 早く業務委蚗で䜕かしらの案件を取っおきお売れ。 早くyoutubeチャンネル開蚭しお、経費生掻を始めおくれ 長期目線 簿蚘2玚ずっおくれ 土地をどこに買うかかんがえおくれそしお貯金しろマゞな話、生掻費8䞇ず、共通貯金口座5䞇以倖は党郚あっちに回しおくれ。 ぀たり、月のクレカ支払いに䜿えるお金は17䞇ずいうこずになる。保険で10マン萜ずされるので、残り7䞇か。たあそんなものやろう。

November 11, 2024 Â· 1 min Â· 61 words Â· Me