<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">うさぎでもわかる</title>
  <id>http://suwa3.postach.io/feed.xml</id>
  <updated>2021-01-28T00:46:44.788000Z</updated>
  <link href="http://suwa3.postach.io/" />
  <link href="http://suwa3.postach.io/feed.xml" rel="self" />
  <generator>Werkzeug</generator>
  <entry xml:base="http://suwa3.postach.io/feed.xml">
    <title type="text">Shell Script</title>
    <id>https://suwa3.postach.io/post/shell-script</id>
    <updated>2021-01-24T14:36:47.740000Z</updated>
    <published>2021-01-24T11:24:05Z</published>
    <link href="https://suwa3.postach.io/post/shell-script" />
    <author>
      <name>suwa3</name>
    </author>
    <category term="tech" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src=&quot;https://cdn-images.postach.io/6da2d587-f03e-27e9-338a-ce1d1c408ea8/67cb831b-cfe4-dffd-557d-91fe521cca11/6437fccc-57bf-1a12-7ec2-81313ba31363.png&quot;  style=&quot;--en-naturalWidth:748; --en-naturalHeight:448;&quot; width=&quot;521px&quot;/&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;Shell Script をキチンとやろうと思って色々さわったので備忘録メモです。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h1&gt;&lt;a href=&quot;https://honto.jp/netstore/pd-contents_0628926695.html&quot; rev=&quot;en_rl_none&quot;&gt;独学プログラマー&lt;/a&gt;のPart3 (第16章 Bash, 第17章 正規表現) を読む&lt;/h1&gt;&lt;div&gt;  &lt;/div&gt;&lt;h2&gt;Bash (オプション_コラム)&lt;/h2&gt;&lt;pre&gt;&lt;div&gt;$ ls --author -l    # Ubuntu&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;--author オプション初めて使ったかも。ls の help を見たら -A とのこと。なるほど〜&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;pre&gt;&lt;div&gt;$ ls --help    # Ubuntu&lt;/div&gt;
