關於網路那些事...

Marketing, SEO, Web trends, Programming tutorial, Web design, and Life event...

Kubernetes 的 Node 節點 ROLES 顯示 none,手動設定 ROLES 方式

Kubernetes 的 Node 節點 ROLES 顯示 none,手動設定 ROLES 方式

K8S 在指派 Node 節點後,查看 Node 會發現 ROLES 除了master ,其他節點都顯示為 none

> kubectl get node

NAME                  STATUS   ROLES    AGE   VERSION
k8s-node1             Ready    <none>   74m   v1.18.8
k8s-master            Ready    master   45h   v1.18.6

這時發現 Node 節點的 ROLES 顯示為 none,

可以透過手動方式設定 ROLES

Continue Reading

解決 kubernetes - coredns 顯示 Pending 與 master 處於 NotReady 狀態

在 CentOS7 環境,K8S 的 Master 透過 kubeadm join 啟動後,先查看 pods 處於 Pending 狀態

Continue Reading

K8S Kubeadm join token 過期 - 重新產生 token 與 ca sha256 hash

在 Kubernetes 由於 kubeadm 產生的 token 有效時間為 24 小時,若過期則需要重新產生

重新建立 token 可執行以下指令重建:

kubeadm token create

查看 kubeadm token

Continue Reading

Linux 主機 NTP 系統時區、時間同步、時間校正

時區校正是相當重要的工作,若時區沒有正確對應,可能會出現驗證憑證問題、存取誤差以及安全性問題。

因此,可以透過 NTP 網路校正的方式來達到Linux多主機時間校正。

在校正前,先統一時區(可依照需求調整),例如 下方式 Linux 設定 UTC 及 台北(Asia/Taipei) 時區的方式

Continue Reading

不推薦使用 GraphQL 的理由

GraphQL 簡介

GraphQL Facebook 發佈於 2015,是一個 API 設計理念,主要以 “A query language for your API” 為出發點,並且有以下重點:

  • Ask for what you need, get exactly that
  • Get many resources in a single request
  • Describe what’s possible with a type system
  • Evolve your API without versions
  • Bring your own data and code

Continue Reading

認識背景執行 Daemon 與手動建立 Service入門

認識背景執行 Daemon 與手動建立 Service入門

Daemon 是什麼

Daemon 直接翻譯,意思為 “守護程序, 惡魔, 魔鬼, 妖魔”。

在這裡會解釋什麼是 Daemon ,以及基本的一些用法。

在系統中,都會依照需求安裝許多服務,但這些服務本身並不會自動啟用,針對啟用服務程序,即稱為 Daemon。

(其實,通常溝通方式都是說:“請幫忙啟動某個服務”。基本上不太會去區分 service 與 daemon,不太會強調背景執行 daemon 這件事情,因為,除非你有特殊需求,否則背景執行應該視為理所當然)。

Continue Reading

Logstash 常見 Plugin 介紹

Logstash 可以獲取資料源,將資料源進行資料切割及過濾,在將清洗過的資料傳算到指定的位置。

在獲取資料方面,可以分成不同的方式,這裡介紹幾個常見的 plugin:

Continue Reading

如何避免 filebeat 傳送過多的 Laravel log

Filebeat 在取得 laravel log,沒有設定好,會容易發生大量發重複的 log 紀錄,例如報錯一次,就產生98 筆記錄。 首先,如果是少量重複的資料,可能是來自於 ack 延遲發生的問題,所以先設定 required_acks: 0,但如果可接受少量重複資料,則可略過這個設定。 接著,larval log 一次都會產生非常多行的錯誤訊息,filebeat 會把每一行都當作一個message 紀錄,因此, 可以考慮透過錯誤處理 ```try 第二種laravel log 產生多行的問題,可修改 stacktrace CVT2HUGO: cache來捕獲錯誤,再透過Log:info``` CVT2HUGO: , 開啟 app/Exceptions/Handler.php CVT2HUGO: 來記錄一行錯誤。

Continue Reading

Docker 的 Memory 與 CPU 資源管理

Docker 的 Memory 與 CPU 資源管理

Docker 資源管理可以設定 CPU, Memory, IO 等機制,在啟用容器後也可即時的查看 container 資源使用情況。

