19:13:50自前で構築したKubernetesクラスタでサービス(serivces、svc)関連がうまく動かない場合、原因としてfirewall関連の設定が不適切だったということがよくあります。Podが起動しないなど)もこれが原因であることがよくあります。いった場合、とりあえずiptablesが正しく設定されているか、またクラスタ内からapiserverのbind-addressで指定したアドレスの8080番および6443番ポート)にアクセスできるよう設定しているかを確認してみましょう。Kubernetesのパケットは複雑な経路でやってくるので、インターフェイス単位でアクセス許可を指定した場合うまく動かない場合があります。そのため、たとえばfirewalldを利用している場合、コンテナに割り当てられるネットワーク(たとえば172.17.0.0/16)をinternalゾーンに追加したうえで8080/tcpおよび6443/tcpを許可する、もしくはtrustedゾーンに追加する、といったようにネットワーク単位で設定した方が確実です。18:20:48テスト用のKubernetesクラスタをメンテナンスしていたら、突然クラスタの操作ができなくなった。次のようなエラーが出る。nodes)色々調べたところ、うっかりkubectlコマンドをアップデートしてしまってクラスタ側とバージョンが一致しなくなっていた(クラスタ側は1.7.7、kubectlコマンドは1.11)。kubectlコマンドをダウングレードすることで対処できた。19:48:58とりあえず基本的な流れは以前さくらのナレッジに書いたものと同じ。クラスタノードのkubelet設定ファイル(/etc/kubernetes/kubelet)の「KUBELET_ARGS」に次のように「--kubeconfig」および「--require-kubeconfig」パラメータを追加した上で、kubelet.ymlファイルを用意する必要がある。--require-kubeconfig"kubelet.ymlファイルはこんな感じ。kubelet-context--api_servers(--api-servers)オプションは廃止されているので、このように設定ファイルでapi-serverのURLを指定しなければならない模様(https://github.com/kubernetes/website/issues/7417)。1.6.2と組み合わせて使うとiptablesルールを適切に設定できないという不具合がある。28のiptablesは1.6.2なので、これに引っかかる。28のKubernetesパッケージに含まれているkubeletでは現時点でこれが修正されていない。1.6.1に置き換えることで問題は回避できそう。14:02:44Debianのmysqlパッケージをアップデートしたら突然mysqlサービスが起動しなくなった。journalctlでエラーメッセージを見ると、次のように出力されている。/var/lib/mysql-filesこの場合、/var/lib/mysql-filesディレクトリを作成すればOKのようだ。問題のパラメータ「--secure-file-priv」についてのドキュメントはここにある。Piを使ってSpotifyを再生できるデバイスを作ったので手順などを備忘録代わりに。OSはRaspbian(Stretch)。利用にはSpotifyの有料アカウントが必須。Connect」という機能を使うやり方がある。Connectデバイスとして利用する場合、Raspotifyというソフトウェアを利用すると簡単に実現できる。Pi向けのバイナリパッケージが配布されているので、これをインストールし、設定ファイルを編集してサービスを起動するだけで良い。設定ファイルは/etc/default/raspotify。変更したのはデバイス名を指定する「DEVICE_NAME」、ビットレートを指定する「BITRATE」といくつかのオプション。オプションについてはlibrespotのドキュメントにまとめられているが、ここでは使用するALSAデバイスを指定する「--device」、Spotifyアプリとの接続に使用するポートを指定する「--zeroconf-port」、キャッシュディレクトリを指定する「--cache」、音量の自動調整を有効にする「--enable-volume-normalisation」、初期音量を指定する「--initial-volume」を使用している。--deviceの引数はALSAの設定によって変わるので適宜適切なものを選択(後述)。ユーザー名などはSpotifyアプリ経由で取得するので設定不要。「--zeroconf-port」は指定しなくても良いのだが、指定するとポートを固定できるためファイアウォールの設定が簡単になる。100"設定ファイルを作成したら、systemctlコマンドでサービスを開始できる。raspotifyログはjournalctlコマンドで閲覧できる。raspotify確認していないが、zeroconfを使っているとのことで別途avahi-daemonも必須かもしれない。Connect経由での利用で事足りるのだが、Webブラウザ経由で操作できるクライアントについても試しに導入してみた。こちらはMopidyというミュージックサーバーソフトウェアとSpotify用のプラグインを組み合わせて利用することで実現できる・Mopidy自体はRaspbian標準でパッケージが提供されているので、これをインストールする。mopidy次に、Spotify用のプラグインをインストールする。UIを追加するプラグインmopidy-spotify:MopidyにSpotifyからのストリーミング再生機能を追加するプラグインlibspotify:かつてSpotifyが公式に提供していたSpotify連携ライブラリ。開発終了でいつサポートが終了してもおかしくないpyspotify:libspotifyのPythonラッパーlibspotifyとコンパイル済みのpyspotifyはMopidyのaptリポジトリから入手可能(ドキュメント)。自分は次のように直接ダウンロードして使用した。http://apt.mopidy.com/dists/jessie/contrib/binary-armhf/python-spotify_2.0.5-0mopidy1_armhf.debいくつか依存するパッケージがあるので、それはapt-getでインストールする。mopidy-spotifyとmopidy-mopifyについてはpipでインストールできる。Mopidy-Mopify続いて設定ファイルの編集。320hostnameやusername、passwordは各自適切な物を指定する。SPOTIFY」リンクをクリックしてOAuth認証を行うと、このページにリダイレクトされて設定すべきclient_idおよびcluent_secretが表示される。これをコピペすればOK。ALSAの設定RaspotifyもMopidyもサウンド出力にはALSAを使用する。認識されているデバイスは/proc/asound/cardsファイルで確認できる。Wの場合HDMI経由での出力に相当するはず)、デバイス1としてUSB端子に接続したオーディオIFが認識されている。<USBサウンドデバイスの情報がここに表示される>ALSAの場合、各アプリケーションが使用するサウンドデバイスに関する設定は/etc/asound.confで行える。今回はデフォルト設定(pcm.!default)に加えて、「pcm.mydev」という設定を作ってこれをRaspotifyで使用するよう指定している(前述)。0660」の2つを指定している。「slave」以下で「hw:1」を指定することで、オーディオデバイス1、つまりUSBサウンドデバイスを使用するよう指定している。}}問題点Mopidyでは一部のプレイリストが適切に取得できなかったりする模様。これはlibspotifyがもうdeprecatedであるためらしい。MopidyとRaspotify両方で発生する問題だが、ネットワークが遅くなる時間帯だとストリームのキャッシュに時間がかかったり、間に合わずに音切れが発生する状況となっている。Spotifyアプリだとこの問題は発生しないのでパケットを調べたりしたのだが、どうもSpotify公式アプリはakamai経由でコンテンツをダウンロードしているため混雑時でも高速にコンテンツをダウンロードできているようだ。この機能はMopidy(libspotify)やlibrespotではサポートされていないようなので、簡単には解決できなさそうである。-xeコマンドで確認)。'start-limit-hit'.このエラーは使用しているdockerのバージョンとsystemdのdocker.service設定ファイルの内容が合っていない場合に出るようだ。25標準のパッケージに入れ直したというもの。自分で作成して忘れていたのか、それともパッケージによってインストールされたのか分からないが、/etc/systemd/systemディレクトリ以下にdocker.serviceファイルが残っていたのが原因。daemon-reloadでsystemdの設定を読み直したら復旧した。25では、httpdをインストールするとデフォルトで自己署名証明書を作成してSSLを有効にする設定になっている模様。Encryptで証明書を取得しようとすると失敗するようだ。challenge対策としては、まず/etc/httpd/conf.d/ssl.confをssl.conf.orgなどにリネーム後にhttpdを再起動してSSLをいったん無効にした後、certbotコマンドを実行すれば良い。19:36:50Sambaで共有したLinuxマシン上のディレクトリにWindowsからアクセスした際、作成したファイルのパーミッションが755とかになってしまう問題がある。no」を指定すると解決する。副作用などについてはググれ。7など)では、iptablesなどによるパケット制御をfirewalldで行うようになった。このfirewalldを使って、ファイアウォールの設定を行う手順メモ。前提条件systemctlコマンドでfirewalldを稼動させておくfirewalldの設定は「firewall-cmd」コマンドで行うzone設定firewalldには「ゾーン」という概念があり、ゾーンごとに有効なポートなどを指定する。デフォルトで用意されているゾーンには「public」や「home」、「trusted」などが用意されている。--list-all」コマンドで確認できる。rules:この例では、「enp8s0」および「virbr0」、「virbr1」というインターフェイスが「public」ゾーンに割り当てられている。publicゾーンでは「dhcpv6-client」と「samba」、「ssh」というサービスが有効になっている。サービスの追加ゾーンに「サービス」を追加することで、そのサービスを追加できる。--get-services」コマンドで確認できる。--zone=<ゾーン名>」で確認できる。--zone=<ゾーン名>」コマンドを使用する。下記は「public」ゾーンに「http」サービスを追加する例。sshなお、--add-serviceオプションで追加したサービスは、firewalldの再起動後には保持されない。恒久的にサービスを追加するには、「--permanent」オプションを指定する。--reload」コマンドを実行してfirewalldの設定をリロードさせると変更が反映される。--reloadまた、追加したサービスを削除するには「--remove-service」オプションを使用する。7など)で導入されたsystemdで、サービスの開始/停止やシステム起動後の自動起動などを設定する手順メモ。systemdでは、「systemctl」というコマンドでサービスの制御を行う。サービスを開始/停止するには「start」および「stop」サブコマンドを使用する。「status」サブコマンドで稼働状況をチェックできる。<サービス名>システムの起動時にサービスを自動起動させるには「enable」サブコマンドを、自動起動させないように設定するには「disable」サブコマンドを使う。<サービス名>稼働中のサービスの確認は、「list-units」サブコマンドで行える。サブコマンドを省略すると「list-units」サブコマンドが実行されるので、引数無しでsystemctlコマンドを実行しても同じ結果が得られる。:このうち、「.service」で終わっているものがサービスとなる。service」オプション付きでsystemctlコマンドを実行することでサービスのみを一覧表示できる。serviceまた、「list-units」サブコマンドでは「disabled」に設定されているサービスは表示されない。これらも含めて確認するには、「list-unit-files」サブコマンドを実行する。systemd,linuxPrevNexthylom.net:ライター/エディター/プログラマー/Webディレクター、hylomのブログです。ご興味のある方はつぶやきや執筆記事などもどうぞ。絶対わかるGitバージョン管理」を出版しました。コマンドラインおよびGUIクライアントのSourceTreeを使ったGitによるバージョン管理の流れを解説してします。コマンドラインリファレンスも収録しています。-サーバーサイドJavaScriptでWebアプリを開発する-」を出版しました。Node.jsのインストールや環境構築、パッケージの利用、Webアプリケーション作成、データベースやファイルアクセス、Expressフレームワークの利用、デバッグやテストといった、Node.jsでのWebアプリケーション作成に必要な知識を一通り解説しています。分散型SNSであるMastodonの入門書を電子書籍として出版しました。初心者向けにMastodonの仕組み、用語、クライアントの使い方などを解説しています。Magazineオープンソース関連ニュース/情報を掲載OSDNオープンソースソフトウェア開発支援サイト。私も使っていますGitHub公開Gitリポジトリ。nodeWeblog.。