如何在管道中使用 kubernetes-plugin 访问另一个容器的容器端口

How to access a container port of another container using kubernetes-plugin in pipeline

我正在尝试从一个容器访问一个暴露的端口到同一节点内的另一个容器,但我不知道如何在管道中使用 kubernetes 插件来做到这一点。

在我的脚本中,我创建了两个容器并公开了一个数据库容器的端口,在另一个容器中,我试图访问主机的 1521 端口。

def label = "mypod-${UUID.randomUUID().toString()}"
podTemplate(label: label, containers: [
    containerTemplate(name: 'oracle', image: 'repo:5000/ng-oracle:latest',privileged: true, ttyEnabled: true, command: 'cat', ports:[
        portMapping(name: 'oracle1', containerPort: 1521, hostPort: 1521),
        portMapping(name: 'oracle2', containerPort: 22, hostPort: 2222),
    ]),
    containerTemplate(name: 'maven', image: 'repo:5000/ng-satelites:4', ttyEnabled: true, command: 'cat')
  ]) {
        node(label) {
            stage('all') {
                container('maven') {
                    stage('test-db') {
                        sh 'curl $(/sbin/ip route|awk \'/default/ { print  }\'):1521'
                    }
                }
            }
        }
}

在 Kubernetes POD 内,所有容器 'see each other' 通过 localhost。因此,您应该能够从 localhost:1521 上的 maven 容器连接到 oracle 容器。