国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s自定義Endpoint實(shí)現(xiàn)內(nèi)部pod訪問(wèn)外部應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了k8s自定義Endpoint實(shí)現(xiàn)內(nèi)部pod訪問(wèn)外部應(yīng)用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

自定義endpoint實(shí)現(xiàn)內(nèi)部pod訪問(wèn)外部應(yīng)用

endpoint除了可以暴露pod的IP和端口還可以代理到外部的ip和端口

使用場(chǎng)景

  1. 公司業(yè)務(wù)還還沒(méi)有完成上云, 一部分云原生的,一部分是實(shí)體的

  2. 業(yè)務(wù)上云期間逐步實(shí)現(xiàn)上云,保證各個(gè)模塊之間的解耦性

比如使用云數(shù)據(jù)庫(kù)或者實(shí)體數(shù)據(jù)庫(kù)服務(wù)器啥的,因?yàn)橄駭?shù)據(jù)庫(kù)實(shí)現(xiàn)容器化的話在實(shí)際生產(chǎn)環(huán)境中是不推薦的

所以一些靜態(tài)服務(wù)上云以后pod還是需要訪問(wèn)外部應(yīng)用服務(wù)的

k8s的Endpoint自定義實(shí)驗(yàn)

還是用tomcat+mysql的zrlog來(lái)實(shí)驗(yàn)

首先準(zhǔn)備好tomcat的zrlog代碼,我直接用上個(gè)博文實(shí)驗(yàn)用的yaml文件,因?yàn)楝F(xiàn)在主要探討的是pod通過(guò)service與外部網(wǎng)絡(luò)通信

[root@server153 test]# cat tomcat-deploy.yaml 
apiVersion: v1
kind: Service  # 聲明版本為Service
metadata:
  name: tomcat-service   # 定義Service的名字
  labels:
    name: show-tomcat-pod    # 定義Service的標(biāo)簽
spec:
  type: NodePort   # 定義Service的類型,自動(dòng)分配一個(gè)集群serviceip
  selector:
    app: tomcat-deploy   #定義標(biāo)簽選擇器,會(huì)代理后端app=tomcat-deploy的Pod
  ports:
  - port: 80   #內(nèi)部暴露的端口    
    targetPort: 8080  #代理的pod的端口 
    nodePort: 31111 #暴露給主機(jī)外部訪問(wèn)的端口(default: 30000-32767)

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tomcat-deploy
  name: tomcat-deploy
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: tomcat-deploy
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: tomcat-deploy
    spec:
      #創(chuàng)建init容器
      initContainers:
        #代碼鏡像
      - image: www.test.com/mytest/zrlog:v1
        #init容器名字
        name: init
        #將代碼復(fù)制到匿名數(shù)據(jù)卷
        command: ["cp","-r","/tmp/ROOT.war","/www"]
        #將匿名數(shù)據(jù)卷掛載到容器中的/www目錄下
        volumeMounts:
        - mountPath: /www
          name: tomcat-volume
      #創(chuàng)建tomcat容器
      containers:
      - image: oxnme/tomcat
        imagePullPolicy: Always
        name: tomcat
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        #將數(shù)據(jù)卷掛載到tomcat的代碼目錄下
        volumeMounts:
        - mountPath: /usr/local/tomcat/webapps/
          name: tomcat-volume
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 10

      #創(chuàng)建匿名數(shù)據(jù)卷
      volumes:
      - name: tomcat-volume
        emptyDir: {}

tomcat的文件yaml文件這樣就可以了,還是暴露主機(jī)的31111端口

然后就去配置我們的mysql數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)并創(chuàng)建一個(gè)連接數(shù)據(jù)庫(kù)的用戶,給與權(quán)限

[root@server160 ~]# mysql -uroot -pMySQL@666


mysql> CREATE USER 'zrtest'@'%' IDENTIFIED BY 'MySQL@666';
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE DATABASE Zrlog;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `Zrlog`.* TO 'zrtest'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Zrlog              |
| mysql              |
| performance_schema |
| sys                |
| zabbix             |
+--------------------+
6 rows in set (0.00 sec)

數(shù)據(jù)庫(kù)這樣就配置好了

然后去配置我們自定義的Endpoint 和service

[root@server153 test]# cat endpoint.yaml 
apiVersion: v1
kind: Endpoints
metadata: 
  name: mysql
  namespace: default
#指定自定義的point的目標(biāo)地址
subsets:
- addresses:
  #外部的reids ip
  - ip: 192.168.121.160
  # 外部redis的真實(shí)的工作端口
  ports:
   - port: 3306
     # 定義端口的名稱,必須與 service 中的 ports.name 一致
     name: mysqlport
