k8s 網路模式

2022-05-06 14:24:13 字數 1594 閱讀 1638

1、clusterip

kind: service

apiversion: v1

metadata:

name: my-service

spec:

selector:

ports:

- protocol: tcp

port: 80

targetport: 80

[root@k8s-master rc-test]#

kubectl get svc

name cluster-ip external-ip port(s) age

kubernetes 10.254.0.1 443/tcp 9d

my-service 10.254.233.44 80/tcp 16s

mysql none

3306/tcp 8d

[root@k8s-master rc-test]# kubectl get ep

name endpoints age

kubernetes 192.168.137.110:6443 9d

my-service 172.168.69.2:80,172.168.95.2:80 9m

mysql 172.168.69.3:3306 8d

此種方式可以在k8s內部使用,比如建立乙個busybox,在busybox上面,可以訪問10.254.233.44

在node上面,也可以使用endpoint的ip訪問,比如在master上面訪問172.168.69.2

2、nodeport

[root@k8s-master rc-test]# kubectl get svc

name cluster-ip external-ip port(s) age

kubernetes 10.254.0.1 443/tcp 10d

my-service 10.254.209.157 80:30062/tcp 5m

mysql none 3306/tcp 8d

[root@k8s-master rc-test]# kubectl get ep

name endpoints age

kubernetes 192.168.137.110:6443 10d

my-service 172.168.69.2:80,172.168.95.2:80 6m

mysql 172.168.69.3:3306 8d

相比clusterip,多了乙個node上面的介面,cluster的兩種方式還是可以訪問。

另外node ip方式也可以訪問了。

k8s網路基礎

為了保證網路方案的標準化 擴充套件性和靈活性,k8s 採用了 container networking inte ce cni 規範。cni 是由 coreos 提出的容器網路規範,它使用了外掛程式 plugin 模型建立容器的網路棧。它要求任何實現機制都必須滿足以下需求 因為k8s只約定了網路實現...

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

k8s解除安裝flannel網路

在工作中,由於不同的需求,需要更換cni外掛程式 此場景為,解除安裝flannel網路,更換為calico網路 建議 在生產場景中,建議提前規劃好k8s的網路,如果中途更換網路外掛程式,產生的影響會比較大 解除安裝flannel網路步驟 第一步,在master節點刪除flannel kubectl ...