minikube with KVM

Linux PCでvm driverをKVMとしてminikubeを使っているが、PCの再起動後は、クラスターを削除しないと'minikube-net'が見つからずクラスターが起動しない。

 $ minikube start
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
E0613 22:22:13.299591    4647 start.go:159] Error starting host: Error starting stopped host: Error creatin
g VM: virError(Code=55, Domain=19, Message='Requested operation is not valid: network 'minikube-net' is not
active').

Retrying.
E0613 22:22:13.299757    4647 start.go:165] Error starting host:  Error starting stopped host: Error creati
ng VM: virError(Code=55, Domain=19, Message='Requested operation is not valid: network 'minikube-net' is no
t active')
================================================================================
An error has occurred. Would you like to opt in to sending anonymized crash
information to minikube to help prevent future errors?
To opt out of these messages, run the command:
       minikube config set WantReportErrorPrompt false
================================================================================
Please enter your response [Y/n]:

こうなってしまったら、minikube deleteしてから、minikube startしている。そこまで不便ではない。

minikube on linux with kvm

Linux PCでminikubeを実行してみた

LinuxディストリビューションGentoo

なんとなくVMVirtualBoxではなくてKVMを使いたいと思ったので、minikube start --vm-driver=kvmクラスタが起動することを目標にした

カーネルKVMを有効にしてビルドしておく

インストールしたパッケージは
sys-cluster/minikube
app-emulation/docker-machine-kvm

これらをインストールするとapp-emulation/libvirtも依存でインストールされていたので、/etc/libvirt/libvirtd.conf編集してunix_sock_group, unix_sock_dirなどの項目を有効にした

unix_sock_groupは"libvirt"としたので、ユーザをlibvirtグループに追加しておく

libvirtdを起動して、minikube start --vm-driver=kvmを実行すると一般ユーザでminikubeが起動できると思う

 

トラブルシューティング

minikube startしたときにkvmに繋がらない、kvm driverが見つからない、というようなエラーが出た場合は、libvirtグループに追加した情報がログイン中のセッションに反映されていないものと思われる。一旦ログアウトして再度ログインすると良い

kvm driverはdepricatedなのでkvm2推奨のようだが、portageにはdocker-machine-kvmしかなさそうなのでとりあえずkvmをつかっている。2度目以降の起動時には特に何も言われない

Mojibake Data Cleaning

KaggleのData Cleaning Challengeでファイルのエンコード方式の推測コードを知ったのでメモ

 

以下python

import chardet
open("unknown-encoding-file.csv", "rb") as f:
    result = chardet.detect(f.read(10000))
print(result)

これを実行するとencoding: "Windows-1252"でconfidence: 0.73のような結果が得られる

df = pd.read_csv("unknown-encoding-file.csv", encoding="Windows-1252")

得られたエンコード方式で問題なければ読み込める

 

Mojibakeは英語でもMojibakeのよう

{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}

Gentoo Linuxをインストールした

数年ぶりにGentoo Linux自作PCにインストールした

今回のつまづきポイント

USB 3.0サポートを有効にしておらず、リブート後一切入力できなくなる

Device Drivers --->

  [*] USB support --->

    <*> xHCI HCD (USB 3.0) support

ここを忘れない

 

UEFIブートパーティションFAT32でフォーマット、マザーボードEFIファイルが/boot/efi以下にあることを前提にしている

mkfs.fat -F 32 -n efi-boot /dev/sda2

フォーマットし直して、カーネルをインストールし直す

GRUB2ファイルのインストールは--removable付きで実行する

grub-install --target=x86_64-efi --efi-directory=/boot --removable

これで/boot/EFI/BOOT/のようにEFIファイルを置いてくれる

PCの電源が火花を吹いた

使い回しの電源が青白い火花を吹いて壊れたので、渋々、新しい電源を買ってきた

玄人志向 超高効率 省エネ電源ユニット 高出力プラグインモデル 800W 80 PLUS PLATINUM

ヨドバシで14,040円

PCを組んだ

購入したもの

MSI Z370 GAMING PLUS 14,610円

Intel Core i5-8400 20,980円

UMAX DCDDR4-2666-16GB HS (288pin/DDR4-2666/8GBx2) 21,576円

Seagate BarraCuda ST2000DM006 (3.5インチ/2TB/SATA) 6,242円

MSI GeForce GTX 1060 AERO ITX 6G OC 39,800円

マウスパッド SteelSeries QcK mini (250x210mm) 1,070円

Ainex GS-01 (シリコングリス 1.5g) 135円

計 104,413円

 

ケース、電源、CPUクーラーは持っていたもので間に合わせ、とりあえずLive DVDで起動を確認したのち満足した

本当はメモリを64GB積みたかったがお金がなかった

iOSプログラミング

iPhoneクソゲーアプリを作るべく、sprite kitを使ったプログラミングをやり始めた。数年前にxcodeの使い方と簡単なUIKitのプログラミング研修を受けたが、ほとんどおぼえていないので、story boardをいじって、table viewをつくってセグエの線を引いたりしてみた。

SwiftはオブジェクティブCよりとっつきやすいし、story boardで部品を置いてコードとひもづけたり線引いたりが以前よりも分かりやすくなった気がする。何か完成させるところまでがんばれそう。