---
#這里的service配置大家都熟悉了,主要就是上面的endpoint而已
kind: Service
apiVersion: v1
metadata:
  name: mysql
  namespace: default
spec:
  ports:
  - port: 3306
    protocol: TCP
    name: mysqlport
    targetPort: 3306
  type: ClusterIP

這樣配置就可以了,然后執(zhí)行配置文件

[root@server153 test]# kubectl apply -f tomcat-deploy.yaml 
[root@server153 test]# kubectl apply -f endpoint.yaml 

然后去查看mysql endpoint的詳細(xì)信息

[root@server153 test]# kubectl describe endpoints mysql 
Name:         mysql
Namespace:    default
Labels:       <none>
Annotations:  <none>
Subsets:
  Addresses:          192.168.121.160
  NotReadyAddresses:  <none>
  Ports:
    Name       Port  Protocol
    ----       ----  --------
    mysqlport  3306  TCP

Events:  <none>

還有service的信息

[root@server153 test]# kubectl describe services mysql 
Name:              mysql
Namespace:         default
Labels:            <none>
Annotations:       <none>
Selector:          <none>
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.1.30.160
IPs:               10.1.30.160
Port:              mysqlport  3306/TCP
TargetPort:        3306/TCP
Endpoints:         192.168.121.160:3306
Session Affinity:  None
Events:            <none>

可以看到service是代理到了160主機(jī),然后去瀏覽器訪問(wèn)31111端口安裝測(cè)試

k8s 自定義endpoint,k8s,kubernetes,firefox,容器

k8s 自定義endpoint,k8s,kubernetes,firefox,容器

k8s 自定義endpoint,k8s,kubernetes,firefox,容器

查看數(shù)據(jù)庫(kù)內(nèi)容

mysql> use Zrlog;
mysql> show tables;
+-----------------+
| Tables_in_Zrlog |
+-----------------+
| comment         |
| link            |
| log             |
| lognav          |
| plugin          |
| tag             |
| type            |
| user            |
| website         |
+-----------------+
9 rows in set (0.00 sec)

可以看到安裝完畢就是這樣的,只靠service的自動(dòng)發(fā)現(xiàn)服務(wù)是沒(méi)辦法訪問(wèn)到外部網(wǎng)絡(luò)的

所以自定義的Endpoint作用就體現(xiàn)出來(lái)了,這個(gè)還是比較有必要了解的

因?yàn)閿?shù)據(jù)庫(kù)數(shù)據(jù)的特殊性,一般是不容器化的

希望對(duì)大家有幫助文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-822068.html

