快訊!我的新書今天開始可以在天瓏網路書店預購啦!歡迎大家前往訂購!
>>>> AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題 <<<<

Cloud

  • ,

    如何把docker image推到AKS

    請參考此說明: https://docs.docker.com/cloud/aci-integration/ 首先請登入Azure 會跳出瀏覽器登入Azure的帳號和docker做連接 接著創立aci的context 使用docker context ls可以檢視現在有哪些context 接著這樣就可以把image部屬上AKS了 推送自建的container https://learn.microsoft.com/zh-tw/training/modules/intro-to-containers/7-exercise-deploy-docker-image-to-container-instance 1.建立容器 2. 改名並推送上去

  • Modern data architecture on AWS

    為什麼會需要現代資料架構 數據量正以前所未有的速度增長,從 TB 級激增到 PB 級,有時甚至達到 EB 級。傳統的本地數據分析方法無法處理這些數據量,因為它們的擴展性不夠好並且成本太高。許多公司正在從各個孤島獲取所有數據,並將所有數據聚合到一個位置(許多人稱之為數據湖),以便直接在這些數據之上進行分析和機器學習。有時,這些公司將其他數據存儲在專門構建的數據存儲中,以分析結構化和非結構化數據并快速獲得見解。這種數據移動可以是“由內而外”、“由外而內”、“圍繞周邊”或“跨區域共享”,因為數據具有重力。 什麼是數據湖? 數據湖是一個集中式存儲庫,允許您存儲任意規模的所有結構化和非結構化數據。您可以按原樣存儲數據,而無需首先構建數據,並運行不同類型的分析 – 從儀表板和可視化到大數據處理、實時分析和機器學習,以指導更好的決策。 含括各種不同類型的存儲 在數據湖架構中,資料庫通常用於存儲結構化數據或半結構化數據,這些數據可能來自企業應用系統、交易數據、用戶資訊等。資料庫提供了結構化的數據儲存和查詢功能,並且支援事務處理,這使得它適合存儲需要高度結構化的數據。 除了資料庫,數據湖還可以包括其他類型的存儲,如: 總的來說,數據湖是一個集中式的、可擴展的數據存儲和管理架構,它可以包括多種不同類型的存儲,以容納不同格式和來源的數據。資料庫是數據湖中的一種重要存儲形式,但不是唯一的選擇,而根據應用需求,可以根據需要選擇不同的存儲技術和服務。 AWS 數據湖的基本支柱 數據湖基礎:Amazon S3、AWS Lake Formation、Amazon Athena、Amazon EMR 和…

  • ,

    軟件定義存儲(Software Defined Storage,SDS)介紹

    甚麼是SDS 軟件定義存儲(Software Defined Storage,SDS)是一種存儲技術的方法論,它通過軟件層面的控制和管理來處理存儲資源,使得存儲系統更加靈活、可擴展和易於管理。傳統的存儲系統通常使用專用的硬體設備和控制器來管理數據存儲,而軟件定義存儲採用軟件定義的方法,將存儲處理功能抽象出來,從而使得存儲資源可以根據需要進行分配和管理。 SDS的主要特色 SDS的工作原理 借助軟件定義的存儲,應用程序可以動態配置所需的容量、性能和保護的精確組合——不多也不少。SDS 為存儲帶來了服務器虛擬化為計算帶來的簡單性、效率和成本節約。它允許您消除低效的專用硬件,並使用更靈活、透明和自動化的系統。此外,該存儲解決方案可與現有存儲解決方案和雲配合使用。 SDS軟件通過虛擬數據平面對底層存儲進行抽象;這使得虛擬機(和應用程序)成為存儲配置和管理的基本單元。 通過在應用程序和可用資源之間創建靈活的分離,普及的虛擬機 管理程序 可以平衡應用程序所需的所有 IT 資源(計算、內存、存儲和網絡)。 SDS與Persistent Volumes SDS(軟件定義存儲)和Kubernetes中的Persistent Volumes(持久化存儲卷)是相關的概念,它們都涉及到在容器化環境中對存儲資源的管理。 Kubernetes是一個用於容器化應用程序管理和部署的開源平台,而Persistent Volumes(PV)是Kubernetes中用於持久化存儲的抽象層。PV允許將持久化存儲資源(例如Amazon EBS、Google Persistent Disk、NFS、Ceph等)與Kubernetes集群中的Pod相關聯,從而實現容器應用程序的持久化數據存儲。 Kubernetes的Persistent Volumes(PV)提供了對多種存儲技術的抽象,因此你可以使用多種技術來實現PV。以下是一些常見的PV實現技術: SDS則是一種更廣泛的存儲技術,它可以用來管理和處理各種存儲資源,並提供更高級別的抽象和自動化。在Kubernetes中,PV可以使用SDS技術來實現,例如使用Ceph、GlusterFS等SDS解決方案作為Kubernetes Persistent…

  • ,

    在K8S內ksoftirqd耗費大量CPU

    問題描述 我們在K8S內架設串流伺服器,在做loadtest時發現,當流量變高之後,K8S用來管理線程的cadvisor所調用的ksoftirqd會占掉非常大的CPU使用率,並導致整個worker node變得緩慢。 相關的問題說明請見: Debugging network stalls on Kubernetes 形成原因 這是因為當使用 Kubernetes 的 NodePort 來公開一個服務時,它將在每個工作節點上開放一個端口,以便外部可以連接到該端口,並將流量轉發到服務的後端 Pod 上。當流量高峰期間,可能會導致節點的 CPU 負載增加,並導致大量的 IRQ 請求,這是因為每個數據包都會觸發一次 IRQ 請求。 IRQ是甚麼 IRQ…

  • ,

    使用Helm來部署K8S

    Helm介紹 Helm 是一個 Kubernetes 包管理器,它可以幫助您在 Kubernetes 上部署和管理應用程序。Helm 允許您定義、安裝和升級 Kubernetes 應用程序,並且可以管理它們的依賴關係。 Helm 由兩部分組成:Helm CLI 和 Helm Charts。Helm CLI 是一個命令行界面,用於管理 Helm Charts。Helm Charts 是一個包含 Kubernetes 资源描述文件的打包文件,例如 Deployment、Service、Ingress、ConfigMap…

  • , ,

    Prometheus Exporter: json-exporter

    甚麼是JSON Exporter JSON Exporter是一個Prometheus的exporter(指標收集器),它能夠從提供JSON格式的API中收集指標數據,並將這些數據轉換為Prometheus所支持的格式,以便Prometheus進行分析和視覺化。 JSON Exporter的運行方式是通過設置JSON配置文件,其中包括API端點和相關的指標數據,然後使用Prometheus的配置文件將JSON Exporter添加到Prometheus的targets列表中。 JSON Exporter可以收集各種不同類型的指標數據,例如計數器(counters)、量規(gauges)和直方圖(histograms)等,並可以根據需要對數據進行轉換和聚合。 如何設置Exporter 在官方的Writing exporters文件中,有下面這一段 Each exporter should monitor exactly one instance application, preferably sitting right beside it…

  • , ,

    HorizontalPodAutoscalers by customize metric

    設定擴充的行為,sacle down及up的時候所做的行為,這邊的設定是假如維持300秒都穩定相同狀況,則做HPA縮放,最少維持這種狀態60秒,一次增加1個Pod​ 這邊則設定要參考的數值,若是要使用自訂義資料,則describedObject這邊要設定的與我們在Rules裡面設定的一致,target部分則設定每一個pods的目標值為多少​ 下面scaleTargetRef的部分則是設定要做HPA的目標是甚麼,有可能是Services,這邊做HPA的目標則為Pod​ stream_total_clients_by_pod是我們的客製化變數,這個變數是來自於普羅米修斯,要把普羅米修斯的變數給k8s使用,請參見 http://claire-chang.com/2022/12/16/prometheus-rule-for-alert/ 這邊很重要的是可以看到label裡面有name: eventqueue,在Prometheus Rule裡一定也要加上labels: service: eventqueue 這樣這個值才會可以被輸出給普羅米修斯使用 如下圖: 其他更多的設定值請見: https://docs.openshift.com/container-platform/4.9/nodes/pods/nodes-pods-autoscaling.html​

  • ,

    查看普羅米修斯某的POD內所有的值

    Prometheus 指令 使用的指令如下: 解釋如下: 設定ServiceMonitor 在可以看到所有的值之後,就可以確認你的ServiceMonitor是否正確,可以來設定ServiceMonitor讓普羅米修斯監控正確的對象 以下為一個簡單的範例 更多關於ServiceMonitor可用的設定值請見:https://docs.openshift.com/container-platform/4.9/rest_api/monitoring_apis/servicemonitor-monitoring-coreos-com-v1.html

  • ,

    使用kubectl進入某個pod裡的某個container的指令

    使用kubectl進入container 若要使用 kubectl 進入某個 pod 裡的某個 container,您可以使用 kubectl exec 命令。以下是一個範例指令: 在這裡,請將 <pod_name> 替換為您想要進入的 pod 的名稱,將 <container_name> 替換為您想要進入的 container 的名稱。這個指令會使用 /bin/bash shell 進入 container,如果該 container 沒有…

  • ,

    查看普羅米修斯監控目標的exporter資訊

    Prometheus Target 普羅米修斯 (Prometheus) 是一套開源的監控系統,其中一個重要的功能就是監控 Service (服務) 的運作狀態,這個功能被稱為 Service Monitoring。 Service Monitoring 可以藉由 exporter,透過定義 HTTP endpoints 的方式,監控這些服務的運作狀態。普羅米修斯會定期呼叫這些 endpoints ,並且收集回應的 metrics 以了解服務是否正常運作、服務的吞吐量、延遲、錯誤率等相關資訊。 Service Monitoring 可以提供以下的監控能力: 監控服務的可用性,例如偵測服務是否還在運作、是否正常回應等等。…


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!