<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-313560639897292065</id><updated>2024-11-08T23:38:52.085+08:00</updated><category term="拍拍拍"/><category term="電腦相關技巧"/><category term="攝影相關資料"/><category term="Linux"/><category term="心內的畫"/><category term="ionic2"/><category term="美食"/><category term="firebase"/><category term="旅行中的回憶"/><category term="Proxmox"/><category term="Dspace"/><category term="旅行的相關資料"/><category term="FreeNAS"/><category term="求婚"/><category term="angularfire2"/><category term="apache"/><category term="k8s"/><category term="一些有的沒有的文章"/><category term="理財的概念"/><category term="CEPH"/><category term="Vmware"/><category term="ZFS"/><category term="angularjs2"/><category term="cisco"/><category term="nginx"/><category term="圖資相關"/><category term="最近想買啥？"/><category term="研究生之路"/><category term="網管"/><category term="Drupal"/><category term="ESXI"/><category term="GCE"/><category term="OJS"/><category term="SSD"/><category term="Tomcat6"/><category term="android"/><category term="cordova"/><category term="debian"/><category term="我在看啥書呢？"/><category term="碩士論文"/><category term="電影"/><category term="FortiGate"/><category term="Galera"/><category term="JSP"/><category term="LACP"/><category term="LSI"/><category term="MariaDB.Cluster"/><category term="Mikrotik"/><category term="Mysql"/><category term="NFS"/><category term="NRPE"/><category term="Nagios"/><category term="NetApp"/><category term="Nfdump"/><category term="Nfsen"/><category term="Observium"/><category term="OpenWRT"/><category term="PostgresSql"/><category term="Raspberry Pi"/><category term="Win2008server"/><category term="admob"/><category term="admob free"/><category term="ansible"/><category term="cordova plugin"/><category term="firebase storage"/><category term="google drive"/><category term="ionic"/><category term="ionic4"/><category term="kvm"/><category term="ldap"/><category term="nat"/><category term="ntur"/><category term="open vpn"/><category term="openvswitch"/><category term="oracle"/><category term="php"/><category term="rclone"/><category term="router"/><category term="rsync"/><category term="rsyslog"/><category term="script"/><category term="sendgrid"/><category term="snorby"/><category term="tomato"/><category term="ubuntu"/><category term="virtual san"/><category term="vlan"/><category term="vsan"/><category term="zabbix"/><category term="外接盒"/><category term="技術裝備"/><category term="繩索"/><title type='text'>kiko的閒聊</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>200</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-216951300104303860</id><published>2023-09-20T11:03:00.002+08:00</published><updated>2023-09-20T11:03:26.016+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="k8s"/><category scheme="http://www.blogger.com/atom/ns#" term="Proxmox"/><title type='text'>在 proxmox 下裝 k8s 經常不定時重啟</title><content type='html'>&lt;p&gt;找了很多方式，都無法解決，以下的方式目前穩定很多：&lt;/p&gt;&lt;p&gt;根據參考資料，使用N5105很容易有這樣的問題，剛好現在主力是用N5105，所以就參照做法，主要就是裝 microcode。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;https://cyrusyip.org/en/post/2023/01/31/install-microcode-on-proxmox/&lt;/li&gt;&lt;li&gt;https://www.barhe.org/archives/1247&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/216951300104303860/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2023/09/proxmox-k8s.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/216951300104303860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/216951300104303860'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2023/09/proxmox-k8s.html' title='在 proxmox 下裝 k8s 經常不定時重啟'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-6510188514840301533</id><published>2023-08-24T23:27:00.005+08:00</published><updated>2023-08-24T23:27:31.197+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Proxmox"/><title type='text'>prxmox linux and win19 trim space</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div&gt;如果空間已清掉，但卻顯示一直被暫用，那就得另外手動下指令去清空。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在 proxmox 中的硬碟要設定 discard，然後進到要清空間的VM裡頭&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;linux&lt;/li&gt;&lt;ul&gt;&lt;li&gt;sudo fstrim -a&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;win10&lt;/li&gt;&lt;ul&gt;&lt;li&gt;WIN得下載一個檔案SDelete：https://learn.microsoft.com/zh-tw/sysinternals/downloads/sdelete&lt;/li&gt;&lt;li&gt;開啟系統管理模式的CMD&lt;/li&gt;&lt;ul&gt;&lt;li&gt;sdelete64.exe -z C:&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/6510188514840301533/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2023/08/prxmox-linux-and-win19-trim-space.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6510188514840301533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6510188514840301533'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2023/08/prxmox-linux-and-win19-trim-space.html' title='prxmox linux and win19 trim space'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-551319306327797298</id><published>2023-03-07T17:49:00.002+08:00</published><updated>2023-03-10T09:33:24.262+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google drive"/><category scheme="http://www.blogger.com/atom/ns#" term="k8s"/><category scheme="http://www.blogger.com/atom/ns#" term="rclone"/><title type='text'>k8s rclone use google cloud service account sync file to google drive folder</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div&gt;*補充說明，這個方式可能我的操作沒有對，同步資料時，同樣的目錄或檔案不會蓋掉！！會重覆，目前一直找不到解法，所以暫時不再使用這個方式。&lt;/div&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;使用 &lt;a href=&quot;https://hub.docker.com/r/romancin/rclonebrowser/dockerfile&quot; target=&quot;_blank&quot;&gt;romancin/rclonebrowser&lt;/a&gt; 這個 image 跑在k8s上，其中要同步的目錄記得要先 mount 起來。&lt;/li&gt;&lt;li&gt;申請 google cloud 的 service account&lt;/li&gt;&lt;ul&gt;&lt;li&gt;啟用 google drive api&lt;/li&gt;&lt;li&gt;點選 google drive api，點選憑證，建立憑證，服務帳戶&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEje9FFXfm8iIAYWTTfuJNE-OnP3_JHuxOvXVhphum0wP1vL4KP5y75jJcwlACxjIcJpBfHa5_csqyDgLig85CKHfehUW8VY32Qi5NL8h30zYryOXMMzFS7I1suAZsAczDIj8ltP59z4Wv3ypOOA081bJymZeNmVH0-DeI5FmSyvxv-N0o5PHUjm4qrDiw&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1316&quot; data-original-width=&quot;3818&quot; height=&quot;110&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEje9FFXfm8iIAYWTTfuJNE-OnP3_JHuxOvXVhphum0wP1vL4KP5y75jJcwlACxjIcJpBfHa5_csqyDgLig85CKHfehUW8VY32Qi5NL8h30zYryOXMMzFS7I1suAZsAczDIj8ltP59z4Wv3ypOOA081bJymZeNmVH0-DeI5FmSyvxv-N0o5PHUjm4qrDiw&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;把生成的那個 service account email 加到要分享的 google driver&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;進到 rclone-webgui 中設定 config&lt;/li&gt;&lt;ul&gt;&lt;li&gt;選 advance 輸入，其中 root_folder_id，就是準備寫入的 google drive 目錄，瀏覽器到那個目錄就會看到&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhY8As77aB6pF4MDED59-y1muMg62TVK_H9HoBfwCZcvwYHT5yVuOgYTCM_k4qDMJj-AdXh6hei14Vi-RVzvegMJ38Q9yqWz1fdQvl-sVnzqiudhQdqtDTULV5n5DIJVcrNlN2ZCgem3r2aqtaqFkRwPNTCyqUE84Qv8lTKvpwig3V5P320f-DrflQGAA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;74&quot; data-original-width=&quot;1136&quot; height=&quot;21&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhY8As77aB6pF4MDED59-y1muMg62TVK_H9HoBfwCZcvwYHT5yVuOgYTCM_k4qDMJj-AdXh6hei14Vi-RVzvegMJ38Q9yqWz1fdQvl-sVnzqiudhQdqtDTULV5n5DIJVcrNlN2ZCgem3r2aqtaqFkRwPNTCyqUE84Qv8lTKvpwig3V5P320f-DrflQGAA&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;記的有 shared with me 的選像都輸入 true&lt;/li&gt;&lt;li&gt;Configure this as a team drive?&lt;br /&gt;選 Y&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;參考資料：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;https://github.com/romancin/rclonebrowser-docker&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/551319306327797298/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2023/03/k8s-rclone-use-google-cloud-service.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/551319306327797298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/551319306327797298'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2023/03/k8s-rclone-use-google-cloud-service.html' title='k8s rclone use google cloud service account sync file to google drive folder'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEje9FFXfm8iIAYWTTfuJNE-OnP3_JHuxOvXVhphum0wP1vL4KP5y75jJcwlACxjIcJpBfHa5_csqyDgLig85CKHfehUW8VY32Qi5NL8h30zYryOXMMzFS7I1suAZsAczDIj8ltP59z4Wv3ypOOA081bJymZeNmVH0-DeI5FmSyvxv-N0o5PHUjm4qrDiw=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-6661867017984330126</id><published>2022-08-19T11:08:00.001+08:00</published><updated>2022-08-19T11:28:44.179+08:00</updated><title type='text'>proxmox 增加 CPU 溫度偵測</title><content type='html'>&lt;p&gt;&amp;nbsp;找了一些網路上的修改，有個地方有錯，簡單說明如下：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;apt install lm-sensors&lt;/li&gt;&lt;li&gt;sensors-detect&lt;br /&gt;都選預設就好&lt;/li&gt;&lt;li&gt;sensors&lt;br /&gt;測試是否可以看到CPU溫度&lt;/li&gt;&lt;li&gt;cp /usr/share/perl5/PVE/API2/Nodes.pm /usr/share/perl5/PVE/API2/Nodes.pm.bak&lt;/li&gt;&lt;li&gt;cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak&lt;/li&gt;&lt;li&gt;nano /usr/share/perl5/PVE/API2/Nodes.pm&lt;/li&gt;&lt;ul&gt;&lt;li&gt;找尋：PVE::pvecfg::version_text();&lt;/li&gt;&lt;li&gt;在其後一行寫入：&lt;/li&gt;&lt;li&gt;$res-&amp;gt;{thermalstate} = `sensors`; #增加溫度偵測&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;nano /usr/share/pve-manager/js/pvemanagerlib.js&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;strike&gt;找尋 Ext.create(&lt;span class=&quot;s2&quot; style=&quot;color: #c814c9; font-family: Monaco; font-size: 13px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&#39;Ext.window.Window&#39;&lt;/span&gt;&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;&lt;strike&gt;在其下的 height 原本 400，修改成 420&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;找尋 alias: &lt;span class=&quot;s2&quot; style=&quot;color: #c814c9; font-family: Monaco; font-size: 13px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&#39;widget.pveNodeStatus&#39;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;在其下的 height 原本 300，修改成 320&lt;/li&gt;&lt;li&gt;找尋 textField: &lt;span class=&quot;s2&quot; style=&quot;color: #c814c9; font-family: Monaco; font-size: 13px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&#39;pveversion&#39;&lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;color: #f2f2f2; font-family: Monaco; font-size: 13px; font-variant-ligatures: no-common-ligatures;&quot;&gt;,&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;並在&amp;nbsp; textField: &#39;pveversion&#39;,&amp;nbsp;&amp;nbsp; &amp;nbsp; value: &#39;&#39;},&lt;br /&gt;其下一行加入&lt;br /&gt;&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji285pc-p64DsS200bdB4eknz29LMtyeRu0et-21Gpggzg99sq6tKE-nashVyRhaVMGRYZRwL65fjtYYbHiQcDmSQuqhCOIIkpCU-SLRRfrRDYC_Ge9az5_ynpOXUd4ml7K6pJbqppbzcL/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt;      {  
            itemId: &#39;thermal&#39;,  
            colspan: 2,  
            printBar: false,  
            title: gettext(&#39;CPU Thermal State&#39;),  
            textField: &#39;thermalstate&#39;,  
            renderer:function(value){  
                 const c0 = value.match(/Core 0.*?\+([\d\.]+)Â/)[1];  
                 const c1 = value.match(/Core 1.*?\+([\d\.]+)Â/)[1];  
                 const c2 = value.match(/Core 2.*?\+([\d\.]+)Â/)[1];  
                 const c3 = value.match(/Core 3.*?\+([\d\.]+)Â/)[1];  
                 return `Core 0: ${c0} ℃ | Core 1: ${c1} ℃ | Core 2: ${c2} ℃ | Core 3: ${c3} ℃`  
            }  
      }  
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;systemctl restart pveproxy&lt;/li&gt;&lt;li&gt;每一個node都要改&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/6661867017984330126/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/08/proxmox-cpu.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6661867017984330126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6661867017984330126'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/08/proxmox-cpu.html' title='proxmox 增加 CPU 溫度偵測'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-2560957118025269980</id><published>2022-05-06T14:22:00.004+08:00</published><updated>2022-05-06T14:23:31.482+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="k8s"/><title type='text'>k8s wordpress 的需求應該開多少呢？</title><content type='html'>&lt;p&gt;&amp;nbsp;原先測試時，使用的教學對於 request是如下：&lt;/p&gt;&lt;div style=&quot;background-color: #1d2225; color: #cdd3de; font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 21px; white-space: pre;&quot;&gt;&lt;div&gt;          &lt;span style=&quot;color: #eb606b;&quot;&gt;resources&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #eb606b;&quot;&gt;limits&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;cpu&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; 2&lt;span style=&quot;color: #99c794;&quot;&gt;00m&lt;/span&gt;&lt;/div&gt;&lt;div&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;memory&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; 200&lt;span style=&quot;color: #99c794;&quot;&gt;Mi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #eb606b;&quot;&gt;requests&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;cpu&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #99c794;&quot;&gt;100m&lt;/span&gt;&lt;/div&gt;&lt;div&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;memory&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #99c794;&quot;&gt;200Mi&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;但這個的規格，不裝插件還好，但只要有一些插件，跑起來就特別慢，所以最後調整成：&lt;/p&gt;&lt;div style=&quot;color: #cdd3de; font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 21px; white-space: pre;&quot;&gt;&lt;div style=&quot;background-color: #1d2225;&quot;&gt;          &lt;span style=&quot;color: #eb606b;&quot;&gt;resources&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #1d2225;&quot;&gt;            &lt;span style=&quot;color: #eb606b;&quot;&gt;limits&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #1d2225;&quot;&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;cpu&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #99c794;&quot;&gt;1000m&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #1d2225;&quot;&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;memory&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #99c794;&quot;&gt;512Mi&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #1d2225;&quot;&gt;            &lt;span style=&quot;color: #eb606b;&quot;&gt;requests&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #1d2225;&quot;&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;cpu&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #99c794;&quot;&gt;100m&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #1d2225;&quot;&gt;              &lt;span style=&quot;color: #eb606b;&quot;&gt;memory&lt;/span&gt;&lt;span style=&quot;color: #5fb3b3;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #99c794;&quot;&gt;200Mi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; color: #99c794;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghV_h2M9J_RL2k1ThH0R4Tfl7LS2-MIYIbFyp0_MfoifWFYZZgbJnXNMZHqoyI6hYatUrIdvC5EebyVkEsmTJf6lwBN6b_83dge34qNtqm_daB7vj4haFS1-zOmFoJkKsS3EMf_P2tf1PkCk9juEhtLz4TZZcM6Eod753gitPNXxoDc2OhjJB2ks0DzA/s2258/messageImage_1651818100023.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;612&quot; data-original-width=&quot;2258&quot; height=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghV_h2M9J_RL2k1ThH0R4Tfl7LS2-MIYIbFyp0_MfoifWFYZZgbJnXNMZHqoyI6hYatUrIdvC5EebyVkEsmTJf6lwBN6b_83dge34qNtqm_daB7vj4haFS1-zOmFoJkKsS3EMf_P2tf1PkCk9juEhtLz4TZZcM6Eod753gitPNXxoDc2OhjJB2ks0DzA/w471-h128/messageImage_1651818100023.jpeg&quot; width=&quot;471&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/2560957118025269980/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/05/k8s-wordpress.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2560957118025269980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2560957118025269980'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/05/k8s-wordpress.html' title='k8s wordpress 的需求應該開多少呢？'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghV_h2M9J_RL2k1ThH0R4Tfl7LS2-MIYIbFyp0_MfoifWFYZZgbJnXNMZHqoyI6hYatUrIdvC5EebyVkEsmTJf6lwBN6b_83dge34qNtqm_daB7vj4haFS1-zOmFoJkKsS3EMf_P2tf1PkCk9juEhtLz4TZZcM6Eod753gitPNXxoDc2OhjJB2ks0DzA/s72-w471-h128-c/messageImage_1651818100023.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-7208315208598129137</id><published>2022-05-01T19:16:00.001+08:00</published><updated>2022-05-01T19:16:49.694+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Proxmox"/><title type='text'>Proxmox DRBD9 雙機用肚子內的硬碟達到熱備援</title><content type='html'>有以下幾點要注意：&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Proxmox 4：https://pve.proxmox.com/wiki/DRBD9&lt;/li&gt;
&lt;li&gt;如果沒花錢訂閱Promox，記得要修改Proxmox的程式庫：https://pve.proxmox.com/wiki/Package_repositories&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use&lt;/li&gt;
&lt;li&gt;deb http://download.proxmox.com/debian jessie pve-no-subscription&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;VM的硬碟要選raw&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;h2 style=&quot;background: none rgb(255, 255, 255); border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19.2px; font-weight: normal; line-height: 19.2px; margin: 0px 0px 0.6em; overflow: hidden; padding-bottom: 0.17em; padding-top: 0.5em; width: auto;&quot;&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;Create_the_first_VM_on_DRBD_for_testing_and_live_migration&quot;&gt;Create the first VM on DRBD for testing and live migration&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 12.8px; line-height: 19.2px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
On the GUI you can see the DRBD storage and you can use it for as virtual disk storage.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 12.8px; line-height: 19.2px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
&lt;b&gt;NOTE:&lt;/b&gt;&amp;nbsp;DRBD supports only raw disk format at the moment.&lt;/div&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 12.8px; line-height: 19.2px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
Try to live migrate the VM - as all data is available on both nodes it will take just a few seconds. The overall process might take a bit longer if the VM is under load and if there is a lot of RAM involved. But in any case, the downtime is minimal and you will see no interruption at all.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12.8px; line-height: 19.2px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/7208315208598129137/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2016/01/proxmox-drbd9.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7208315208598129137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7208315208598129137'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2016/01/proxmox-drbd9.html' title='Proxmox DRBD9 雙機用肚子內的硬碟達到熱備援'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-8809769633498332224</id><published>2022-05-01T18:49:00.003+08:00</published><updated>2022-05-01T18:49:27.322+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Proxmox"/><title type='text'>巢狀 Proxmox Cluster異常的處理</title><content type='html'>&lt;p&gt;因為單一一台主機，所以透過巢狀proxmox建叢集時，在機器重開時，會發生叢集在一開始跑，檢查有主機不見的問題，導致想要手動啟動巢狀PVE的VM時出現『&lt;span style=&quot;background-color: #f7f7f9; color: #dd1144; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; text-align: justify; white-space: nowrap;&quot;&gt;TASK ERROR: cluster not ready – no quorum?&lt;/span&gt;』這時可以採取以下幾個動作：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: #f7f7f9; color: #dd1144; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; text-align: justify; white-space: nowrap;&quot;&gt;pvecm expected 1&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: #f7f7f9; color: #dd1144; font-family: Monaco, Menlo, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; text-align: justify; white-space: nowrap;&quot;&gt;service pve-cluster restart&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;這樣就可手動起動巢狀PVE的VM，起動後等一陣子VM完全起來後，叢集會自行恢復&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;參考資料：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;https://blog.pulipuli.info/2014/08/proxmox-ve-fix-proxmox-ve-cluster-not.html&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/8809769633498332224/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/05/proxmox-cluster.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/8809769633498332224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/8809769633498332224'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/05/proxmox-cluster.html' title='巢狀 Proxmox Cluster異常的處理'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-7313408502112743106</id><published>2022-05-01T11:26:00.003+08:00</published><updated>2022-05-01T18:49:42.774+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CEPH"/><category scheme="http://www.blogger.com/atom/ns#" term="Proxmox"/><title type='text'>proxmox 巢狀 proxmox 及IO直通、全盤映射</title><content type='html'>&lt;p&gt;因為只有一台主機，所以為了可以在proxmox建立ceph群組，所以需要讓proxmox巢狀再建一個proxmox在裡面，並直通一個硬碟給裡面那台pve建立ceph，不過瞭解後，發現全盤映射比較快&lt;/p&gt;&lt;p&gt;&lt;b&gt;HOST開啟直通流程&lt;/b&gt;：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;HOST允許 io 直通：&lt;/li&gt;&lt;ul&gt;&lt;li&gt;nano /etc/default/grub&lt;/li&gt;&lt;li&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet &lt;span style=&quot;color: red;&quot;&gt;intel_iommu=on&lt;/span&gt;&quot;&lt;/li&gt;&lt;li&gt;參考資料：&lt;a href=&quot;https://www.10bests.com/dsm-hdd-hibernation-on-pve/&quot;&gt;https://www.10bests.com/dsm-hdd-hibernation-on-pve/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;巢狀 proxmox 相關設定&lt;/b&gt;&lt;br /&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;巢狀pve需將CPU設定為 HOST&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg7FusZ7ZO70VAgjKpyL7s8ZDzcHle9DS3L1i_UZLQn4LSh4EaVm8cb5U7iosy_3X7ozUYqQO03CGUSV8HsZXPwgvMO-yAeO8Vks1Fv0CG2WggaSK_6bIiFP2M3vD3HTmihcRP2fpjCGJny_4GMM8TjtoivvfOLgPBYZwcsK3f7jaBkceCjNnijBGC88w&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;918&quot; data-original-width=&quot;1406&quot; height=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg7FusZ7ZO70VAgjKpyL7s8ZDzcHle9DS3L1i_UZLQn4LSh4EaVm8cb5U7iosy_3X7ozUYqQO03CGUSV8HsZXPwgvMO-yAeO8Vks1Fv0CG2WggaSK_6bIiFP2M3vD3HTmihcRP2fpjCGJny_4GMM8TjtoivvfOLgPBYZwcsK3f7jaBkceCjNnijBGC88w&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;b&gt;巢狀 proxmox 全盤映射&lt;/b&gt;&lt;br /&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;巢狀pve直接映射硬碟&lt;/li&gt;&lt;ul&gt;&lt;li&gt;在HOST找出想要被直通的硬碟：ls /dev/disk/by-id&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjp1Gqg3Os0ZHalDARzPvyUx0bbcJWfAlOkSZMCD3JE8Y1tEIJWY6XBQWT-XfKsr5vYneH1pg1wSJoFAqinwNEJwUFlLp4p5w6yr43NddgyDCO3K9ECq_sBZXRAKb5-5f2aGXxHgcaF0Z-X99bE7divSbf8pgXyqc9-5GIi5hKjC1UOLjxWGhd9qaku-g&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;258&quot; data-original-width=&quot;2194&quot; height=&quot;38&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjp1Gqg3Os0ZHalDARzPvyUx0bbcJWfAlOkSZMCD3JE8Y1tEIJWY6XBQWT-XfKsr5vYneH1pg1wSJoFAqinwNEJwUFlLp4p5w6yr43NddgyDCO3K9ECq_sBZXRAKb5-5f2aGXxHgcaF0Z-X99bE7divSbf8pgXyqc9-5GIi5hKjC1UOLjxWGhd9qaku-g&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;在HOST的shell下指令，置換掉虛擬硬碟成直通的硬碟&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi7NvdtEt_a52k7VOElMtqOM2kS9SKeeqOLpa4PG7doxnMY6Npqg_-f6HG1e2MrhQRsxYuJuzzd0Rfo77VevGJEb7foxEADxmKzJYdzPiBBiVNVEFrOQEIlxS1Ke9g1_ngiUVYxz_dws1PbzjBrXmPvqFKLKCs7Yyn1XyXNN5pc3IypHKpBcbQz4iSiUA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;72&quot; data-original-width=&quot;1600&quot; height=&quot;14&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi7NvdtEt_a52k7VOElMtqOM2kS9SKeeqOLpa4PG7doxnMY6Npqg_-f6HG1e2MrhQRsxYuJuzzd0Rfo77VevGJEb7foxEADxmKzJYdzPiBBiVNVEFrOQEIlxS1Ke9g1_ngiUVYxz_dws1PbzjBrXmPvqFKLKCs7Yyn1XyXNN5pc3IypHKpBcbQz4iSiUA&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg3trTx9iOEyLbG82Tx3UnH5uiwAaSzLMqh2AswlZYLSITO5uoQlsmapTFv-UNtwvi0M4dXU7AKeHYrUF5-7MEdXSGU2Y2DFZz9Z7aG2EfbZZm8xTSQ87XtQ308uXn-XlQFv8BwF0FbVuh_t0Xo1Fo5TwtE0AjMP-S5u1Lim5GUCu_W91yHThredPi-MQ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;906&quot; data-original-width=&quot;1806&quot; height=&quot;161&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg3trTx9iOEyLbG82Tx3UnH5uiwAaSzLMqh2AswlZYLSITO5uoQlsmapTFv-UNtwvi0M4dXU7AKeHYrUF5-7MEdXSGU2Y2DFZz9Z7aG2EfbZZm8xTSQ87XtQ308uXn-XlQFv8BwF0FbVuh_t0Xo1Fo5TwtE0AjMP-S5u1Lim5GUCu_W91yHThredPi-MQ&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;參考資料：&lt;a href=&quot;https://wangxingcs.com/2020/0227/1411/&quot;&gt;https://wangxingcs.com/2020/0227/1411/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/7313408502112743106/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/05/proxmox-proxmox-io.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7313408502112743106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7313408502112743106'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/05/proxmox-proxmox-io.html' title='proxmox 巢狀 proxmox 及IO直通、全盤映射'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEg7FusZ7ZO70VAgjKpyL7s8ZDzcHle9DS3L1i_UZLQn4LSh4EaVm8cb5U7iosy_3X7ozUYqQO03CGUSV8HsZXPwgvMO-yAeO8Vks1Fv0CG2WggaSK_6bIiFP2M3vD3HTmihcRP2fpjCGJny_4GMM8TjtoivvfOLgPBYZwcsK3f7jaBkceCjNnijBGC88w=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-6417402835252123878</id><published>2022-04-13T21:33:00.007+08:00</published><updated>2022-05-01T19:16:10.137+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="k8s"/><category scheme="http://www.blogger.com/atom/ns#" term="NFS"/><title type='text'>k8s學習-NFS</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 id=&quot;%E6%9C%80%E5%BE%8C%E6%94%B9%E6%8E%A1helm%E4%BE%86%E5%B0%8E%E5%85%A5&quot; style=&quot;background-color: white; border: 0px; clear: both; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 1.5rem; line-height: 1.5; margin: 1.71429rem 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;最後改採Helm來導入&lt;/h1&gt;&lt;p style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/deploy/test-pod.yaml&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/deploy/test-pod.yaml&lt;/a&gt;&lt;/p&gt;&lt;h1 id=&quot;%E6%AD%A5%E9%A9%9F&quot; style=&quot;background-color: white; border: 0px; clear: both; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 1.5rem; line-height: 1.5; margin: 1.71429rem 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;步驟&lt;/h1&gt;&lt;ol style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; list-style-image: initial; list-style-position: outside; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;$ helm repo add nfs-subdir-external-provisioner&amp;nbsp;&lt;a href=&quot;https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner&lt;br /&gt;–set nfs.server=x.x.x.x&lt;br /&gt;–set nfs.path=/exported/path&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;在POD需要儲存區的地方則要帶入以下的內容 volumes:&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 0.857143rem; line-height: 2; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;volumes:&lt;/code&gt;&lt;br /&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 0.857143rem; line-height: 2; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;- name: nfs-pvc&lt;/code&gt;&lt;br /&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 0.857143rem; line-height: 2; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;persistentVolumeClaim:&lt;/code&gt;&lt;br /&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 0.857143rem; line-height: 2; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;claimName: nfs-pvc-wordpress-mysql&lt;/code&gt;&lt;/p&gt;&lt;h1 id=&quot;%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99&quot; style=&quot;background-color: white; border: 0px; clear: both; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 1.5rem; line-height: 1.5; margin: 1.71429rem 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;參考資料：&lt;/h1&gt;&lt;ol style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; list-style-image: initial; list-style-position: outside; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://godleon.github.io/blog/Kubernetes/k8s-Config-StorageClass-with-NFS/&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://godleon.github.io/blog/Kubernetes/k8s-Config-StorageClass-with-NFS/&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://ithelp.ithome.com.tw/articles/10249757&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://ithelp.ithome.com.tw/articles/10249757&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://www.hwchiu.com/kubernetes-storage-ii.html&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://www.hwchiu.com/kubernetes-storage-ii.html&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/6417402835252123878/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/04/k8s-nfs.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6417402835252123878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6417402835252123878'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/04/k8s-nfs.html' title='k8s學習-NFS'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-1462847767499696125</id><published>2022-04-13T21:33:00.006+08:00</published><updated>2022-05-01T19:15:56.742+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mikrotik"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenWRT"/><title type='text'>Mikrotik trunk with OpenWRT</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;最近因為想把Server區的網路與家用的無線網路架構進行分離，可以因此想透過Mikrotik的RouterOS當切割兩種不同Vlan的流量，並同時讓不同樓層的OpenWrt AP在串接時，可以允許不同Port導出不同的Vlan。&lt;/span&gt;&lt;/p&gt;&lt;p id=&quot;e96a&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;strong style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Mikrotik&lt;/strong&gt;&lt;/p&gt;&lt;ol style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; list-style-image: initial; list-style-position: outside; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;Vlan介面：針對要開啟Trunk的Port先建立兩個Vlan介面附加於其上&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;增加Vlan橋接&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;將Vlan與Bridge串在一起&lt;/li&gt;&lt;/ol&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1em; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://miro.medium.com/max/1400/1*IDxYwV6ByGSOtNHqcSLYiA.png&quot; style=&quot;border-radius: inherit; border: 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 4px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1em; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://miro.medium.com/max/1400/1*cGbZQ3b3kfjKcC3ZD7AIaw.png&quot; style=&quot;border-radius: inherit; border: 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 4px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;p id=&quot;beb6&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;strong style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;OpenWRT&lt;/strong&gt;&lt;/p&gt;&lt;ol style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; list-style-image: initial; list-style-position: outside; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;Switch控制Vlan的分佈：OpenWRT的規劃，需要先跳出Lan與Wan的觀念，不然會一直被卡住，因此建議直接以某Lan孔，直接給其具有Trunk的能力，之後再於其它孔根據需求調整對應的Vlan Tag&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;Interface透過Bridge串接Vlan與介面：針對要使用的某些孔或WIFI產生不同的SSID介面，與Switch的Vlan透過Bridge來串接&lt;/li&gt;&lt;/ol&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1em; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://miro.medium.com/max/1400/1*7Y15Rtp7_f3PJeodJFdudA.png&quot; style=&quot;border-radius: inherit; border: 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 4px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1em; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://miro.medium.com/max/1400/1*S5rf9dZs7PJQH6-GsbaJGg.png&quot; style=&quot;border-radius: inherit; border: 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 4px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;p id=&quot;1f49&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;參考資料：&lt;/p&gt;&lt;p id=&quot;5110&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;Mikrotik&lt;/p&gt;&lt;ol style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; list-style-image: initial; list-style-position: outside; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://blog.downager.com/2017/03/26/RouterOS-%E5%AF%A6%E4%BD%9C-VLAN-Trunk-%E8%AE%93-MOD-%E6%B5%81%E9%87%8F%E9%80%9A%E9%81%8E-Switch-%E4%B8%A6%E9%9A%94%E9%9B%A2%E5%85%B6%E4%BB%96%E4%B8%8A%E7%B6%B2%E6%B5%81%E9%87%8F/&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://blog.downager.com/2017/03/26/RouterOS-%E5%AF%A6%E4%BD%9C-VLAN-Trunk-%E8%AE%93-MOD-%E6%B5%81%E9%87%8F%E9%80%9A%E9%81%8E-Switch-%E4%B8%A6%E9%9A%94%E9%9B%A2%E5%85%B6%E4%BB%96%E4%B8%8A%E7%B6%B2%E6%B5%81%E9%87%8F/&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p id=&quot;f883&quot; style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;OpenWrt&lt;/p&gt;&lt;ol style=&quot;background-color: white; border: 0px; color: #444444; font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.71429; list-style-image: initial; list-style-position: outside; margin: 0px 0px 1.71429rem; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://openwrt-nctu.gitbook.io/project/experiment-sdn/openwrt-vlan-framework&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://openwrt-nctu.gitbook.io/project/experiment-sdn/openwrt-vlan-framework&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://forum.openwrt.org/t/openwrt-as-managed-switch-with-vlans-and-wan-as-trunk-port/71528/5&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://forum.openwrt.org/t/openwrt-as-managed-switch-with-vlans-and-wan-as-trunk-port/71528/5&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px 0px 0px 2.57143rem; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;https://openwrt.org/docs/guide-user/network/vlan/switch_configuration&quot; style=&quot;border: 0px; color: #21759b; margin: 0px; outline: none; padding: 0px; vertical-align: baseline;&quot;&gt;https://openwrt.org/docs/guide-user/network/vlan/switch_configuration&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/1462847767499696125/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/04/mikrotik-trunk-with-openwrt.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/1462847767499696125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/1462847767499696125'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/04/mikrotik-trunk-with-openwrt.html' title='Mikrotik trunk with OpenWRT'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-7748468828595530578</id><published>2022-03-21T21:11:00.011+08:00</published><updated>2022-03-25T08:49:11.768+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="技術裝備"/><category scheme="http://www.blogger.com/atom/ns#" term="繩索"/><title type='text'>有關技術裝備的相關知識</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;KN千牛頓&lt;/li&gt;&lt;ul&gt;&lt;li&gt;牛頓的意義，一個65kg的物體，懸空時，會需要有一反重力的對應力量，也就是鉤環或繩子受到的拉力，因此某人在鉤環或繩上的拉力F=m物體重量 X a重力加速度，因此=65kg X 9.8m/s 約等於 650N，也就是一條26KN的鉤環，在靜態下，可以承載26kn(26000N) / 650N＝40個65kg的物體：&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=119s&quot;&gt;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=119s&lt;/a&gt;&lt;/li&gt;&lt;li&gt;真實墬落產生的拉力，約1~2KN：&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=654s&quot;&gt;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=654s&lt;/a&gt;&lt;/li&gt;&lt;li&gt;高處墬落與低處墬落，高處墬落反而較為安全，因為動力繩的延展能力，進而吸收墬落產生的拉力：&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=682s&quot;&gt;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=682s&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;繩索&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;舊繩（硬繩）強度下降：&lt;a href=&quot;https://youtube.com/clip/UgkxmDDkKbLPJKzOCPe8ed8fULVL3_yiALCA&quot;&gt;https://youtube.com/clip/UgkxmDDkKbLPJKzOCPe8ed8fULVL3_yiALCA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;八字圈結壓繩對強度的影響：&lt;br /&gt;&lt;a href=&quot;https://youtube.com/clip/Ugkx6Y3MSlrSfabtc1qc4YqETCEmVPTNZnxO&quot;&gt;https://youtube.com/clip/Ugkx6Y3MSlrSfabtc1qc4YqETCEmVPTNZnxO&lt;/a&gt;&lt;/li&gt;&lt;li&gt;繩皮破損對強度的影響：&lt;br /&gt;&lt;a href=&quot;https://youtube.com/clip/UgkxAYPESFyNqLOFTIJoX7nniym9ljIIrAIx&quot;&gt;https://youtube.com/clip/UgkxAYPESFyNqLOFTIJoX7nniym9ljIIrAIx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;wet rope impact strength, the answer is yes and no, depend on the instruction of manufactory&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ccN4Rxo1Ueg&quot;&gt;https://www.youtube.com/watch?v=ccN4Rxo1Ueg&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;dyneema sling&lt;/li&gt;&lt;ul&gt;&lt;li&gt;舊sling的強度：&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=354s&quot;&gt;https://www.youtube.com/watch?v=WyExE2qH4Fs&amp;amp;t=354s&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/7748468828595530578/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/03/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7748468828595530578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7748468828595530578'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/03/blog-post.html' title='有關技術裝備的相關知識'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-1019111646902485897</id><published>2022-01-07T14:19:00.002+08:00</published><updated>2022-05-01T19:16:30.983+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OJS"/><title type='text'>OJS 3.3.8 與 JATSParserPlugin 2.1.3 插件的相容問題</title><content type='html'>&lt;p&gt;目前OJS 3.3.8 與 JATSParserPlugin 2.1.3 插件使用時，如出現以下錯誤&lt;/p&gt;&lt;p&gt;OJS array_unique() expects parameter 1 to be array, null given in JatsParserPlugin.inc.php&lt;/p&gt;&lt;p&gt;則請在插件的 JatsParserPlugin.inc.php 檔案的 1000 行進行修改，&lt;/p&gt;&lt;p&gt;- $submissionFileIds = array_unique($publication-&amp;gt;getData(&#39;jatsParser::fullTextFileId&#39;));&lt;/p&gt;&lt;p&gt;+ $submissionFileIds = array_unique($publication-&amp;gt;getData(&#39;jatsParser::fullTextFileId&#39;) ?? []);&lt;/p&gt;&lt;p&gt;參考資料：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;https://github.com/Vitaliy-1/JATSParserPlugin/commit/1f000a5ce5e12a7fe82c257223556be551538f19&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/1019111646902485897/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/01/ojs-338-jatsparserplugin-213.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/1019111646902485897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/1019111646902485897'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/01/ojs-338-jatsparserplugin-213.html' title='OJS 3.3.8 與 JATSParserPlugin 2.1.3 插件的相容問題'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-4324279807929146059</id><published>2022-01-05T17:39:00.000+08:00</published><updated>2022-01-05T17:39:32.933+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GCE"/><category scheme="http://www.blogger.com/atom/ns#" term="OJS"/><category scheme="http://www.blogger.com/atom/ns#" term="sendgrid"/><title type='text'>OJS on GCE send mail</title><content type='html'>&lt;p&gt;&amp;nbsp;OJS 如果架在 GCE 上，會因為 GCE 擋掉 SMTP 的功能，&lt;/p&gt;&lt;p&gt;因此需要透過第三方服務來發信，以下為利用 Sendgrid 來達到寄信功能。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Sendgrid 有兩件事要做&lt;/li&gt;&lt;ol&gt;&lt;li&gt;取得Sendgrid API KEY：只要有寄信權限就好&lt;/li&gt;&lt;li&gt;設定DNS授權：&lt;br /&gt;&lt;a href=&quot;https://docs.sendgrid.com/ui/account-and-settings/how-to-set-up-domain-authentication&quot;&gt;https://docs.sendgrid.com/ui/account-and-settings/how-to-set-up-domain-authentication&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;OJS&lt;/li&gt;&lt;ol&gt;&lt;li&gt;config.inc.php要修改一下設定&lt;br /&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;smtp = On&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;SMTP server settings&lt;br /&gt;smtp_server =&amp;nbsp;&lt;a href=&quot;http://smtp.sendgrid.net/&quot; rel=&quot;noopener nofollow ugc&quot; style=&quot;background-color: transparent; cursor: pointer; overflow-wrap: break-word; text-decoration-line: none;&quot;&gt;smtp.sendgrid.net&lt;/a&gt;&lt;br /&gt;smtp_port = 587&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;smtp_auth = tls&lt;/span&gt;&lt;br style=&quot;font-size: 15.008px;&quot; /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;smtp_username = apikey&lt;/span&gt;&lt;br style=&quot;font-size: 15.008px;&quot; /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;smtp_password = pass&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;smtp_suppress_cert_check = On&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;allow_envelope_sender = On&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;default_envelope_sender =&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;mailto:youremail@domain.com&quot; style=&quot;cursor: pointer; font-size: 15.008px; overflow-wrap: break-word; text-decoration-line: none;&quot;&gt;youremail@domain.com&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;force_default_envelope_sender = On&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;force_dmarc_compliant_from = On&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;dmarc_compliant_from_displayname = ‘%n’&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;time_between_emails = 3600&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;max_recipients = 10&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;require_validation = Off&lt;br /&gt;&lt;span style=&quot;font-size: 15.008px;&quot;&gt;validation_timeout = 14&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;參考資料：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://forum.pkp.sfu.ca/t/cant-setup-custom-email-using-sendgrid-instead-of-inbuilt-phpmailer/63316/9&quot;&gt;https://forum.pkp.sfu.ca/t/cant-setup-custom-email-using-sendgrid-instead-of-inbuilt-phpmailer/63316/9&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://jclassroom.net/setting-mail-smtp-for-wordpress/&quot;&gt;https://jclassroom.net/setting-mail-smtp-for-wordpress/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/4324279807929146059/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2022/01/ojs-on-gce-send-mail.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/4324279807929146059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/4324279807929146059'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2022/01/ojs-on-gce-send-mail.html' title='OJS on GCE send mail'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-4240889355024786449</id><published>2021-12-03T17:45:00.004+08:00</published><updated>2022-05-01T19:16:23.770+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GCE"/><title type='text'>GCE  專案 加SSH KEY</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;在 Compute Engine的Metadata加上 enable-oslogin：&lt;br /&gt;&lt;pre dir=&quot;ltr&quot; is-upgraded=&quot;&quot; style=&quot;box-sizing: inherit; color: var(--devsite-code-color); direction: ltr; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-x: auto; padding: var(--devsite-code-padding,24px); position: relative;&quot; translate=&quot;no&quot;&gt;gcloud compute project-info --project=projectid add-metadata \
    --metadata enable-oslogin=TRUE&lt;/pre&gt;&lt;a href=&quot;https://cloud.google.com/compute/docs/instances/managing-instance-access&quot;&gt;https://cloud.google.com/compute/docs/instances/managing-instance-access&lt;/a&gt;&lt;/li&gt;&lt;li&gt;把SSH KEY塞進去專案中，KEY可以用cloud shell editor 寫到cloud shell平台：&lt;br /&gt;&lt;pre dir=&quot;ltr&quot; is-upgraded=&quot;&quot; style=&quot;box-sizing: inherit; color: var(--devsite-code-color); direction: ltr; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow-x: auto; padding-left: 23px; position: relative;&quot; translate=&quot;no&quot;&gt;gcloud compute os-login ssh-keys add \
    --key-file=&lt;devsite-var is-upgraded=&quot;&quot; ready=&quot;&quot; scope=&quot;KEY_FILE_PATH&quot; style=&quot;box-sizing: inherit; position: relative; white-space: nowrap;&quot; tabindex=&quot;0&quot; translate=&quot;no&quot;&gt;&lt;span class=&quot;devsite-var-wrapper&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;var data-title=&quot;編輯 KEY_FILE_PATH&quot; is-upgraded=&quot;&quot; spellcheck=&quot;false&quot; style=&quot;-webkit-font-smoothing: auto; border-bottom: 1px dotted var(--devsite-var-color); box-sizing: inherit; color: var(--devsite-var-color); cursor: pointer; font-weight: 700;&quot;&gt;KEY_FILE_PATH&lt;a class=&quot;material-icons devsite-icon-edit&quot; role=&quot;button&quot; style=&quot;-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: inherit; color: var(--devsite-var-color); cursor: default; direction: ltr; display: inline-block; font-family: &amp;quot;Material Icons&amp;quot;; font-feature-settings: &amp;quot;liga&amp;quot;; font-size: inherit; font-style: normal; font-weight: normal; height: inherit; line-height: 1; margin: 0px 0px 2px 5px; min-width: inherit; overflow-wrap: normal; padding: 0px; pointer-events: none; vertical-align: middle;&quot; tabindex=&quot;-1&quot;&gt;&lt;/a&gt;&lt;/var&gt;&lt;/span&gt;&lt;/devsite-var&gt; \
    --project=&lt;devsite-var is-upgraded=&quot;&quot; ready=&quot;&quot; scope=&quot;PROJECT&quot; style=&quot;box-sizing: inherit; position: relative; white-space: nowrap;&quot; tabindex=&quot;0&quot; translate=&quot;no&quot;&gt;&lt;span class=&quot;devsite-var-wrapper&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;var data-title=&quot;編輯 PROJECT&quot; is-upgraded=&quot;&quot; spellcheck=&quot;false&quot; style=&quot;-webkit-font-smoothing: auto; border-bottom: 1px dotted var(--devsite-var-color); box-sizing: inherit; color: var(--devsite-var-color); cursor: pointer; font-weight: 700;&quot;&gt;PROJECT&lt;a class=&quot;material-icons devsite-icon-edit&quot; role=&quot;button&quot; style=&quot;-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: inherit; color: var(--devsite-var-color); cursor: default; direction: ltr; display: inline-block; font-family: &amp;quot;Material Icons&amp;quot;; font-feature-settings: &amp;quot;liga&amp;quot;; font-size: inherit; font-style: normal; font-weight: normal; height: inherit; line-height: 1; margin: 0px 0px 2px 5px; min-width: inherit; overflow-wrap: normal; padding: 0px; pointer-events: none; vertical-align: middle;&quot; tabindex=&quot;-1&quot;&gt;&lt;/a&gt;&lt;/var&gt;&lt;/span&gt;&lt;/devsite-var&gt; \
    --ttl=&lt;devsite-var is-upgraded=&quot;&quot; ready=&quot;&quot; scope=&quot;EXPIRE_TIME&quot; style=&quot;box-sizing: inherit; position: relative; white-space: nowrap;&quot; tabindex=&quot;0&quot; translate=&quot;no&quot;&gt;&lt;span class=&quot;devsite-var-wrapper&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;var data-title=&quot;編輯 EXPIRE_TIME&quot; is-upgraded=&quot;&quot; spellcheck=&quot;false&quot; style=&quot;-webkit-font-smoothing: auto; border-bottom: 1px dotted var(--devsite-var-color); box-sizing: inherit; color: var(--devsite-var-color); cursor: pointer; font-weight: 700;&quot;&gt;EXPIRE_TIME&lt;a class=&quot;material-icons devsite-icon-edit&quot; role=&quot;button&quot; style=&quot;-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: inherit; color: var(--devsite-var-color); cursor: default; direction: ltr; display: inline-block; font-family: &amp;quot;Material Icons&amp;quot;; font-feature-settings: &amp;quot;liga&amp;quot;; font-size: inherit; font-style: normal; font-weight: normal; height: inherit; line-height: 1; margin: 0px 0px 2px 5px; min-width: inherit; overflow-wrap: normal; padding: 0px; pointer-events: none; vertical-align: middle;&quot; tabindex=&quot;-1&quot;&gt;&lt;/a&gt;&lt;/var&gt;&lt;/span&gt;&lt;/devsite-var&gt;&lt;/pre&gt;&lt;a href=&quot;https://cloud.google.com/compute/docs/connect/add-ssh-keys#os-login&quot;&gt;https://cloud.google.com/compute/docs/connect/add-ssh-keys#os-login&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/4240889355024786449/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2021/12/gce-ssh-key.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/4240889355024786449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/4240889355024786449'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2021/12/gce-ssh-key.html' title='GCE  專案 加SSH KEY'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-1222958571848552711</id><published>2021-10-26T15:24:00.005+08:00</published><updated>2021-11-25T10:50:29.758+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CEPH"/><title type='text'>CEPH 相關指令</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;確認目前POOL的統計資料&lt;/li&gt;&lt;ul&gt;&lt;li&gt;https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/1.2.3/html/storage_strategies/show-pool-statistics&lt;/li&gt;&lt;li&gt;rados df&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;檢查POOL的複製數量設定&lt;/li&gt;&lt;ul&gt;&lt;li&gt;https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/1.2.3/html/storage_strategies/get-pool-values&lt;/li&gt;&lt;li&gt;ceph osd pool get &amp;lt;pool-name&amp;gt;&amp;nbsp; &amp;lt;key&amp;gt;&lt;/li&gt;&lt;li&gt;EX-檢查複製數量：ceph osd pool get ceph-filesystem-metadata size&lt;/li&gt;&lt;li&gt;EX-檢查複製最小數量：ceph osd pool get ceph-filesystem-metadata min_size&lt;/li&gt;&lt;li&gt;EX-確認實際每個OSD的複製數量：ceph osd dump | grep &#39;replicated size&#39;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;確認CEPHFS檔案分佈在哪幾個OSD&lt;/li&gt;&lt;ul&gt;&lt;li&gt;sudo ceph osd map cephfs_data /mnt/cephfs/ubWPYCacJB0DE.img &lt;br /&gt;&lt;/li&gt;&lt;li&gt;參考資料：https://ceph.io/en/news/blog/2013/ceph-osd-where-is-my-data/&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;參考資料：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;https://www.modb.pro/db/50697&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/1222958571848552711/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2021/10/ceph.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/1222958571848552711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/1222958571848552711'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2021/10/ceph.html' title='CEPH 相關指令'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-6762205751292291062</id><published>2021-10-24T08:55:00.002+08:00</published><updated>2021-10-26T10:13:12.614+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CEPH"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Raspberry Pi"/><category scheme="http://www.blogger.com/atom/ns#" term="SSD"/><category scheme="http://www.blogger.com/atom/ns#" term="外接盒"/><title type='text'>Raspberry Pi 4B Ubuntu Server 20.04 disable usbcore autosuspend</title><content type='html'>&lt;p&gt;目前使用&amp;nbsp;&amp;nbsp;Raspberry Pi 4B 建立一套K8s，並導入 Rook-CEPH，用的儲存媒體是接上USB3的NVME SSD硬碟，不過跑一陣子後，SSD就會自動離線，導致OSD一直出現DOWN的情況，由於建立之出都不會有問題，都是過一陣子才出現問題，所以目前判斷是 USB 設備的自動休眠問題，於是嘗試以下指令，後續如還有問題再回來此文修正&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;設備是：&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Raspberry Pi 4B X 3&lt;/li&gt;&lt;li&gt;Anker PowerPort 6 60W&lt;span style=&quot;background-color: white; color: rgba(0, 0, 0, 0.8); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, 文泉驛正黑, &amp;quot;WenQuanYi Zen Hei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;儷黑 Pro&amp;quot;, &amp;quot;LiHei Pro&amp;quot;, &amp;quot;Heiti TC&amp;quot;, 微軟正黑體, &amp;quot;Microsoft JhengHei UI&amp;quot;, &amp;quot;Microsoft JhengHei&amp;quot;, sans-serif; font-size: 14px; white-space: pre-wrap;&quot;&gt;（每個端口最大輸出5V / 2.4A）&lt;/span&gt;：這個與 4B 要求的 5.1V / 3.0A 是有所差距的，這點會影響外接USB硬碟的狀態，不過這個供電器，可以預期接5片沒外接任何設備的 4B 是可以&lt;/li&gt;&lt;li&gt;外接硬碟：ORICO M.2 NvMe SSD 外接盒 M2PV-C3 10Gbps ＋ Kingston NV1 500GB NVMe PCIe SSD（選NV1是考慮其低電壓）&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p&gt;由於 Ubuntu 官方給 Raspberry Pi 4B Raspberry Pi 4B 的 Server版，並沒有使用GRUB，所以一般直接改GRUB的boot參數的方法就沒法進行，因為根本找不到&amp;nbsp;&lt;span face=&quot;ui-monospace, &amp;quot;Cascadia Mono&amp;quot;, &amp;quot;Segoe UI Mono&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, Menlo, Monaco, Consolas, monospace&quot; style=&quot;background-color: #e3e6e8; color: #232629; font-size: 13px; white-space: pre-wrap;&quot;&gt;/etc/default/grub&lt;/span&gt;&amp;nbsp;這個檔案。&lt;/p&gt;&lt;p&gt;所以採用以下方式：&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;p&gt;&lt;span face=&quot;var(--ff-mono)&quot;&gt;&lt;span style=&quot;font-style: inherit; font-variant-caps: inherit; font-variant-ligatures: inherit; font-weight: inherit; white-space: inherit;&quot;&gt;cd /boot/&lt;/span&gt;&lt;/span&gt;&lt;span&gt;firmware&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;var(--ff-mono)&quot;&gt;&lt;span style=&quot;font-style: inherit; font-variant-caps: inherit; font-variant-ligatures: inherit; font-weight: inherit; white-space: inherit;&quot;&gt; nano &lt;/span&gt;&lt;/span&gt;&lt;span&gt;cmdline.txt&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;var(--ff-mono)&quot;&gt;&lt;span style=&quot;font-style: inherit; font-variant-caps: inherit; font-variant-ligatures: inherit; font-weight: inherit; white-space: inherit;&quot;&gt;在最後面，補上 usbcore.autosuspend=-1（注意前面要有個空白）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2021/10/26補充說明：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;補上usbcore.autosuspend之後，的確比較不會一直出現OSD DOWN&lt;/li&gt;&lt;li&gt;不過目前如果一片4B接兩台外接硬碟很容易就造成某一個SSD離線。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/6762205751292291062/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2021/10/raspberry-pi-4b-ubuntu-server-2004.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6762205751292291062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/6762205751292291062'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2021/10/raspberry-pi-4b-ubuntu-server-2004.html' title='Raspberry Pi 4B Ubuntu Server 20.04 disable usbcore autosuspend'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-2031141719791986600</id><published>2021-08-14T15:48:00.003+08:00</published><updated>2021-08-14T15:54:36.014+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="kvm"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Proxmox"/><title type='text'>Proxmox的KSM設定</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;確認Proxmox的Web介面中已有啟動KSM設定：&lt;br /&gt;[System] -&amp;gt; [ksmtuned] -&amp;gt; [Stop]&lt;/li&gt;&lt;li&gt;前項確認有啟動後，進到Shell更改觸發KSM的最低限度：&lt;/li&gt;&lt;ul&gt;&lt;li&gt;/etc/ksmtuned.conf&lt;/li&gt;&lt;ul&gt;&lt;li&gt;修改『KSM_THRES_COEF』值，預設是20，代表RAM用到80%才發動，目前都是改成40&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;參考資料：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://blog.jason.tools/2019/01/pve-ksm-tune.html&quot;&gt;http://blog.jason.tools/2019/01/pve-ksm-tune.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/2031141719791986600/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2021/08/proxmoxksm.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2031141719791986600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2031141719791986600'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2021/08/proxmoxksm.html' title='Proxmox的KSM設定'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-2995020841078493988</id><published>2019-03-20T09:18:00.000+08:00</published><updated>2019-03-20T09:18:30.777+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="admob"/><category scheme="http://www.blogger.com/atom/ns#" term="admob free"/><category scheme="http://www.blogger.com/atom/ns#" term="firebase"/><category scheme="http://www.blogger.com/atom/ns#" term="ionic"/><category scheme="http://www.blogger.com/atom/ns#" term="ionic4"/><title type='text'>ionic 4 build release error with admob free and firebase</title><content type='html'>在 ionic 4 的環境，如果混用Firebase及admob，在編譯release的版本時可能會發生以下的問題：&lt;br /&gt;