如果沒有限制 Docker 的 Memory 與 CPU ,Docker 將會使用系統所有的資源。

在 Linux 的核心有針對資源管理的功能 - cgroup ,以下是 cgroup 資源管理的參數

Continue Reading

VSCode 安裝 SFTP/FTP sync 實現即時更新上傳

VSCode 安裝 SFTP 實現即時更新上傳

在多數付費IDE 都具備有 SFTP/FTP sync 更新即時上傳SFTP功能,實現本地開發遠端程式碼。

在這裡說明 VSCode 的擴充,如何達到本地開發遠地程式碼的流程設定。

Continue Reading

Jira Roadmap 簡介

Jira Roadmap 是一個將 Epic 可視化管理介面,適合用於管理大型,需要耗時幾個月的專案,以及不同Groups的 sprints。

Continue Reading

redis 設定Key過期時間 &原理

在Redis 設定 Key 之後,針對一些短期用途的 key (驗證,限時單),可以透過設定過期時間,

設定key的存活時間。

Continue Reading

Redis 清除過期key原理

在Redis 基於性能考量,並不會對每一個過期的key做及時刪除,主要透過以下幾種方式來清除過期的key:

Continue Reading

快速建立 Telegram Bot (入門)

這裡記錄如何快速建立一個 Telegram bot 以及透過 bot 發送訊息到群組。

Continue Reading

推薦 MacOS 的 MySQL Client - Sequel Ace

自從停止發布Sequel Pro更新以來,直到近期終於有一套延續 Sequel Pro 的 MySQL Client 誕生: Sequel Ace

Continue Reading

如何透過 SRI 驗證避免 CDN 劫持

SRI (Subresource Integrity) 是一個透過瀏覽器驗證引用的第三方資源,確保內容沒有被串改。

例如,我們常會引用第三方的 CDN 來源,以加快請求的時間。但由於 CDN 來源分散,難以進行定位,若其中一個來源節點受到劫持,可能會發生隨機的劫持,並且難以重複呈現,用戶刷新頁面後,就無法再重現。

Continue Reading

Redis pub/sub 連線一段時間出現訂閱失敗的處理方式

Redis pub/sub 連線一段時間出現訂閱失敗的處理方式

Redis subscribe 在訂閱一段時間可能失敗的情況有兩種, 1. 啟動沒多久就發生超時, 2. 長期才發生的連結斷開

在實際開發過程,兩種方式情境都可以同時設置,處理方式如下:

Continue Reading

即時通訊架構-心跳檢測原理說明

這裡針對即時通訊架構,即時連線心跳檢測原理是什麼?各種配置機制的好與壞?以及如何提供穩定的連線品質,針對過去一些經驗進行分享~

Continue Reading

RESTful API 介紹及經驗分享

RESTful API 介紹及經驗分享

在現在系統開發,RESTful 無疑是 API 溝通的主流之一,在這裏,主要針對我個人對於 RESTful API 使用狀態及理解做一個分享。

REST 是一個設計風格,全名為 Representational State Transfer (表現層狀態轉換)是在 2000 年,由 Roy Thomas Fielding 所提出來的一種軟體架構風格,用於定義資源及管理資源。

RESTful 則是基於 REST 的一種設計風格,而不是原則!

一般API呼叫方式,主要可有兩部分:通訊協議及序列化

Continue Reading

什麼是 開放封閉原則 Open-Closed Principle (OCP)

開放封閉原則 (Open-Closed Principle (OCP)) 談論的是,軟體開發所使用的類、方法等,應該具備能拓展,且不須透過手動修改。 在開發大型架構(或框架)時,嚴謹遵照這個方式,才能讓架構保持靈活與易擴充性。 實作方式,都是透過抽象的方式來處理: 繼承 介面 依賴注入 …等 在今天,我們開發專案多會選擇以OCP拓展的框架,在套件擴充及開發都會比較容易上手。 實際開發過程,如果是一些小專案,則可不必強制解耦合,尚未明確的內容提前被封裝,導致需求變動時,修改的成本會隨之提升。 因此,都會建議在剛開始先將邏輯完成,後續再透過重構方式來做封裝。

Continue Reading