&lt;div&gt;Usage: ls [OPTION]... [FILE]...&lt;/div&gt;
&lt;div&gt;List information about the FILEs (the current directory by default).&lt;/div&gt;
&lt;div&gt;Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Mandatory arguments to long options are mandatory for short options too.&lt;/div&gt;
&lt;div&gt;  -a, --all                  do not ignore entries starting with .&lt;/div&gt;
&lt;div&gt;  -A, --almost-all           do not list implied . and ..&lt;/div&gt;
&lt;div&gt;      --author               with -l, print the author of each file&lt;/div&gt;
&lt;div&gt;(略)&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;macOS では --author オプションが存在しなかった(;_;)&lt;/div&gt;
&lt;div&gt;ただ -author オプションであれば動作するのだけれど、これは -a, -u, -t, -h, -o, -r を同時に指定したコマンドというだけで Ubuntu 上の --author とは別物らしい。(そりゃそうか) ほえ〜〜&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;pre&gt;&lt;div&gt;$ ls -author -l    # macOS&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;正規表現&lt;/h2&gt;&lt;div&gt;&lt;i&gt;口ではなんとでも言える。コードを見せなさい。ーーリーナス・トーバルズ&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;き、厳しい〜〜&lt;/div&gt;
&lt;div&gt;正規表現に自信のないわたしにはグサグサ刺さった上に、何も言えない気持ちになりました・・&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;pre&gt;&lt;div&gt;$ python3 -c &quot;import this&quot; &amp;gt; zen.txt&lt;/div&gt;
&lt;div&gt;$ cat zen.txt &lt;/div&gt;
&lt;div&gt;The Zen of Python, by Tim Peters&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Beautiful is better than ugly.&lt;/div&gt;
&lt;div&gt;Explicit is better than implicit.&lt;/div&gt;
&lt;div&gt;Simple is better than complex.&lt;/div&gt;
&lt;div&gt;Complex is better than complicated.&lt;/div&gt;
&lt;div&gt;Flat is better than nested.&lt;/div&gt;
&lt;div&gt;Sparse is better than dense.&lt;/div&gt;
&lt;div&gt;Readability counts.&lt;/div&gt;
&lt;div&gt;Special cases aren't special enough to break the rules.&lt;/div&gt;
&lt;div&gt;Although practicality beats purity.&lt;/div&gt;
&lt;div&gt;Errors should never pass silently.&lt;/div&gt;
&lt;div&gt;Unless explicitly silenced.&lt;/div&gt;
&lt;div&gt;In the face of ambiguity, refuse the temptation to guess.&lt;/div&gt;
&lt;div&gt;There should be one-- and preferably only one --obvious way to do it.&lt;/div&gt;
&lt;div&gt;Although that way may not be obvious at first unless you're Dutch.&lt;/div&gt;
&lt;div&gt;Now is better than never.&lt;/div&gt;
&lt;div&gt;Although never is often better than *right* now.&lt;/div&gt;
&lt;div&gt;If the implementation is hard to explain, it's a bad idea.&lt;/div&gt;
&lt;div&gt;If the implementation is easy to explain, it may be a good idea.&lt;/div&gt;
&lt;div&gt;Namespaces are one honking great idea -- let's do more of those!&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;grep の練習用として使うテキスト(Tim Peters の詩)が詩人だなぁと思ったので載せました。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;pre&gt;&lt;div&gt;$ grep Beautiful zen.txt &lt;/div&gt;
&lt;div&gt;Beautiful is better than ugly.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep -i beautiful zen.txt    # -i は大文字小文字の違いを無視&lt;/div&gt;
&lt;div&gt;Beautiful is better than ugly.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep -o Beautiful zen.txt    # -o は一致した単語のみ抽出&lt;/div&gt;
&lt;div&gt;Beautiful&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep ^If zen.txt    # キャレット記号(^)は行の先端に一致するものを表示&lt;/div&gt;
&lt;div&gt;If the implementation is hard to explain, it's a bad idea.&lt;/div&gt;
&lt;div&gt;If the implementation is easy to explain, it may be a good idea.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep idea. zen.txt    # ピリオド(.)は xx. の xx の後ろに何がきても一致する&lt;/div&gt;
&lt;div&gt;If the implementation is hard to explain, it's a bad idea.&lt;/div&gt;
&lt;div&gt;If the implementation is easy to explain, it may be a good idea.&lt;/div&gt;
&lt;div&gt;Namespaces are one honking great idea -- let's do more of those!&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep im. zen.txt&lt;/div&gt;
&lt;div&gt;The Zen of Python, by Tim Peters&lt;/div&gt;
&lt;div&gt;Explicit is better than implicit.&lt;/div&gt;
&lt;div&gt;Simple is better than complex.&lt;/div&gt;
&lt;div&gt;If the implementation is hard to explain, it's a bad idea.&lt;/div&gt;
&lt;div&gt;If the implementation is easy to explain, it may be a good idea.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep idea.$ zen.txt    # ドル記号($)は行の終端に一致するパターン&lt;/div&gt;
&lt;div&gt;If the implementation is hard to explain, it's a bad idea.&lt;/div&gt;
&lt;div&gt;If the implementation is easy to explain, it may be a good idea.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep im.$ zen.txt    # 何も表示されない&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;$ grep implicit.$ zen.txt    # implicit. で終わる行が表示される&lt;/div&gt;
&lt;div&gt;Explicit is better than implicit.&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;複数文字との一致&lt;/h3&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo Two too. | grep -i t[wo]o&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;Two too&lt;/span&gt;&lt;/b&gt;.&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo Two too twoo. | grep -i t[wo]o&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;Two too two&lt;/span&gt;&lt;/b&gt;o.&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo Two too twoo towo. | grep -i t[wo]o&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;Two too two&lt;/span&gt;&lt;/b&gt;o towo.&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;↑一致する部分を赤く表示&lt;/div&gt;
&lt;div&gt;[abc] は a, b, c のどれか1文字に一致する。&lt;/div&gt;
&lt;div&gt;つまり t[wo]o は&lt;code style=&quot;--en-code: true&quot;&gt;t で始まり、その次に o か w の文字がきて、次に o がくる&lt;/code&gt; ということ。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;※ macOS(zsh) では再現されず。Ubuntu で実行しました。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;数値との一致&lt;/h3&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo 123 hi 34 hello. | grep [[:digit:]]&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;123&lt;/span&gt;&lt;/b&gt; hi &lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;34&lt;/span&gt;&lt;/b&gt; hello.&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo 123 hi 34 hello. | grep -o [[:digit:]]&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;1&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;2&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;3&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;3&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;4&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;繰り返し&lt;/h3&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo tw two twoo twooo not too. | grep two*&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;tw two twoo twooo&lt;/span&gt;&lt;/b&gt; not too.&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;「直前のパターンが0回以上一致」&lt;/div&gt;
&lt;div&gt;two* であれば &lt;code style=&quot;--en-code: true&quot;&gt;tw という文字のあとに0回以上のoが続く文字列に一致する&lt;/code&gt; ということ。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo _hello_there | grep -o _.*_&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;_hello_&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;ピリオド(.)は、どんな文字にも一致する。&lt;/div&gt;
&lt;div&gt;アスタリスク(*)と組み合わせることで、どんな文字列にも一致する。&lt;/div&gt;
&lt;div&gt;このアスタリスクは&lt;b&gt;貪欲なので&lt;/b&gt;、できるだけ長い文字列に一致する。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo _hi_bye_hi_there | grep -o _.*_&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;_hi_bye_hi_&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;エスケープ&lt;/h3&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo I love $ | grep $&lt;/div&gt;
&lt;div&gt;I love $&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;$ echo I love $ | grep \\$&lt;/div&gt;
&lt;div&gt;I love &lt;b&gt;&lt;span style=&quot;color:rgb(252, 18, 51);&quot;&gt;$&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;特殊な文字をエスケープして本来の文字に一致させたい場合、文字の前にバックスラッシュ(\)をつける。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h1&gt;&lt;a href=&quot;http://g-network.boo.jp/wiki/2018/02/post-879/&quot; rev=&quot;en_rl_none&quot;&gt;シェルスクリプト練習問題（入門編）&lt;/a&gt;について&lt;/h1&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;後日やる&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1&gt;&lt;a href=&quot;http://g-network.boo.jp/wiki/2018/02/post-909/&quot;&gt;シェルスクリプト練習問題（中級編）&lt;/a&gt;について&lt;/h1&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;MEMO&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.one-tab.com/page/5ymg3YMESzGyShTP4RwR0Q&quot;&gt;one-tab&lt;/a&gt;&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://suwa3.postach.io/feed.xml">
    <title type="text">Kubernetes Middle Way</title>
    <id>https://suwa3.postach.io/post/kubernetes-middle-way</id>
    <updated>2021-01-28T00:46:44.788000Z</updated>
    <published>2021-01-24T10:27:18Z</published>
    <link href="https://suwa3.postach.io/post/kubernetes-middle-way" />
    <author>
      <name>suwa3</name>
    </author>
    <category term="kubernetes" />
    <category term="tech" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src=&quot;https://cdn-images.postach.io/6da2d587-f03e-27e9-338a-ce1d1c408ea8/a16d2d29-7911-b766-48e4-97408abebbe9/eb260450-2ec4-4c73-a375-f787f02e5104.png&quot;  style=&quot;--en-naturalWidth:800; --en-naturalHeight:535;&quot; width=&quot;504px&quot;/&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;Kubernetes Middle Way の最終セッションの内容が良さげだったのでまとめました！&lt;/div&gt;