The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[16.3.0,16.3.0], [16.4.0,16.4.0]], but resolves to 16.4.0. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.&lt;br /&gt;
&lt;br /&gt;
找了許多討論，可以瞭解問題核心在於不同plugin引用不同版本的問題：&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;https://github.com/arnesson/cordova-plugin-firebase/issues/856&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
最後按討論安裝了：&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;https://github.com/dpa99c/cordova-android-play-services-gradle-release&lt;/li&gt;
&lt;li&gt;https://github.com/dpa99c/cordova-android-firebase-gradle-release&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
並指定版本為『15.+』，不過反而產生其它問題。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
最後找資料：&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;https://stackoverflow.com/questions/50569501/gradle-sync-fails-play-services-measurement-base&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
在『project/platforms/android/app/build.gradle』的最後一行補上『&lt;span class=&quot;pln&quot;&gt;com&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;google&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;gms&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;googleservices&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;GoogleServicesPlugin&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;disableVersionCheck &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot;&gt;true&lt;/span&gt;』&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
但如果前面兩個動作拿掉，還是一樣不行，也就是三個動作都要做。&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/2995020841078493988/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2019/03/ionic-4-build-release-error-with-admob.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2995020841078493988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2995020841078493988'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2019/03/ionic-4-build-release-error-with-admob.html' title='ionic 4 build release error with admob free and firebase'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-2731049169810072419</id><published>2017-12-20T08:33:00.002+08:00</published><updated>2017-12-20T08:33:44.426+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cordova"/><category scheme="http://www.blogger.com/atom/ns#" term="cordova plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="firebase"/><category scheme="http://www.blogger.com/atom/ns#" term="ionic2"/><title type='text'>ionic native plugin firebase build ios error</title><content type='html'>近日重建ios版的ionic2 app時，會遇到一個怪情況：&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
在ionic cordova build ios沒問題，但是進到xcode進行編譯時，會出現以下的錯誤：&lt;b style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;terminating with uncaught exception of type NSException&lt;/b&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
再進一步檢查內容，可以發現：&amp;nbsp;&lt;b style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;erminating app due to uncaught exception &#39;com.firebase.core&#39;, reason: &#39;Configuration fails. It may be caused by an invalid GOOGLE_APP_ID in GoogleService-Info.plist or set in the customized options.&lt;/b&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;找了一些資料後，目前初步結論可知&lt;a href=&quot;https://github.com/arnesson/cordova-plugin-firebase&quot; style=&quot;background-color: white; box-sizing: border-box; color: #95bbfd; font-family: &amp;quot;Avenir Next&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 15px; outline: 0px; text-decoration-line: none; transition: color 0.2s;&quot;&gt;cordova-plugin-firebase&lt;/a&gt;對於&lt;b style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;GoogleService-Info.plist&lt;/b&gt;這個檔案的處理 有不正確的地方，經檢視該plugin的網頁提到某些firebase的設定檔應該放置在：&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;platforms/ios/&lt;my project=&quot;&quot;&gt;/Resources&lt;/my&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
但即便在該目錄下有放置&amp;nbsp;&lt;b style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;GoogleService-Info.plist&lt;/b&gt;這個檔案，但仍是發生錯誤，最後是往下再放一個Resources，才解決xcode編譯問題：&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;platforms/ios/&lt;my project=&quot;&quot;&gt;/Resources&lt;/my&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #24292e; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px;&quot;&gt;/Resources&lt;/span&gt;&lt;/blockquote&gt;
&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000}
span.s1 {font-variant-ligatures: no-common-ligatures}
&lt;/style&gt;







