DevOps

What Is Sli Slo Sla and User Facing

A service provider probably has a technology-related service contract with the client to promise about the service level availability and usability.

Here we will discuss service level terminology about SLI/SLO/SLA and User-Facing:

Continue Reading

Saltstack introduction - How to install salt master and salt minion

Saltstack is an automatic configuration management tool, easy extension infrastructure, and high performance.

Using Saltstack can easy to manage large-scale servers, include dynamic connections, can be used for remote/local execution, config management, etc.

Continue Reading

Terraform 安裝與運行

Terraform 安裝與運行

Terraform 安裝與運行

Terraform 是由 HashiCorp 開發的一套 Infrastructure as Code 工具。

這裡記錄 Terraform 基本安裝及設定的步驟,示範如何在 GCP 建立一個 instance。

Continue Reading

GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine

GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine

GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine

在這裡記錄如何從 GCP 建立起 Kubernetes Engine 建立起 cluster 流程:

Continue Reading

Ansible 配置管理與部署入門

Ansible 配置管理與部署入門

Ansible 配置管理與部署入門

簡介

Ansible 是一個開源的系統自動化工具,擁有配置系統,任務排程,可以透過代碼來管理我們的infra,可以進階設計出一些 CI/CD 流程等功能。Ansible 預設使用 SSH 來進行遠端主機管理,Ansible 1.3 之後的版本可以透過本地的 OpenSSH 與遠端的主機進行通訊,如果是在比較老舊的作業系統,則會採取 paramiko 的相對應做法。

Continue Reading

Kubernetes (K8S) - Mac 本地執行練習上手 如何用 K8S 快速佈建一個 Go Server

Kubernetes (K8S) - Mac 本地執行練習上手 如何用 K8S 快速佈建一個 Go Server

Kubernetes (K8S) - Mac 本地執行練習上手 如何用 K8S 快速佈建一個 Go Server

如何在 Mac 本地快速透過 K8S 啟用一個服務,這裡以一個簡易的 go server 為例子,一步步來說明如何啟動。

Continue Reading

SSH Secure Tunneling (Proxy&Port Forwarding)

SSH Secure tunnel forwarding

在 SSH 連線有一個 Secure Tuunel (加密通道)方式,

可以將 local 與remote server 之間建立一條 secure tunneling 通道。

這通道的方向可以是 local -> server 或者 server -> local。

首先關於 local to server 以 L (left) 表示, server to local 以 R (right) 表示。

其中在通道的傳輸都是透過 SSH 22port 來做 proxy,以下會再舉例說明:

Continue Reading

Laradock Redis Production 環境配置

Laradock Redis Production 環境配置

Laradock 在開發測試環境相當方便,但是若是對外暴露的情況下,則會由一定的安全設定需要處理。

這裡記錄過去在開設測試環境時,經常會使用到的設定方式:

Continue Reading

如何在 CentOS7 安裝 FFmpeg

如何在 CentOS7 安裝 FFmpeg

FFmpeg 是一個非常強大的影音串流及轉檔服務,這裡主要說明如何在 CentOS7 安裝 ffmpeg

安裝 FFmpeg

在 CentOS7 沒有 FFmpeg 相關的核心套件可以直接下載,因此需透過 Nux Dextop repository 來安裝。

首先,先更新 package

Continue Reading

解決 Docker build apt-get update "-yqq" failed Failed to fetch http://xxx 與 IPv4 forwarding is disabled 問題

在試用某家 VPS 廠商的服務時,發現在執行一些服務安裝時,使用 apt-get update -yqq 出現了一些錯誤,在這裡記錄下問題發生的可能原因及解決方案:

WARNING: IPv4 forwarding is disabled. Networking will not work

遇到這問題,解決方式可以直接在系統 sysctl 設定加入允許 ipv4 forward

開啟 sysctl 設定檔案

vim /etc/sysctl.conf

加入以下代碼

Continue Reading

Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家前,舊站仍需要正常運作,同時要將資料搬移到新主機進行瀏覽。

由於新主機我們希望先瀏覽是否能正常訪問,因此,並不需要強制要求 ssl 憑證,因此,會有需求是要能移除 ssl 以及強制導向。

最常見的問題就是, wordpress 資料搬移到新主機,卻重新導向回到舊站,或者強制導向 ssl。

Continue Reading

Linux Firewall-cmd 防火牆安裝, 允許/禁止 IP, Port 用法介紹

Firewalld 防火牆常見用法介紹

Linux 常見防火牆有 iptables 與 firewalls ,這裡主要針對 firewalld安裝及常見用法進行說明,這裡以 CentOS7 來進行說明:

Continue Reading

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

不同主機之間經常會需要做資料上傳與下載,一般常見透過 FTP, Web, 第三方軟體來進行傳輸,在這裡要介紹的是,如何透過 Linux 的 scp 指令來進行檔案複製。

Continue Reading

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

Docker 的 Memory 與 CPU 資源管理

Docker 的 Memory 與 CPU 資源管理

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

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

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

Continue Reading