Alan's BLOG
  • archives
  • posts
  • tags
  • about
  • quote
  • search
Home » Tags

devops

k8s-reloader

👨‍💻簡介 有時候修改掛載的config檔,無法即時更新,需要重啟pod才會生效,為了解決這個問題,k8s-reloader因此而誕生,透過觀察掛載的configmap或是secret的變化自動對掛載的物件做滾動更新。 以下為在minikube環境下,透過掛載nginx-config檔並搭配reloader這個插件進行熱部署。 🔗github-repo : stakater/Reloader: A Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig – [✩Star] if you’re using it! (github.com) 🔰基礎介紹 運作原理 Reloader偵測所有資源變化,對有變化的資源使用SHA1計算資源的哈西值 Reloader查看是否有設定相關的annotation,並查看有設定annotation資源的特殊環境變量 對有設定annotation的資源比對其哈希值,如果環境變量中哈希值不同,則更新環境變量,如果環境變量不存在,則創建一個 環境變量名稱 ConfigMap:STAKATER_{configmap_name}_CONFIGMAP ,比如 ConfigMap 的名稱為 foo,則生成的環境變量的名稱為:STAKATER_FOO_CONFIGMAP。 Secret:STAKATER_{secret_name}_SECRET ,比如 Secret 的名稱為 foo,則生成的環境變量的名稱為:STAKATER_FOO_SECRET。 環境變量的值 使用 SHA1 計算的 ConfigMap 或者 Secret 的哈希值。 版本需求 k8s版本需 >= 1.9 安裝方式 使用Manifests安裝 kubectl apply -f https://raw....

2022-11-11 · 2 min · 373 words · Alan

系統異常指標除錯

👨‍💻簡介 幫自己紀錄一下如何處理linux機器的指標 ...

2022-10-17 · 1 min · 164 words · Alan

K8S-monitor

📔心得 之前都介紹docker監控container,這次來點不一樣的,直接裝在k8s裡面去監控pod的一些指標。 基本的指標像是cpu, mem, pod數量, node數量等等,都能透過kube-state-metrics完成,而如果想要監控一些流量的指標,像是tcp連線數,tw數等,則是需要另外在服務的pod裡另外寫node-exporter的container,組成side-car的形式,讓exporter將指標送往prometheus。 在撰寫的過程,遇到比較大的難題是prometheus的config檔撰寫,一開始打算使用docker-compose的方式起monitor服務,然後去call k8s cluster取得相關指標,但常常call不到服務,可能是因為minikube的關係,在本地也跑docker,最後改成直接安裝在k8s裡面,另外建立一個namespace放監控相關的服務,有機會在測試kind以及k3s。 demo用的deploy使用skaffold這本地開發k8s的神器,搭配kustomize可讓我依據所需測試的環境下去做自動佈署,有機會再另外介紹這工具。 之後預計會再新增prometheus adapter,讓我的prometheus metrics可以成為我hpa的擴縮判斷,因為基本的hpa指標只有cpu以及mem,如果可以依照網路流量變大,幫我擴展pod,當流量變小時幫我縮pod,讓我能自定義指標,相信使用k8s的效益會更大。 🔗詳細專案位置 –> https://github.com/sz9751210/k8s-monitor ...

2022-10-17 · 1 min · 72 words · Alan

喬叔帶你上手Elastic Stack:Elasticsearch的最佳實踐與最佳化技巧

📚讀後心得 當初在研究Elastic Stack,ILM這部份還不熟時,剛好搜尋到喬叔的鐵人賽文章,閱讀時彷彿挖到了寶,對於Index的管理講解得非常透徹,從Index如何被建立,使用Template以及Alias,再到導入ILM以及搭配Rollover以及Shrink等方式達到索引、搜尋、儲存等最佳化,一步一步穩定順利的完成,真的很感動。 之前使用Elastic Stack並沒有使用到ILM的配置,所以單個Index可能會超過官方建議的大小,並且使用的是以一天為單位,但實務上並非每個服務都是固定的大小,因此導入ILM對於整體的效能會有更好的幫助,並且使用三溫暖架構,讓最新的log都放在效能較好的機器上,較舊的log則隨著自定義的時間轉移到效能較差的機器上,讓搜尋能有更好的體驗。 ...

2022-10-17 · 1 min · 24 words · Alan

在 GCP 環境下使用 Ansible 自動化建立 ELK Stack

