亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

k8s 之 應用實踐-Service,Ingress

發布時間:2020-06-06 02:37:37 來源:網絡 閱讀:3098 作者:breaklinux 欄目:系統運維

1.背景;

? ? ? ? 由于簡化部署k8s 集群 ,公司的k8s 部署方案使用的是 kubeadm ,且跟進線上線下維度進行集群劃分,為何要使用kubeadm 主要有兩個原因:1.部署方便快捷,2.k8s節點擴容方便? 3.部署難度降低;?


2.系統環境;


系統版本內核版本etcd?備注
CentOS Linux release 7.5.18043.10.0-862.14.4.el7.x86_64etcdctl version: 3.3.11





3.相關組件版本;


kubeadmin 組件名稱組件版本名稱備注



k8s.gcr.io/kube-apiserver?



v1.13.4

kube-apiserver 是 Kubernetes 最重要的核心組件之一,主要提供以下的功能
  • 提供集群管理的 REST API 接口,包括認證授權、數據校驗以及集群狀態變更等

  • 提供其他模塊之間的數據交互和通信的樞紐(其他模塊通過 API Server 查詢或修改數據,只有 API Server 才直接操作 etcd)






k8s.gcr.io/kube-controller-manager?





v1.13.4

kube-scheduler 負責分配調度 Pod 到集群內的節點上,它監聽 kube-apiserver,查詢還未分配 Node 的 Pod,然后根據調度策略為這些 Pod 分配節點(更新 Pod 的?NodeName?字段)

調度器需要充分考慮諸多的因素:

  • 公平調度

  • 資源高效利用

  • QoS

  • affinity 和 anti-affinity

  • 數據本地化(data locality)

  • 內部負載干擾(inter-workload interference)

  • deadlines


k8s.gcr.io/kube-scheduler


v1.13.4

Controller Manager 由 kube-controller-manager 和 cloud-controller-manager 組成,是 Kubernetes 的大腦,它通過 apiserver 監控整個集群的狀態,并確保集群處于預期的工作狀態。



?k8s.gcr.io/kube-proxy



v1.13.4

每臺機器上都運行一個 kube-proxy 服務,它監聽 API server 中 service 和 endpoint 的變化情況,并通過 iptables 等來為服務配置負載均衡(僅支持 TCP 和 UDP)。

kube-proxy 可以直接運行在物理機上,也可以以 static pod 或者 daemonset 的方式運行。

k8s.gcr.io/pause3.1

Kubernetes為每個Pod都附屬了gcr.io/google_containers/pause:latest,這個容器只接管Pod的網絡信息,業務容器通過加入網絡容器的網絡來實現網絡共享。此容器隨著pod創建而創建,隨著Pod刪除而刪除,正如其名字“pause”

該容器是對業務pod的命名空間的解析。


k8s.gcr.io/coredns1.2.6DNS 是 Kubernetes 的核心功能之一,通過 kube-dns 或 CoreDNS 作為集群的必備擴展來提供命名服務。


weaveworks/weave

2.5.2

Weave Net是一個多主機容器網絡方案,支持去中心化的控制平面,各個host上的wRouter間通過建立Full Mesh的TCP鏈接,并通過Gossip來同步控制信息。這種方式省去了集中式的K/V Store,能夠在一定程度上減低部署的復雜性,



4.應用實踐;


(1).集群已經正常運行如下所示;


k8s 之 應用實踐-Service,Ingress


2.查看deployment 配置;

apiVersion:?extensions/v1beta1?
kind:?Deployment?
metadata:?
??name:?nginx-dp
spec:?
??selector:
????matchLabels:
??????app:?nginx-dp
??replicas:?1
??template:?
????metadata:?
??????labels:?
????????app:?nginx-dp?
????spec:?
??????containers:?
????????-?name:?nginx?
??????????image:?nginx:alpine?
??????????ports:?
????????????-?containerPort:?80


3.查看ervice 配置;


apiVersion:?v1
kind:?Service
metadata:
??name:?nginx-dp-cpf
spec:
??type:?NodePort
??ports:
??-?nodePort:?30001
????port:?80
????targetPort:?80
????protocol:?TCP
??selector:
????app:?nginx-dp


4.查看生成endpoints?


k8s 之 應用實踐-Service,Ingress


5.查看service 規則;

k8s 之 應用實踐-Service,Ingress


6.查看由kube-proxy 生成的iptables 防火墻規則; (正常規則)

k8s 之 應用實踐-Service,Ingress