&lt;div style=&quot;--en-richlink:true; --en-href:https://www.youtube.com/watch?v=KmM16GHwies&amp;feature=youtu.be; --en-viewerProps:{&quot;videoId&quot;:&quot;KmM16GHwies&quot;};&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=KmM16GHwies&amp;feature=youtu.be&quot; rev=&quot;en_rl_small&quot;&gt;https://www.youtube.com/watch?v=KmM16GHwies&amp;feature=youtu.be&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://speakerdeck.com/hhiroshell/kubernetes-network-fundamentals-69d5c596-4b7d-43c0-aac8-8b0e5a633fc2&quot; rev=&quot;en_rl_none&quot;&gt;スライド資料&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;整理しながら理解する、Kubernetesのネットワークの仕組み by &lt;a href=&quot;https://twitter.com/hhiroshell&quot; rev=&quot;en_rl_none&quot;&gt;@hhiroshell&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;1. イントロダクション&lt;/h3&gt;&lt;div&gt;Kubernetes のネットワークはいろいろな用語が出てきて把握が難しい&lt;/div&gt;
&lt;div&gt;このセッションのゴール&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Kubernetes のネットワークの全体像を理解する&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;様々な構成要素の役割と関係性を整理して把握&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;ネットワーク周りのドキュメントの言っていることがわかる&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;2. Kubernetes のネットワークのアーキテクチャ&lt;/h3&gt;&lt;div&gt;全体を4つに分けて考えてみる&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;Node Network&lt;/div&gt;
&lt;div&gt;インフラによって実態は異なる&lt;/div&gt;
&lt;div&gt;ベアメタルなど。&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;なんだろう&lt;/span&gt;&lt;a href=&quot;https://baremetal.jp/blog/2017/05/15/272/&quot; rev=&quot;en_rl_none&quot;&gt;&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;&lt;u&gt;ベアメタル&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;って・・🤔🐻くま？&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Pod Network / Cluster Network&lt;/div&gt;
&lt;div&gt;Node Network 上にソフトウェア的に構成される論理ネットワーク&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;要件がいろいろとあるらしい&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;クラスター内の全 Pod が、互いのIPアドレスで&lt;a href=&quot;https://www.infraexpert.com/study/ip10.html&quot; rev=&quot;en_rl_none&quot;&gt;NAT&lt;/a&gt;なしで変換できるなど&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;kubelet と CNI プラグイン&lt;/div&gt;
&lt;div&gt;Pod を Cluster 内のネットワークに参加させる&lt;/div&gt;
&lt;div&gt;kubelet が Pod を起動するときに CNI プラグインを実行することで上記を行っている&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Service Network&lt;/div&gt;
&lt;div&gt;Pod に対する通信において、名前解決・ロードバランシング・サービスディスカバリなどの機能を提供する&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;3. Cluster Network&lt;/h3&gt;&lt;div&gt;公式ドキュメントでは&quot;Cluster Networking&quot;。自力構築する場合は Flannel, Calico などを使う&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;Flannel って？&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://kubernetes.io/ja/docs/concepts/cluster-administration/networking/#flannel&quot; rev=&quot;en_rl_none&quot;&gt;https://kubernetes.io/ja/docs/concepts/cluster-administration/networking/#flannel&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;--en-highlight:blue;background-color: #adecf4;&quot;&gt;’’ Flannel is a very simple overlay network that satisfies the Kubernetes requirements. Many people have reported success with Flannel and Kubernetes. (Flannelは、Kubernetesの要件を満たす非常にシンプルなオーバーレイネットワークです。多くの人がFlannelとKubernetesで成功したと報告しています。)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;ほえー！&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;Linux Bridge と VXLAN によるカプセル化を組み合わせて、Node をまたぐ通信を抽象化&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;VXLAN によるカプセル化とは: Flannel のデーモンプロセスによって、宛先の Pod が起動している Node 宛てとなるようにヘッダを追加する→&lt;a href=&quot;https://speakerdeck.com/hhiroshell/kubernetes-network-fundamentals-69d5c596-4b7d-43c0-aac8-8b0e5a633fc2?slide=20&quot; rev=&quot;en_rl_none&quot;&gt;&lt;u&gt;スライドp20〜24の図&lt;/u&gt;&lt;/a&gt;&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;が分かりやすかった！✨192.168.2.2を、192.168.254.12が包んでいる(カプセル化している)。&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color:rgb(140, 140, 140);&quot;&gt;  &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color:rgb(51, 51, 51);&quot;&gt;【参考】&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;シナリオ: Linux Bridge を使った基本構成&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://docs.openstack.org/liberty/ja/networking-guide/scenario-classic-lb.html&quot; rev=&quot;en_rl_none&quot;&gt;https://docs.openstack.org/liberty/ja/networking-guide/scenario-classic-lb.html&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;project-calico&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://kubernetes.io/ja/docs/concepts/cluster-administration/networking/#project-calico&quot; rev=&quot;en_rl_none&quot;&gt;https://kubernetes.io/ja/docs/concepts/cluster-administration/networking/#project-calico&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;--en-highlight:blue;background-color: #adecf4;&quot;&gt;’’ Project Calico is an open source container networking provider and network policy engine. (Project Calicoは、オープンソースのコンテナネットワーキングプロバイダーおよびネットワークポリシーエンジンです。)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;4. kubelet と CNI プラグイン&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;kubelet&lt;/div&gt;
&lt;div&gt;Pod を起動/停止する処理&lt;/div&gt;
&lt;div&gt;CNI プラグインを実行する&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;CNI プラグイン&lt;/div&gt;
&lt;div&gt;Container Network Interface (CNI) 要件を満たす実装&lt;/div&gt;
&lt;div&gt;Pod をネットワークに参加させるのに必要な処理を実行 (kubeletからそれを呼び出す)&lt;/div&gt;
&lt;div&gt;flannel であれば flannel plugin&lt;/div&gt;
&lt;div&gt;NIC に IPアドレスを割り当てる&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;5. Service Network&lt;/h3&gt;&lt;div&gt;Service リソースによって以下のことが起きる&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Service に対応するIPアドレスの払い出し&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Service の IPアドレスに対して、ホスト名の割り当て＆クラスター内に DNSレコードが登録される&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Service に対するアクセスが Pods に対してロード・バランスされる&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;配送先の追加、除外が自動的に行われる&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;内部では&lt;/div&gt;
&lt;div&gt;kube-proxy が Service (API サーバーにある)を見る→ Service の記述内容に合わせて Node 上の iptables を更新する&lt;/div&gt;
&lt;div&gt;※ Proxy mode には v1.1 までのデフォルトである userspace プロキシモード、v1.2+ のデフォルトである iptables プロキシモード、ipvs プロキシモードなどがある。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;[Servce].[Namespace].svc.cluster.local.&lt;/div&gt;
&lt;div&gt;.svc.cluster.local. 部分は省略可能だが、パフォーマンスの観点では完全修飾名を指定するのが良いとのこと。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;&lt;b&gt;クラスター外からの通信の受け入れ&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;Service&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Type: NodePort&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Type: LoadBalancer&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Ingress&lt;/div&gt;
&lt;div&gt;↑このあたりは検証で&lt;b&gt;構築したの出来てる？&lt;/b&gt;って見るときに使ったぞい\\٩( 'ω' )و //&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;🌼 所感 🌼&lt;/h3&gt;&lt;div&gt;用語と全体の動きをザックリと把握するのに良い資料だなぁと思いました。&lt;/div&gt;
&lt;div&gt;Flannel や、内部の VXLAN によるカプセル化について図で納得できたのは収穫でした！&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://suwa3.postach.io/feed.xml">
    <title type="text">purpose of the week</title>
    <id>https://suwa3.postach.io/post/purpose-of-the-week</id>
    <updated>2021-01-24T11:47:28.504000Z</updated>
    <published>2021-01-22T05:23:52Z</published>
    <link href="https://suwa3.postach.io/post/purpose-of-the-week" />
    <author>
      <name>suwa3</name>
    </author>
    <category term="purpose" />
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src=&quot;https://cdn-images.postach.io/6da2d587-f03e-27e9-338a-ce1d1c408ea8/7f2e89fe-98d6-34f2-b689-ec9659bf25a0/e00419f5-1919-27eb-fb44-26f093727126.png&quot;  style=&quot;--en-naturalWidth:900; --en-naturalHeight:600;&quot; width=&quot;495px&quot;/&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;タイトルが英語なのは、Markdown化 (Hugoへ移植) するときスムーズにするためです。。&lt;/div&gt;
&lt;div&gt;画像がうさぎなのは、単純にうさぎが好きだから＆まだまだ出来なくても成長するぞ！の心意気です。成長を実感したら、もう少し大人なうさぎにするかも。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h2&gt;体力づくり&lt;/h2&gt;&lt;div&gt;体力づくりは習慣化まあまあ出来ていて&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;毎日お風呂後にストレッチ&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;週に5回くらいストレッチ後に筋トレ(腹筋＆背筋それぞれ50回ずつ)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;週2〜3回の朝ランキング&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;↑これが、来月まで続けば御の字かなぁ。&lt;/div&gt;
&lt;div&gt;続けられなくても、代替策を考えればOKの気持ちで💪&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;学習面は、&lt;b&gt;書かないとやらないな？&lt;/b&gt;と思ったので書きます。&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;技術&lt;/h2&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Kubernetes Middle Way&lt;/div&gt;
&lt;div&gt;勉強会の内容、発表動画と資料を参考にまとめる&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=KmM16GHwies&amp;feature=youtu.be&quot; rev=&quot;en_rl_none&quot;&gt;youtube発表動画&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://speakerdeck.com/hhiroshell/kubernetes-network-fundamentals-69d5c596-4b7d-43c0-aac8-8b0e5a633fc2&quot; rev=&quot;en_rl_none&quot;&gt;スライド資料&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;shell script&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://g-network.boo.jp/wiki/2018/02/post-909/&quot; rev=&quot;en_rl_none&quot;&gt;シェルスクリプト練習問題（中級編） | ゆるっとエンジニアブログ&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;独学プログラマー(Part3)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;SQL&lt;/div&gt;
&lt;div&gt;独学プログラマー(Part4)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Python&lt;/div&gt;
&lt;div&gt;独学プログラマー(Part1,2)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;それぞれ完了したらアウトプットするぞい。&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;語学&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;TEDシャドーイング&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=RKK7wGAYP6k&quot; rev=&quot;en_rl_none&quot;&gt;How language shapes the way we think | Lera Boroditsky&lt;/a&gt; (youtube)&lt;/div&gt;
&lt;div&gt;言語の違いが考え方にどう影響するのか具体例をもとに紹介されている。おもしろい〜&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Linux Today 翻訳&lt;/div&gt;
&lt;div&gt;ラズパイの新作にテンアゲしたので。&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;https://www.linuxtoday.com/it_management/raspberry-foundation-release-their-own-silicon-the-raspberry-pi-pico-210121015006.html&quot; rev=&quot;en_rl_none&quot;&gt;Raspberry Foundation Release Their Own Silicon, the Raspberry Pi Pico&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry xml:base="http://suwa3.postach.io/feed.xml">
    <title type="text">Evernote blog</title>
    <id>https://suwa3.postach.io/post/evernotedeblog</id>
    <updated>2021-01-24T12:02:57.023000Z</updated>
    <published>2021-01-19T12:04:30Z</published>
    <link href="https://suwa3.postach.io/post/evernotedeblog" />
    <author>
      <name>suwa3</name>
    </author>
    <category term="tech" />
    <content type="html">&lt;div&gt;&lt;b&gt;&lt;span style=&quot;--en-markholder:true;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;img src=&quot;https://cdn-images.postach.io/6da2d587-f03e-27e9-338a-ce1d1c408ea8/5a7d7137-6fb5-7a26-61c1-93ced677a7d9/d3548445-fa16-134b-a664-e91cd06f1c1d.png&quot;  style=&quot;--en-naturalWidth:256; --en-naturalHeight:256;&quot;/&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;今日から試験的にEvernoteでblogを書いてみたいと思います。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;今までHugo+Netlifyで3ヶ月ほどblogを運用していましたが、&lt;a href=&quot;https://postach.io/&quot; rev=&quot;en_rl_none&quot;&gt;Postach.io&lt;/a&gt; というEvernoteのノートブックをそのままブログにできるサービスがあることを知って、思うところもあり乗り換えてみようと考えました。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h2&gt;&lt;span style=&quot;color:rgb(24, 168, 65);&quot;&gt;✾ Hugo+Netlify から Evernote+Postach.io へ乗り換えようと考えた理由&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;1) HugoはThemeカスタマイズが手間&lt;/h3&gt;&lt;div style=&quot;padding-left:40px;&quot;&gt;GitHub上などで公開されているThemeを読み込んで簡単に変更できますが、それらをカスタマイズするにはリポジトリをフォークして、cssファイルなどを上書きする必要があります。(ちょっと面倒くさい)&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;2) git管理が煩わしい&lt;/h3&gt;&lt;div style=&quot;padding-left:40px;&quot;&gt;静的サイトジェネレーターは更新の度にgit pushするのが手間なうえ、書き直したエモい差分がGitHub上で公開されてしまうなどの問題があります。(これはプライベートリポジトリで管理してしまえば解決します。)&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;3) Markdownでは細やかな色付けが難しい&lt;/h3&gt;&lt;div style=&quot;padding-left:40px;&quot;&gt;カスタマイズすることで不可能ではないですが、基本的にモノクロで少しさびしいです。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;4) WYSIWYGエディタマイブームが来ている&lt;/h3&gt;&lt;div style=&quot;padding-left:40px;&quot;&gt;GitHub上でオープンソースのWYSIWYGエディタを探したり、「編集作業とは」について考えることが増えたり、人生で初のWYSIWYGブームが到来中です。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;h3&gt;5) Evernote to Markdown のGitHubリポジトリを見つけた&lt;/h3&gt;&lt;div style=&quot;padding-left:40px;&quot;&gt;*.enex形式でエクスポートされたEvernoteを、Markdownファイルに変換するCLIツールを見つけました。いつでもHugoに戻ってこれるね♪&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;&lt;hr /&gt;&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;Wordpress to Markdownの際も画像の移行で詰まったけれど、たぶんEvernote to Markdownも画像なり日本語のファイル名なりでエラーしそうな予感がしています。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;Wordpress on EC2 から Hugo+Netlify に乗り換えてから、すっかりblogの更新が減ってしまった。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;正直、Hugoを触っていて一番テンションが上がった瞬間って、Wordpress からエクスポートしてきた記事をCLIツールでMarkdownに変換して、それをHugoで問題なく表示できた瞬間がピークでした。&lt;/div&gt;
