1. 程式人生 > 其它 >k8s在pod內訪問叢集外部地址

k8s在pod內訪問叢集外部地址

一. 使用IP
apiVersion: v1
kind: Service
metadata:
  name: nginx-ip
spec:
  ports:
    - protocol: TCP
      port: 88
---
apiVersion: v1
kind: Endpoints
metadata:
  name: nginx-ip
subsets:
  - addresses:
      - ip: 43.138.153.80
    ports:
      - port: 80 # IP相關的埠,可以是外部連線埠,也可以是內部容器連線埠

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox
  labels:
    app: busybox
spec:
  replicas: 1
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
    spec:
      containers:
        - name: busybox
          image: appropriate/curl
          command: ["/bin/sh", "-c", "sleep 3600"]

在busybox容器中curl nginx-ip:88 即可訪問外部地址43.138.153.80

二. 使用域名
apiVersion: v1
kind: Service
metadata:
  name: "baiducom" # 設定 IP 14.215.177.39和www.baidu.com 錯誤,不允許'.'
spec:
  type: ExternalName
  externalName: "www.baidu.com" # 設定 IP 14.215.177.39 無效
  ports:
  - port: 443

# 所以 externalName 的意義就是為外部域名設定一個別名,如上 為 www.baidu.com 設定別名 baiducom,以便 pod 內容器使用
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox
  labels:
    app: busybox
spec:
  replicas: 1
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
    spec:
      containers:
        - name: busybox
          image: busybox
          command: ["/bin/sh", "-c", "sleep 3600"]

busybox中curl baiducom即可訪問百度