到了這里,關(guān)于k8s自定義Endpoint實(shí)現(xiàn)內(nèi)部pod訪問(wèn)外部應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【K8S】外部訪問(wèn)請(qǐng)求原理流程(service、kube-proxy、pod的關(guān)系)

    【K8S】外部訪問(wèn)請(qǐng)求原理流程(service、kube-proxy、pod的關(guān)系)

    用戶發(fā)起請(qǐng)求,請(qǐng)求傳送到Ingress Ingress :作用是定義請(qǐng)求如何轉(zhuǎn)發(fā)到service的規(guī)則,ingress支持7層代理轉(zhuǎn)發(fā),它可以通過(guò)根據(jù)不同的域名或者URL訪問(wèn)路徑把請(qǐng)求流量轉(zhuǎn)發(fā)到不同的service上,實(shí)現(xiàn)調(diào)度不同業(yè)務(wù)域、不同URL訪問(wèn)路徑的業(yè)務(wù)流量。 Service: 提供了服務(wù)的負(fù)載均衡和反向代

    2024年01月17日
    瀏覽(25)
  • k8s~ingress_service_endpoint_pod四壯士

    k8s~ingress_service_endpoint_pod四壯士

    在Kubernetes中,Service和Endpoints是兩個(gè)重要的概念,它們之間存在著密切的關(guān)系。 Ingress :Ingress是一個(gè)k8s環(huán)境的網(wǎng)關(guān),正常情況下,你外部的流量應(yīng)該先指向ingress所有節(jié)點(diǎn)的IP,ingress的端口默認(rèn)是80(http)和443(https),然后再由ingress進(jìn)行域名傳發(fā)到具體的service或者deployment上面。在

    2024年02月04日
    瀏覽(95)
  • K8S集群實(shí)現(xiàn)外部訪問(wèn)(INGRESS)

    K8S集群實(shí)現(xiàn)外部訪問(wèn)(INGRESS)

    環(huán)境: master node01 node02 192.168.1.40 192.168.1.41 192.168.1.42 作用:Ingress 是對(duì)集群中服務(wù)的外部訪問(wèn)進(jìn)行管理的 API 對(duì)象。 PS:創(chuàng)建nginx和httpd PS:namespace為ingress-nginx PS:它現(xiàn)在已經(jīng)有一個(gè)模板,用來(lái)描述Ingress資源能夠收集到的信息了 PS:有DNS的話可以設(shè)置解析,沒(méi)有的話必須在h

    2024年01月19日
    瀏覽(24)
  • k8s實(shí)現(xiàn)外部訪問(wèn)minikube集群

    我們現(xiàn)在大家都知道了 minikube集群相當(dāng)于k8s的一個(gè)虛擬機(jī)。 同時(shí)pod每次消亡重建之后都會(huì)分配一個(gè)虛擬的ip,這個(gè)ip可供集群內(nèi)部訪問(wèn),但是如果要對(duì)外訪問(wèn)呢? 我們可以給他暴露ip出來(lái),但是如果pod宕機(jī)后重建ip就發(fā)生了變化,所以不能對(duì)pod進(jìn)行ip的暴露。 那應(yīng)該對(duì)什么進(jìn)行

    2024年02月03日
    瀏覽(27)
  • 持續(xù)集成部署-k8s-服務(wù)發(fā)現(xiàn)-Service:Service、Endpoint、Pod之間的關(guān)系與原理

    在 Kubernetes 中, Service 是一種抽象的邏輯概念,用于將一組具有相同功能的 Pod 組合成一個(gè)邏輯服務(wù)。 Service 提供了一種穩(wěn)定的 IP 地址和 DNS 域名,供客戶端訪問(wèn)這個(gè)邏輯服務(wù)。同時(shí), Service 還提供了負(fù)載均衡、會(huì)話保持等功能,可以很方便地實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)與調(diào)用。 在 Kuber

    2024年02月06日
    瀏覽(35)
  • K8S內(nèi)部pod之間相互調(diào)用案例和詳解

    K8S內(nèi)部pod之間相互調(diào)用案例和詳解

    目錄 一、部署nginx容器 二、部署tomcat服務(wù) 三、使用nginx代理tomcat服務(wù) 四、測(cè)試 1、service是用于K8S的服務(wù)發(fā)現(xiàn)的重要組件,pod作為運(yùn)行業(yè)務(wù)的承載方式,要想被客戶端訪問(wèn)或者集群內(nèi)部其它服務(wù)訪問(wèn),就需要提供一個(gè)訪問(wèn)入口; ?2、傳統(tǒng)來(lái)說(shuō)ip+端口是普適的訪問(wèn)方式,但是

    2024年02月03日
    瀏覽(26)
  • k8s如何訪問(wèn) pod 元數(shù)據(jù)

    k8s如何訪問(wèn) pod 元數(shù)據(jù)

    **我們?cè)?pod 中運(yùn)行容器的時(shí)候,是否也會(huì)有想要獲取當(dāng)前 pod 的環(huán)境信息呢?**咱們寫(xiě)的 yaml 清單寫(xiě)的很簡(jiǎn)單,實(shí)際上部署之后, k8s 會(huì)給我們補(bǔ)充在 yaml 清單中沒(méi)有寫(xiě)的字段,那么我們的 pod 環(huán)境信息和容器的元數(shù)據(jù)如何傳遞到容器中呢?是不是也是通過(guò)獲取這些 k8s 默認(rèn)給

    2024年02月16日
    瀏覽(28)
  • 玩轉(zhuǎn)k8s(四)—— 通過(guò)Service訪問(wèn)Pod

    ????????我們不應(yīng)該期望k8s Pod是健壯的,而是要假設(shè)Pod中的容器很可能因?yàn)楦鞣N原因發(fā)生故障而死掉。Deployment等Controller會(huì)通過(guò)動(dòng)態(tài)的創(chuàng)建和銷毀Pod來(lái)保證應(yīng)用整體的健壯性。換句話說(shuō), Pod是脆弱的,但應(yīng)用是健壯的 。 ? ? ? ? 每個(gè)Pod都有自己的IP地址,當(dāng)Controller用新的

    2024年02月05日
    瀏覽(20)
  • K8S之使用yaml格式定義pod

    2024年02月09日
    瀏覽(20)
  • k8s配置ingress訪問(wèn)集群外部資源

    使用ingress訪問(wèn)外部資源,首先需要?jiǎng)?chuàng)建service指向我們需要訪問(wèn)的資源 而每個(gè)service包含一個(gè)endpoint endpoint是k8s集群中的一個(gè)資源對(duì)象,存儲(chǔ)在etcd中,用來(lái)記錄一個(gè)service對(duì)應(yīng)的所有pod的訪問(wèn)地址。service配置selector,endpoint controller才會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的endpoint對(duì)象;否則,不會(huì)生

    2024年02月09日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包