&lt;div&gt;  &lt;/div&gt;
&lt;div&gt;&lt;b&gt;更新するために、わたしにとって大事なのは書いていてテンションがあがるツールなのでは？&lt;/b&gt;という思いがフツフツと湧いてきたのが大きかったです。&lt;/div&gt;
&lt;div&gt;    &lt;/div&gt;
&lt;div&gt;乗り換える決め手となったのが &lt;code style=&quot;--en-code: true&quot;&gt;Evernote to Markdown のGitHubリポジトリを見つけた&lt;/code&gt; なので、&lt;b&gt;まぁいずれHugoかGit管理でのBlogに戻るでしょう&lt;/b&gt;というツンデレ記事な部分はあります。Blog書くだけで草生えるしね。&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;p.s.&lt;/div&gt;&lt;table width=&quot;376px&quot; style=&quot;width:376px;border-collapse:collapse;&quot;&gt;&lt;colgroup&gt;&lt;col style=&quot;width: 376px;&quot; /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;background-color:rgb(205, 237, 216);color:#333;border-color:hsl(140.60000000000002, 47.1%, 69.3%);border-width:1px;border-style:solid;padding:10px;&quot;&gt;&lt;div&gt;個人的にHugoのThemeで &lt;a href=&quot;https://themes.gohugo.io/theme/github-style/&quot; rev=&quot;en_rl_none&quot;&gt;Github-Style&lt;/a&gt; というのが可愛くて良いなぁと思ったのだけれども、Themeのリポジトリが維持管理されている前提があってこそであって、バグ修正のしやすさを考えると手の込んだThemeは敬遠してしまう〜&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr /&gt;&lt;div&gt;&lt;b&gt;MEMO&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;救済措置用&lt;/div&gt;
&lt;div&gt;・Evernote to Markdown&lt;/div&gt;
&lt;div&gt;https://n350071.com/release-enex-to-markdown/&lt;/div&gt;
&lt;div&gt;https://github.com/wormi4ok/evernote2md&lt;/div&gt;
&lt;div&gt;https://github.com/n350071/enex-to-markdown&lt;/div&gt;
</content>
  </entry>
  <entry xml:base="http://suwa3.postach.io/feed.xml">
    <title type="text">test①</title>
    <id>https://suwa3.postach.io/post/test</id>
    <updated>2021-01-17T12:37:36.275000Z</updated>
    <published>2021-01-17T12:35:02Z</published>
    <link href="https://suwa3.postach.io/post/test" />
    <author>
      <name>suwa3</name>
    </author>
    <content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
</content>
  </entry>
</feed>
