# K8s 上一鍵安裝 EFK # EFK Elasticsearch,Fluentd,Kibana 的組合 Teck stack Elasticsearch 用於儲存與搜尋 Fluentd 用於收集系統 Log Kibana 提供資料視覺化 # 開始安裝 把下列內容儲存成...

# Kubernetes 各種資源型態 Resource Object # K8s 本身提供的資源型態 大致分成幾類 種類 資源型態 Workload Pod, HorizontalPodAutoscaler Controller ReplicaSet, ReplicationController, Deployment, StatefulSet, DaemonSet, Job, CronJob Service Discovery Service, Ingress Authentication & Authorization ServiceAccount,...

# K8s StatefulSet # Introduction StatefulSet 是在 K8s 建構 Stateful App 用的,StatefulSet 類似 Deployment,但 StatefulSet App 會在容器產生後,產生一組識別碼, 且不會因為 Pod reschedule 變動 # 使用情境 應用程式適合用 StatefulSet 的情況 需要穩定 & 唯一的網路識別 (pod reschedule 後的 pod name & hostname 都不會變動) 需要穩定的 persistent storage (pod...

# K3s 各 Log 的儲存位置 # 根據官方文件表明各 Log 位置 k3s logs 的位置取決於你怎麼去執行 k3s 以及節點的作業系統 當透過指令執行,log 會被送到 stdout/stderr 當透過 openrc 執行 logs 會被建立在 /var/log/k3s.log 當透過 systemd 執行 logs 會被送到 Journald 且可以透過 journalctl -u k3s Pod 的 logs 可以在 /var/log/pods 裡面找到 容器的 logs 可以在...

# K8s 服務對外的四種方式 # 前言 剛開始學習 K8s 的時候,你通常會開始寫第一個 Pod 的 YAML 檔案,然而 Pod 裡面的 Service 即便描述了 Port Number 外界還是無法存取 Pod 內的 Service,通常在學習初期會使用 port-forward 的指令來暫時性的將服務對外,那在其他環境中不會用 port-forward,那我們來看看還有哪些方式可以將服務對外出去! # HostNetwork 與 Docker Network 的 Host mode 相同,直接掛載機器上的網路與 Port 123456789apiVersion: v1kind:...

# K8s Ingress VS LoadBalancer # 前言 在學習將 K8s Service 對外的時候,會了解到 Ingress 與 LoadBalancer 設定與概念很類似,常常讓人分不清,本篇會讓大家了解 Ingress 與 LoadBalancer 的差異 # LoadBalancer 假設使用 Cluster IP 的話 Service 就只能在 K8s 內部使用,因此如果想要對外存取就需要透過 LoadBalancer 協助,LoadBalancer Resource Type 的 Resource 會跟去請求一個對外 IP # Ingress 與...

# k8sGPT with K3s # Install K8sGPT k8sGPT GitHub # Go to Debian base host 12curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.28/k8sgpt_amd64.debsudo dpkg -i k8sgpt_amd64.deb then enter k8sgpt is ok 1k8sgpt # K3s User should specify kubeconfig 1export...

# K8s ConfigMap 設置 # 前言 在 K8s 當中我們去 Deploy 一個 Deployment,其中的 Container 或是 K8s 上的環境我們可能會希望能夠透過一些設置來進行調整,那這時候開發人員就可以透過設計 ConfigMap 與你需要得 K8s Resource 進行綁定並且給予環境變數。 # 設置 ConfigMap 透過 yml 123456apiVersion: v1kind: ConfigMapmetadata: name: django-config # Configmap 名稱data: DEBUG : True # 各種你需要的參數 # 設置...

# K8s DNS # K8s DNS 其實就跟你所認知的 DNS Server 相同,只不過在 k8s 中 k8s DNS 是用來將 Domain Name 解析成 K8s 上的 Resource 作使用的,而且 K8s DNS 非常彈性,可以運用 DNS + DNS Plugin API 組合成最適合自己的解決方案 # K8s DNS 解析過程 假設我想要去 Request 一個 K8s Service 同一個 Namespace 1curl non-existent-service 不同的 Namespace 1curl...

# Ubuntu 安裝 kubectl 方法 # 方法一 下載來安裝 123curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"chmod +x kubectl # 可執行權限sudo mv kubectl /usr/local/bin # 放置到環境變數下 # 方法二 透過 apt # 添加 GPG key 與添加來源 12345echo "deb...