&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000}
span.s1 {font-variant-ligatures: no-common-ligatures}
&lt;/style&gt;


&lt;br /&gt;
環境說明：&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
@ionic/cli-utils&amp;nbsp; : 1.19.0&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; ionic (Ionic CLI) : 3.19.0&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
global packages:&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; cordova (Cordova CLI) : 7.1.0&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
local packages:&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; @ionic/app-scripts : 3.1.2&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; Cordova Platforms&amp;nbsp; : android 6.3.0 ios 4.5.4&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; Ionic Framework&amp;nbsp; &amp;nbsp; : ionic-angular 3.9.2&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
System:&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; Android SDK Tools : 24.4.1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; ios-deploy&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : 1.9.2&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; Node&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : v9.1.0&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; npm&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: 5.5.1&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; OS&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : macOS Sierra&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; Xcode&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Xcode 9.2 Build version 9C40b&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Environment Variables:&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; ANDROID_HOME : /usr/local/opt/android-sdk&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Misc:&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; backend : legacy&lt;/blockquote&gt;
&lt;/blockquote&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/2731049169810072419/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2017/12/ionic-native-plugin-firebase-build-ios.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2731049169810072419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/2731049169810072419'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2017/12/ionic-native-plugin-firebase-build-ios.html' title='ionic native plugin firebase build ios error'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-3029581468552390866</id><published>2017-11-16T09:22:00.001+08:00</published><updated>2017-11-16T09:22:21.820+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cordova"/><category scheme="http://www.blogger.com/atom/ns#" term="ionic2"/><title type='text'>cordova build ios error &quot;module FirebaseInstanceID not found&quot;</title><content type='html'>如果有使用較新版（2.x以上）phonegap-plugin-push，在build --verbose 時，如果出現&quot;module FirebaseInstanceID not found&quot;這樣的錯誤警訊&lt;br /&gt;
&lt;br /&gt;
請參考phonegap-plugin-push在github上針對cocoapod的說明：&lt;br /&gt;
&lt;a href=&quot;https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#cocoapods&quot;&gt;https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#cocoapods&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
簡單說就是，該裝的LIB在cordova platform add ios時無法主動裝進去，所以產生錯誤，所以做以下動作即可&lt;br /&gt;
&lt;pre style=&quot;background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;&quot;&gt;cd platforms/ios
pod install&lt;/code&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/3029581468552390866/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2017/11/cordova-build-ios-error-module.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/3029581468552390866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/3029581468552390866'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2017/11/cordova-build-ios-error-module.html' title='cordova build ios error &quot;module FirebaseInstanceID not found&quot;'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-5606899248913970050</id><published>2017-11-14T10:21:00.005+08:00</published><updated>2017-11-14T10:21:51.413+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="firebase"/><category scheme="http://www.blogger.com/atom/ns#" term="ionic2"/><title type='text'>updating the version of com.google.android.gms</title><content type='html'>在ionic 2應用firebase的開發中，如果混合多種plug-in(如push、iap、admob)，會發生內部引用LIB的異常，如果遇到以下的錯誤警示：&lt;br /&gt;
&lt;br /&gt;
Execution failed for task &#39;:processDebugGoogleServices&#39;.&lt;br /&gt;
&amp;gt; Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 11.0.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
解法：&lt;br /&gt;
1. 在/project/platforms/android/project.properties 中，將相關的都改成提示的版本&lt;br /&gt;
&lt;div style=&quot;font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;
cordova.system.library.3=com.google.firebase:firebase-messaging:&lt;span style=&quot;color: red;&quot;&gt;11.0.1&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;
cordova.system.library.4=com.google.android.gms:play-services-base:&lt;span style=&quot;color: red;&quot;&gt;11.0.1&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;
cordova.system.library.5=com.google.android.gms:play-services-ads:&lt;span style=&quot;color: red;&quot;&gt;11.0.1&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
2. 這個方式，預計在遇到 ionic cordova platofrm remove android 時，會需要重新修正。</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/5606899248913970050/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2017/11/updating-version-of-comgoogleandroidgms.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/5606899248913970050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/5606899248913970050'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2017/11/updating-version-of-comgoogleandroidgms.html' title='updating the version of com.google.android.gms'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-5325859181757676715</id><published>2017-11-12T22:37:00.003+08:00</published><updated>2017-11-12T22:37:29.268+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ionic2"/><title type='text'>Module not found: Error: Can&#39;t resolve</title><content type='html'>Module not found: Error: Can&#39;t resolve &#39;./app.module.ngfactory&#39; in&lt;br /&gt;
resolve &#39;./app.module.ngfactory&lt;br /&gt;
&lt;br /&gt;
在 ionic cordova build anroid --prod 遇到這樣的的錯誤警報，先去檢查是否有額外不小心新加的page忘了加進去app.module之中</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/5325859181757676715/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2017/11/module-not-found-error-cant-resolve.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/5325859181757676715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/5325859181757676715'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2017/11/module-not-found-error-cant-resolve.html' title='Module not found: Error: Can&#39;t resolve'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-3628467634916733017</id><published>2017-05-06T08:39:00.005+08:00</published><updated>2017-11-12T22:37:49.655+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="firebase"/><title type='text'>firebase query 回來資料反轉時間序（還未測）</title><content type='html'>https://github.com/angular/angularfire2/issues/283&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #f6f8fa; box-sizing: border-box; color: #586069; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px; font-weight: 600;&quot;&gt;&lt;a class=&quot;author&quot; href=&quot;https://github.com/ericel&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #586069; text-decoration-line: none;&quot;&gt;ericel&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f8fa; color: #586069; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px;&quot;&gt;commented&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;timestamp&quot; href=&quot;https://github.com/angular/angularfire2/issues/283#issuecomment-273962727&quot; style=&quot;background-color: #f6f8fa; box-sizing: border-box; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; text-decoration-line: none; white-space: nowrap;&quot;&gt;&lt;relative-time datetime=&quot;2017-01-20T02:43:14Z&quot; style=&quot;box-sizing: border-box;&quot; title=&quot;2017年1月20日 上午10:43 [台北]&quot;&gt;on 20 Jan&lt;/relative-time&gt;&lt;/a&gt;&lt;span style=&quot;background-color: #f6f8fa; color: #586069; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;•&amp;nbsp;&lt;/span&gt;&lt;span aria-label=&quot;ericel edited this comment 4 months ago&quot; class=&quot;timestamp timestamp-edited tooltipped tooltipped-n&quot; style=&quot;background-color: #f6f8fa; box-sizing: border-box; color: #586069; cursor: default; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px; position: relative; white-space: nowrap;&quot;&gt;edited&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #24292e; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; margin-bottom: 16px;&quot;&gt;
In my case I had a field in the datebase called&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.3333px; margin: 0px; padding: 0.2em 0px;&quot;&gt;createdAt (createdAt: firebase.database.ServerValue.TIMESTAMP)&lt;/code&gt;&lt;br /&gt;
To retrieve I simply ask my list to query order by child&lt;/div&gt;
&lt;pre style=&quot;background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.3333px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.3333px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;&quot;&gt;this.postList = this.af.database.list(&#39;post&#39;,  {
      query: {
        orderByChild: &#39;createdAt&#39;
      }
    });

