原创 自己動手用Golang實現約瑟夫環

繼上一篇單向鏈表,單線鏈表可以進一步擴展爲環,如下圖所示:特點:1、第一個節點稱爲頭部節點,最後一個節點稱爲尾部節點2、每個節點都單方面的指向下一個節點3、尾部節點下一個節點指向頭部節點題目:17世紀的法國數學家加斯帕講了這樣一個故事: 1

原创 自己動手用golang實現單向鏈表

單向鏈表特點:1、Head 節點 上一個節點爲空2、Tail 節點下一個節點爲空3、除Tail節點外,每個節點連接到下一個節點package main import (    "fmt" ) type LinkNode struct {

原创 K8S容器調度優先級誤設導致集羣雪崩踩坑記錄

        今天上班的時候,突然收到集羣很多容器調度失敗的告警,大致如下;                看到大量容器調度失敗,裏面查了下管理平臺,看看這個時間段內有沒有哪個業務發佈,果然發現有一個轉碼服務(CPU消耗性)的業務在這個時

原创 Prometheus kafka 消息隊列適配器

        最近工作上有個需求,需要把prometheus 採集到的數據上報到kafka消息隊列,看了下官方實現,prometheus 支持remote_write / remote_read 的方式擴展,可以在此基礎上做文章。   

原创 golang 學習筆記之字符串

golang 中字符串相關操作用得最多的基礎庫是 strings 和 strconv 1、strings.HasPrefix 判斷字符串開頭常見的場景是用來判斷服務地址是HTTP還是HTTPS 協議,例如:func main() {    

原创 【讀書筆記】13 爲什麼我們需要Pod

pod是kubernetes 的最小調度單位同一個pod中的容器,共享同一個network namespace ,同時可以聲明掛載同一個volume實現數據共享。具體實現方式是:通過一個叫infra 的中間容器將同一個pod的容器之間網絡連

原创 【讀書筆記】12 牛刀小試:我的第一個容器化應用

《深入剖析Kubernetes - 12  牛刀小試:我的第一個容器化應用》主要包括2個步驟:製作鏡像 和 編寫yaml配置文件(或json)以 nginx 的deployment 爲例apiVersion: apps/v1  kind: 

原创 ingress rollingUpdate 踩坑記錄

網上很多文檔都說deployment 配置readiness就可以實現無損rolling update,事實真的是這樣嗎?最近我們在生產環境發現一個現象,當deployment 定義的 replicas 實例數只有1個的時候,執行rolli

原创 【讀書筆記】11 從0到1 搭建一個完整的Kubernetes集羣

《深入剖析Kubernetes - 09  從容器到容器雲 談談Kubernetes的本質》1. 在所有節點上安裝 Docker 和 kubeadm;$ curl -s https://packages.cloud.google.com/a

原创 【讀書筆記】10 Kubernetes一鍵部署利器 kubeadm

《深入剖析Kubernetes - 09  從容器到容器雲 談談Kubernetes的本質》kubeadm 簡化部署操作,僅需要以下2個操作即可創建一個k8s 集羣# 創建一個 Master 節點 $ kubeadm init # 將一個

原创 【讀書筆記】09 從容器到容器雲 談談Kubernetes的本質

《深入剖析Kubernetes - 09  從容器到容器雲 談談Kubernetes的本質》kubernetes主要解決問題:服務編排、節點管理、任務調度kubernetes 節點角色:(1) Master :apiserver(提供 AP

原创 DNS NS Server 優選機制剖析

背景:        5月14號公司部分海外VM 出現解析異常的現象,如下所示:root@ubuntu:~ # nslookup  group003-test.aaa.com ;; Got SERVFAIL reply from 100.1