7. kubernetes Service資源

7. kubernetes Service資源

[TOC]

本文基于馬哥的docker和k8s視頻總結, 在此致謝馬哥.

Service

工作模式: userspace, iptables, ipvs -> 四層代理

  • userspace: 1.1 -
  • iptables: 1.10 -
  • ipvs: 1.11 +

四種類型:

  • ClusterIP: 僅用于集群內部通信
  • NodePort: 接入集群外的流量
  • LoadBalancer: 依賴于底層LBAAS的云計算環(huán)境
  • ExternalName: 把集群外的服務引入集群內部, 可在集群內部直接使用

資源記錄:

  • SVC_NAME.NS_NAME.DOMAIN.LTD. (LTD: 資源域名后綴, 默認是svc.cluster.local.cluster.local.)
    • 例如: redis.default.svc.cluster.local.
kubectl explain svc

ClusterIP

apiVersion: v1
kind: Service
metadata: 
    name: redis # svc name
    namespace: default
spec:
    selector: # Service.spec.selector比較特殊, 只支持等值關系
        app: redis
        role: logstor
    clusterIP: 10.97.97.97 # 固定地址, 但此種方法極易沖突, 建議不指定, 讓系統(tǒng)自動分配
    type: ClusterIP
    # sessionAffinity: 默認是None(隨機調度), 定義為ClientIP時會將來自同一個client的IP調度至同一個后端pod
    ports:
    - name: redis-pod # 指明pod名稱
        port: 6379 # 對外提供服務的端口, 即service地址上的端口
        targetPort: 6379 # 容器的端口, 即pod地址上的端口
        # nodePort: 指明節(jié)點上的端口, 只有類型是NodePort才使用此項(在集群外被訪問時使用)
        # protocol: TCP 默認就是TCP
kubectl apply -f svc-demo.yml

kubectl describe svc redis
Name:              redis
Namespace:         default
Labels:            <none>
Annotations:       kubectl.kubernetes.io/last-applied-configuration:
                     {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"redis","namespace":"default"},"spec":{"clusterIP":"10.97.97.97","...
Selector:          app=redis,role=logstore
Type:              ClusterIP
IP:                10.97.97.97
Port:              redis-pod  6379/TCP
TargetPort:        6379/TCP
Endpoints:         10.244.1.34:6379 # 被Selector匹配到的后端地址
Session Affinity:  None
Events:            <none>

NodePort

  • Client請求 -> NodeIP:NodePort -> ServiceIP:ServicePort -> PodIP:ContainerPort
apiVersion: v1
kind: Service
metadata:
    name: nginx
    namespace: default
spec:
    selector:
        app: mynginx
        release: canary
    type: NodePort
    clusterIP: 10.99.99.99
    ports:
    - port: 80
        targetPort: 80
        nodePort: 30080 # 可以不指定, 系統(tǒng)動態(tài)分配, 默認范圍30000 - 32767
# 此時可被集群外訪問, 可看到請求會被負載均衡至node上的各pod
while true; do curl http://192.168.200.201:30080/hostname.html; sleep 1; done

ExternalName

  • FQDN 被coreDNS解析 (CNAME -> 真正的FQDN)
kubectl explain svc.spec.externalName

headless-Service

apiVersion: v1
kind: Service
metadata:
    name: myapp-svc
    namespace: default
spec:
    selector:
        app: mynginx
        release: canary
    clusterIP: None #  使用無頭service時這樣定義
    ports:
    - port: 80
        targetPort: 80
dig -t A myapp-svc.default.svc.cluster.local. @10.96.0.10
    # 可看到地址直接被10.96.0.10的DNS服務器解析為myapp的pod的IP
dig -t A myapp.default.svc.cluster.local. @10.96.0.10
    # 可以對比有頭服務
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末倘要,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子十拣,更是在濱河造成了極大的恐慌封拧,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夭问,死亡現(xiàn)場離奇詭異泽西,居然都是意外死亡,警方通過查閱死者的電腦和手機缰趋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門捧杉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陕见,“玉大人,你說我怎么就攤上這事味抖∑捞穑” “怎么了?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵仔涩,是天一觀的道長忍坷。 經常有香客問我,道長熔脂,這世上最難降的妖魔是什么佩研? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮锤悄,結果婚禮上韧骗,老公的妹妹穿的比我還像新娘。我一直安慰自己零聚,他們只是感情好,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布些侍。 她就那樣靜靜地躺著隶症,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岗宣。 梳的紋絲不亂的頭發(fā)上蚂会,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機與錄音耗式,去河邊找鬼胁住。 笑死,一個胖子當著我的面吹牛刊咳,可吹牛的內容都是我干的彪见。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼娱挨,長吁一口氣:“原來是場噩夢啊……” “哼余指!你這毒婦竟也來了?” 一聲冷哼從身側響起跷坝,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤酵镜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后柴钻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淮韭,經...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年贴届,在試婚紗的時候發(fā)現(xiàn)自己被綠了靠粪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜡吧。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖庇配,靈堂內的尸體忽然破棺而出斩跌,到底是詐尸還是另有隱情,我是刑警寧澤捞慌,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布耀鸦,位于F島的核電站,受9級特大地震影響啸澡,放射性物質發(fā)生泄漏袖订。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一嗅虏、第九天 我趴在偏房一處隱蔽的房頂上張望洛姑。 院中可真熱鬧,春花似錦皮服、人聲如沸楞艾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硫眯。三九已至,卻和暖如春择同,著一層夾襖步出監(jiān)牢的瞬間两入,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工敲才, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留裹纳,地道東北人。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓紧武,卻偏偏與公主長得像剃氧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子脏里,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內容