LoginSignup
0
0

More than 5 years have passed since last update.

kubed-shを使ってローカルにRuby,Python,Nodeをインストールせずにスクリプトを実行する

Last updated at Posted at 2018-12-22

kubed-shとは

ちょっとしたRuby,Python,Nodeのコードを実行したい。けどローカルにRuby,Python,Nodeがインストールされていない。
ってこと時々ありますよね。
repl.itを使う選択肢もありますが、ローカルサーバーや社内サーバーと通信するプログラムの場合そうはいきません。
そういう場合、kubed-shを使うと便利です。
kubed-shはKubernetesクラスタにRuby,Python,Nodeがインストールされたpodを用意してそこでプログラムを実行してくれます。

インストールして試す

試したkubed-shのバージョンは0.5.1です。

まずminikubeとかでKubernetesクラスタをkubectlを使える状態にしておきます。

https://github.com/mhausenblas/kubed-sh#install-it にあるとおりにインストールする。

$ curl -s -L https://github.com/mhausenblas/kubed-sh/releases/download/0.5.1/kubed-sh-macos -o kubed-sh
$ chmod +x kubed-sh
$ sudo mv kubed-sh /usr/local/bin

次にテスト用のスクリプトを用意します。

test.rb
#!/usr/bin/env ruby
require 'socket'
hostname = Socket.gethostname

puts "Hello from Ruby, running on host #{hostname}"

次にkubed-shコマンドを実行します。

$ ./kubed-sh
Note: It seems you're running kubed-sh in a non-Linux environment (detected: darwin),
so make sure the binaries you launch are Linux binaries in ELF format.

Detected Kubernetes client in version v1.8.6 and server in version v1.10.0


Type 'help' to learn about available built-in commands.
[minikube::default]$ 

これでkubed-shが提供するシェル環境に入った状態になりました。
ここで先程のスクリプトを実行してみます。

# スクリプトがあることを確認できる
[minikube::default]$ ls -l
total 8
-rw-r--r--  1 akira  staff  120 12 22 14:41 test.rb

# スクリプトを実行
[minikube::default]$ ruby fuga.rb
pod "kubed-sh-1545457321216549000" created
uploaded /Users/akira/ws/sandbox/kubed-sh/fuga.rb to kubed-sh-1545457321216549000

Hello from Ruby, running on host kubed-sh-1545457321216549000

実行できましたね。メッセージからスクリプトをする際にpodが作成されているのがわかると思います。
また、先程のスクリプトファイルをローカルマシン側で内容を変更して再度実行すると、変更内容が反映されます。
ローカルサーバーと通信したい場合はローカルマシンのIPを指定すれば通信ができます。

なかなかおもしろいですね。

0
0
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
0
0