📔心得 最近,我在探索 Ansible 自動化工具的過程中,決定運用它來建立 ELK Stack,這是我之前使用 Docker 建立的經驗的延伸。在這個過程中,我想分享一下我的學習心得。 尋找資源 我開始了解 ELK Stack 的安裝過程,首先閱讀了官方文件,熟悉了整個設置流程。接著,我尋找 Ansible 中相關的模組,這讓我更好地理解如何在 Ansible 中實現相同的步驟。 目錄結構的重要性 在撰寫 Ansible Playbook 過程中,我學到了良好的目錄結構是多麼重要。我從最初只有一個主要的 main.yml 開始,逐漸分解出根目錄下的多個 .yml 檔案,然後使用 include 來引入任務。這種結構讓整個 Playbook 更加模組化,易於管理。 使用模板和變數 在創建模板時,我發現了 Jinja2 語法的威力。我可以直接套用變數,這讓我的模板在複製到目標主機時能自動載入所需的參數。此外,我還學會了如何根據我的主機清單(inventory)來動態設定這些參數,這真是強大的功能。 感謝凍仁大的指南 我要特別感謝凍仁大(作者)的 Ansible 教程,我從他的 Ansible GitBook 中學到了許多寶貴的資訊。他的教程簡潔明瞭,對於初學者也非常友好。他的教程甚至提供了 Ansible 在使用 Docker Compose 方面的實際練習,這讓我能更好地掌握 Ansible 的操作技巧。另外,使用 Jupyter Notebook 執行 Ansible 模組也讓我的學習過程更加便利。 如果你對於 Ansible 自動化配置技巧感興趣,我推薦你閱讀這份凍仁大的 Ansible 指南,連結在下方: 🔗凍仁大ansible指南 –> 現代 IT 人一定要知道的 Ansible 自動化組態技巧 此外,我還將我使用 Ansible 建立 ELK Stack 的 Playbook 放在了以下的 GitHub 倉庫,歡迎參考:...

2022-10-17 · 2 min · 338 words · Alan

Portainer:一款圖形化容器管理工具

📔心得 一直以來都在使用container下去跑測試環境,所以都是使用docker指令下去做除錯,最近因緣際會下找到這一款可以透過UI看全部的container狀態,真的覺得好用到爆炸,所以來介紹一下這款容器化管理神器。 基本上能用docker指令做到的事情,portainer都能做到,像是docker ps,查看所有container,接著點擊某個container,就會顯示基本的container訊息。裡面能針對這個container查看logs,inspect,stat等等,功能非常齊全。 我自己最常使用的就是docker logs,透過UI可以直接點擊Logs查看,方便很多。 依照類型也會分出stack,container,image,network,volume等等,都可各別下去做新增,查看與管理,有時候東西建了忘記刪,這邊會顯示unused,打勾後就能一鍵移除。 portainer從拉image到deploy container都能透過ui完成,對於更新版本也是很有一套,可以透過設定pull latest並點擊recreate進行container的更新,對於常常使用container測試者真的是一大福音。 👨‍💻簡介 portainer主要讓我們能有個UI介面管理我們的docker,對於初學docker指令不太熟的使用者能快速進入docker的世界,並且可從docker hub一鍵拉取image,設定network、volume等進行快速部署,都可藉由portainer完成。 ...

2022-07-10 · 1 min · 88 words · Alan

CentOS 安裝docker 和 docker-compose

簡介 因常會在新機器跑container,藉此紀錄安裝過程,順便寫下腳本安裝懶人包 ...

2022-07-03 · 1 min · 184 words · Alan

ELFK-stack-monitor

📔心得 因最近在研究elk-stack,藉此紀錄一下使用docker-compose建立起elk-stack的架構,在建立的過程中,比較多遇到的是記憶體使用率的配置不足,導致容器無法成功啟動,或是config檔權限的問題,因此在filebeat的部分會直接把config檔放進去並改成root權限。 之後希望能再增加logstash的pipeline功能,在實務上可多個服務做篩選,以及elasticsearch的資料安全性配置SSL和叢集架構,並導入ILM做log的空間管理。 監控的部分則是拿之前做的小專案直接套用並呈現,所以整體流程大致上差不多,多了個elasticsearch_exporter,可查看更多elasticsearch的整體狀況,例如index、shard的數量,資料大小,寫入速率等等。 🔗詳細專案位置 –> ELFK-stack-monitor 👨‍💻簡介 🔰ELFK-stack:使用docker-compose建立起elk-stack的架構,主要先從alpine產生假資料並存到filebeat讀取的資料夾,接著filebeat將資料送往logstash,在實務上,會在logstash做filter的功能(未來會新增),接著送到elasticsearch存起來,並透過kibana的ui下去做搜尋所需的log資料。 🔰Monitor:使用cadvisor監控所有容器以及elasticsearch_exporter監控elasticsearch的狀態,並把資料送到prometheus儲存起來,最後透過grafana的ui呈現。 ...

2022-07-03 · 1 min · 45 words · Alan

TICK-Stack-tutorial

👨‍💻簡介 🔰ELFK-stack:使用docker-compose建立起tick-stack的架構,撈取的指標從config/telegraf.conf設定,並送往influxdb從起來,chronograf為ui介面,查看撈取的時間序列指標狀態,最後kapacitor則是處理告警的部分. 流程 ⚙️TICK-stack : telrgraf(送資料) -> influxdb(存資料) -> chronograf(ui) -> kapacitor(alert) 環境建置 本篇github repo在此 -> TICK_Stack-tutorial ...

2022-06-12 · 1 min · 159 words · Alan

Jenkins 安裝教學(CentOS)

CentOS 7 安裝及設定Jenkins 介紹 開源且免費的CI工具,由Java編寫的,提供了持續構建以及部署的功能,是一個自動化的server ...

2022-06-12 · 1 min · 132 words · Alan
« Prev 
© 2024 艾倫的程式之旅 Powered by Hugo & PaperMod