getPost() {
     return this.postList.map(posts =&amp;gt; {
         return posts.reverse();
     });&lt;/code&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/3628467634916733017/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2017/05/firebase-query.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/3628467634916733017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/3628467634916733017'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2017/05/firebase-query.html' title='firebase query 回來資料反轉時間序（還未測）'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-7342711684128670552</id><published>2017-03-20T00:47:00.001+08:00</published><updated>2017-03-20T00:47:19.673+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ionic2"/><title type='text'>ionic2 storage 1.1.16 以上，會出現『Cannot resolve all parameters for ‘Storage’(?, ?)』的錯誤</title><content type='html'>在官方的 ionic-storage 的 2.0.0 以解決此問題：&lt;div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #24292e; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
Moved to NgModule to resolve dependency injection issue.&lt;/div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #24292e; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 16px;&quot;&gt;
Update Steps:&lt;/div&gt;
&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #24292e; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; margin-bottom: 0px !important; margin-top: 0px; padding-left: 2em;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Run&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;npm install @ionic/storage@2.0.0 --save --save-exact&lt;/code&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Remove&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;Storage&lt;/code&gt;&amp;nbsp;from your providers in&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;app.module.ts&lt;/code&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;import { IonicStorageModule } from &#39;@ionic/storage&#39;&lt;/code&gt;&amp;nbsp;instead of&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;import { IonicStorage } from &#39;@ionic/storage&#39;&lt;/code&gt;&amp;nbsp;in&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;app.module.ts&lt;/code&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;Add&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;IonicStorageModule.forRoot()&lt;/code&gt;&amp;nbsp;to the&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;imports&lt;/code&gt;&amp;nbsp;array in&amp;nbsp;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;&quot;&gt;app.module.ts&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;color: #24292e; font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: 13.6px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #24292e; font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: 13.6px;&quot;&gt;看來是把 storage 從 provider 中移出來&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
參考資料：&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/driftyco/ionic-storage/releases/tag/v2.0.0&quot;&gt;https://github.com/driftyco/ionic-storage/releases/tag/v2.0.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/7342711684128670552/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2017/03/ionic2-storage-1116-cannot-resolve-all.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7342711684128670552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7342711684128670552'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2017/03/ionic2-storage-1116-cannot-resolve-all.html' title='ionic2 storage 1.1.16 以上，會出現『Cannot resolve all parameters for ‘Storage’(?, ?)』的錯誤'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-313560639897292065.post-7035909816331621081</id><published>2017-03-20T00:43:00.004+08:00</published><updated>2017-05-01T11:19:41.799+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ionic2"/><title type='text'>要如何升級 ionic2 專案中的 package.json 的依存庫</title><content type='html'>IONIC2的更新也算快，但似乎沒有指令可以簡單將 package.json 中引用的函式的版本升級，後來找了一下資料，主要有以下幾個步驟：&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;先將全域的ionic升級：npm install -g ionic&lt;/li&gt;
&lt;li&gt;檢查目前專案中 package.json 所列的函式是否有過期的：npm outdated&lt;/li&gt;
&lt;li&gt;將 2. 所提式的過期版本更新回 package.json&lt;/li&gt;
&lt;li&gt;之後再下達更新 npm update&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
另外也可以參考&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;lang-js prettyprint prettyprinted&quot; style=&quot;background-color: #eff0f1; border: 0px; color: #393318; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;npm i &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;g npm&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;check&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;updates
npm&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;check&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;updates &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;u
npm install&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: #303336; margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
參考資料：&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://devfanaticblog.com/how-to-update-ionic-2-cli-and-libraries/&quot;&gt;How to update Ionic 2 cli and libraries&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kiko555.blogspot.com/feeds/7035909816331621081/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://kiko555.blogspot.com/2017/03/ionic2-packagejson.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7035909816331621081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/313560639897292065/posts/default/7035909816331621081'/><link rel='alternate' type='text/html' href='http://kiko555.blogspot.com/2017/03/ionic2-packagejson.html' title='要如何升級 ionic2 專案中的 package.json 的依存庫'/><author><name>kiko555</name><uri>http://www.blogger.com/profile/11454123249562173377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UUemF0_RmRDx3LB0QHxEsEPzEOXD4BWw2743_hplkTIV6yHHtGNCbIUBmbV-cIu6mWEXn5RiVv-6AzLWvgRMVdTGRZOZUF0oputA9J9828BEaqfTn54mu5Q5MVNu3w/s220/fcadc551-c6f2-43a6-b769-14b4d9b970b8.webp'/></author><thr:total>0</thr:total></entry></feed>