6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Instana ObservabilityAdvent Calendar 2024

Day 23

OpenshiftをInstanaで監視してる環境をさっさとデプロイする

Last updated at Posted at 2024-12-23

注釈

この記事はAdvent Calenderの企画で書いているものなのですが、
残念ながらInstanaのUIはほとんど出てこないため、後ほど追記を行います。

モチベーション

1.Openshiftの機能を使うデモを作成するにあたり、OCPをいちいち作成するのは面倒で、Openshift Localを使って常にささっとOCPに接続する環境が欲しい。

2.Openshiftlocalを使うと自分のマシンが熱くなる、重くなるから常時起動するのは面倒

3.Openshift localは内部的には仮想マシンを起動して内部でOpenshift Console用のコンテナ起動してるはずだから外部接続すればいいんじゃね・・・?

4.ついでにOpenshift localを複数動かして、InstanaやTurbonomicで複数のClusterを監視しているっぽいいい感じの環境をサクサク作りたい。

Openshift localを実行しているLinux仮想マシンのtop 実行結果

top - 00:45:19 up 2 days, 13:07,  4 users,  load average: 0.95, 1.62, 1.68
Tasks: 352 total,   1 running, 351 sleeping,   0 stopped,   0 zombie
%Cpu(s): 19.0 us,  9.8 sy,  0.0 ni, 69.5 id,  0.2 wa,  1.3 hi,  0.2 si,  0.0 st
MiB Mem :  15733.4 total,    198.6 free,  11975.1 used,  14612.1 buff/cache
MiB Swap:   8060.0 total,   7597.3 free,    462.7 used.   3758.3 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                     
  14434 qemu      20   0   14.1g  10.6g  10.5g S 118.3  69.0  44:09.22 qemu-kvm  

ばっちりkvm(qemuプロセス)動いてるじゃんか。ということは外から接続可能ですよね。

大まかな手順

以下の公式ドキュメントが外部接続の大きな手がかりとなります。
このあとにInstanaから登録を行えばささっとInstanaから、
Openshift環境をいくつも監視しているデモ環境をデプロイできるはず。

https://docs.redhat.com/ja/documentation/red_hat_openshift_local/2.25/html/getting_started_guide/connecting_to_a_remote_redhat_openshift_local_instance
を参照しながらやればいいのですが、いくつか手順が抜けているので
この記事で補足しながら実際に行ってみます。

手順
1.linux VMにOpenshift localをインストールする
1.Openshift localを実行しているVMのIPアドレスを把握する
2.Openshift localの名前解決をリモートマシンからできるようにする
3.リモートマシンからVMのIPアドレスに接続ができるようにする

linux VMにOpenshift localをインストールする

まずredhat社のサイトからイメージを落としてきます。

[admin@localhost ~]$ wget https://developers.redhat.com/content-gateway/rest/mirror/pub/openshift-v4/clients/crc/latest/crc-linux-amd64.tar.xz

URLは適宜バージョンにより変化しますので、必ず確認の上実行してください。
手順書に沿って黙々とインストール作業を行います。

[admin@localhost ~]$ tar xvf crc-linux-amd64.tar.xz
[admin@localhost ~]$ cp crc-linux-2.43.0-amd64/crc ~/bin/
[admin@localhost ~]$ echo $PATH
[admin@localhost ~]$ export PATH=$PATH:$HOME/bin
[admin@localhost ~]$ echo PATH
[admin@localhost ~]$ echo $PATH
[admin@localhost ~]$ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
[admin@localhost ~]$ crc start

ついでにこのタイミングで物理IPを調べておきます。
物理IPとはOpenshift localを実行している物理マシンのIPアドレスを指しています。