注意:

? ? ? 1.如果防火墻規則出現 類似如下規則:

? ? ? ? -A KUBE-EXTERNAL-SERVICES -p tcp -m comment --comment "default/nginx-dp-cpf: has no endpoints" -m addrtype --dst-type LOCAL -m tcp --dport 30001 -j REJECT --reject-with icmp-port-unreachable

? ? ? 2.解決辦法;

? ? ? ? ?? (1).net.ipv4.ip_forward?= 1? #系統內核路由轉發功能

? ? ? ? ? ?(2).iptables -P FORWARD ACCEPT? #允許 iptables??FORWARD 鏈規則通過;

? ? ? ? ? ?(3).iptables -P?OUTPUT ACCEPT? #允許 iptables??OUTPUT?鏈規則通過;

? ? ? ? ? ?(4).檢查deployment?labels? 和 service?labels?設置是否關聯正確;

? ? ? ? ? ?(5).kubectl get endpoints? --show-labels? #注意此規則和防火墻規則匹配 若出現none 請檢查防火墻規則;


7.進行功能測試 (k8s 集群內進行測試);

k8s 之 應用實踐-Service,Ingress


8.ingress 部署;

#master?端執行;
kubectl?apply?-f?https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
kubectl?apply?-f?https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml

注意:?

? ? ? nodeSelector 字段 labels? 和 node labels 關聯; 否則運行ingres pod 出現 peding 狀態;

k8s 之 應用實踐-Service,Ingress


k8s 之 應用實踐-Service,Ingress


8.ingress 配置;

##配置yaml
apiVersion:?extensions/v1beta1
kind:?Ingress
metadata:
??name:?test-ingress
spec:
??rules:
??-?http:
??????paths:
??????-?path:?/
????????backend:
??????????serviceName:?test-nginx?
??????????servicePort:?80


###查看創建?ingress;

k8s 之 應用實踐-Service,Ingress

####測試訪問###

k8s 之 應用實踐-Service,Ingress


####基于域名多服務的 Ingress

路由到多服務的 Ingress 即根據請求路徑的不同轉發到不同的后端服務上,比如

www.breaklinux.com?->?10.109.21.77->?/test1?????s1:80
??????????????????????????????????—>?/test2??????s2:80
apiVersion:?extensions/v1beta1
kind:?Ingress
metadata:
??name:?test
spec:
??rules:
??-?host:?www.breaklinux.com
????http:
??????paths:
??????-?path:?/test1
????????backend:
??????????serviceName:?test-nginx
??????????servicePort:?80
??????-?path:?/test2
????????backend:
??????????serviceName:?nginx-dp-test-01?
??????????servicePort:?80

###虛擬主機 Ingress

apiVersion:?extensions/v1beta1
kind:?Ingress
metadata:
??annotations:
????nginx.ingress.kubernetes.io/configuration-snippet:?""
????nginx.ingress.kubernetes.io/proxy-body-size:?10240m
????nginx.ingress.kubernetes.io/proxy-read-timeout:?"36000"
????nginx.ingress.kubernetes.io/proxy-send-timeout:?"36000"
????nginx.ingress.kubernetes.io/rewrite-target:?/$1
????nginx.ingress.kubernetes.io/ssl-redirect:?"false"
??name:?test-nginx-ingess
spec:
??rules:
??-?host:?test-nginx-ingress.dev.k8s.chj.cloud
????http:
??????paths:
??????-?backend:
??????????serviceName:?test-nginx
??????????servicePort:?80?
????????path:?/?(.*)

? ##基于虛擬主機訪問測試#

##因為沒有dns 服務環境 綁定hosts 進行測試

cat?/etc/hosts

10.109.21.77???www.breaklinux.com?test-nginx-ingress.dev.k8s.chj.cloud

k8s 之 應用實踐-Service,Ingress


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延庆县| 闽清县| 曲阳县| 土默特右旗| 南投市| 台湾省| 龙里县| 敦煌市| 灵山县| 汨罗市| 志丹县| 三门峡市| 云和县| 吴江市| 固阳县| 习水县| 丰镇市| 西林县| 阿尔山市| 郑州市| 洛隆县| 凉城县| 方正县| 黎川县| 郁南县| 名山县| 苗栗县| 特克斯县| 兴城市| 交口县| 松原市| 孝义市| 肥乡县| 玉树县| 上饶市| 阿荣旗| 迁安市| 海门市| 保定市| 贺州市| 含山县|