[admin@localhost ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:99:3b:1e brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet 192.168.11.1/24 brd 192.168.11.255 scope global dynamic noprefixroute ens192
   valid_lft 48878sec preferred_lft 48878sec
inet6 fe80::250:56ff:fe99:3b1e/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:c3:b1:d3 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
   valid_lft forever preferred_lft forever
4: crc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:fd:be:d0 brd ff:ff:ff:ff:ff:ff
inet 192.168.130.1/24 brd 192.168.130.255 scope global crc
   valid_lft forever preferred_lft forever
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master crc state UNKNOWN group default qlen 1000
link/ether fe:fd:fc:07:21:82 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fcfd:fcff:fe07:2182/64 scope link 
   valid_lft forever preferred_lft forever

ens192 に192.168.11.1がアサインされているのがわかります。
ここで注意なのですが、私の環境はこのlinuxマシン自体が仮想マシンで動いています。
本来は物理クライアントにインストールするOpenshift localですので、
便宜上Openshift localをインストールしているマシンのIPを物理マシンのIP、
Opsnhift localが作り出すCRC VMのIPを仮想マシンのIPアドレスをVMのIPと呼んでます。

実際は仮想マシンなのでちょっとおかしな呼び方ではありますが、
明確に区別をする必要があるのであえてこの呼び方で進めさせて下さい。

Openshift localを実行しているVMのIPアドレスを把握する

GUIベースの管理ソフトがあるのであればそこから確認もできますが、
実はクライアント仮想マシンにOpenshift localをインストールすると、
hostsに仮想マシンIPアドレスを書き込むという動作を行います。今回はそれを直接覗いてしまいます。

[admin@localhost ~]$ cat /etc/hosts
127.0.0.1        localhost localhost.localdomain localhost4 localhost4.localdomain4
::1              localhost localhost.localdomain localhost6 localhost6.localdomain6

# Added by CRC
192.168.130.11   api.crc.testing canary-openshift-ingress-canary.apps-crc.testing console-openshift-console.apps-crc.testing default-route-openshift-image-registry.apps-crc.testing downloads-openshift-console.apps-crc.testing oauth-openshift.apps-crc.testing
# End of CRC section

今回の場合192.168.130.11が仮想マシンのIPアドレスです。
これを上手くリモートマシンに接続できればよいのです。

Openshift localの名前解決をリモートマシンからできるようにする

DNSの名前解決ができれば何でも構いませんが、私は自宅にdnsmasqを動かしているVMがいるのでそれを使います。
(未確認ですが、リモートマシンのhostsに追記しても動作すると思います。)

[admin@dns-machine ~]# vi /etc/dnsmasq.conf 
address=/.testing/192.168.11.1 #追記. 必ず物理マシンのIPアドレスにする

ここで注意なのですが、必ず名前解決先のIPアドレスを物理マシンのIPにしておきます。

リモートマシンからVMのIPアドレスに接続ができるようにする

前提条件として、リモートマシンから物理マシンへ IP reachableであることを前提に進めます。

まず仮想マシン内のネットワークに入り込み、なおかつ仮想マシン側から外側に出ていく設定を色々入れ込むのが面倒です。

なぜなら今回自動的に作成されるcrc vmの内部設定を全部把握できないためです。
crc vmにデフォルトゲートを設定するなどをしてもcrc cleanupなどでcrc vmが削除されてしまう可能性もあるため、今回は物理マシンにha proxyを入れて接続を行うことにします。
もしCRC VMのIPアドレスが192.168.130.11ではない場合はご自分のCRC VMのIPアドレスに読み替えて操作を行って下さい。

[admin@localhost ~]$ dnf -y install haproxy
[admin@localhost ~]$ vi /etc/haproxy.cfg  
global
    log /dev/log local0

defaults
    log global
    mode http
    timeout connect 10s
    timeout client 1m
    timeout server 1m

frontend crc
    bind *:80
    option tcplog
    mode tcp
    default_backend crc

frontend crc_https
    bind *:443
    option tcplog
    mode tcp
    default_backend crc_https

backend crc
    mode tcp
    balance roundrobin
    server app1 192.168.130.11:80 check

backend crc_https
    mode tcp
    balance roundrobin
    option ssl-hello-chk
    server app1 192.168.130.11:443 check

frontend crc_api
    bind *:6443
    option tcplog
    mode tcp
    default_backend crc_api

backend crc_api
    mode tcp
    balance roundrobin
    option ssl-hello-chk
    server app1 192.168.130.11:6443 check

ha proxyを起動します

[admin@localhost ~]$ systemctl start haproxy

これでリモートマシンから接続ができるようになっています。

Instanaへ接続をできるようにする。

Openshift localにアクセス
image.png

以下の記事を参考にしながらAgentをインストール

以上でお手軽にk8sを監視している環境がデプロイできました。
多少登録作業などがもたつくことなどはありますが、
概ね成功するので皆様ぜひお試しを!!

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?