首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GKE - adb上运行android容器不附加到设备上。

在GKE - adb上运行android容器不附加到设备上。
EN

Stack Overflow用户
提问于 2019-08-02 08:22:15
回答 1查看 800关注 0票数 4

我试图在GKE上运行android模拟器容器。为此,我使用伙伴/码头-android开源。

首先,我试图在本地运行它:

代码语言:javascript
复制
$ sudo  docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 4723:4723 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" --name android-container budtmo/docker-android-x86-8.1

然后我连接到设备上,使用:

代码语言:javascript
复制
$ adb connect localhost:5555

我看到了那个装置:

代码语言:javascript
复制
>> $ adb devices
List of devices attached
localhost:5555  device

工作得很好!

,现在我想在GKE上做同样的事情:

这是吊舱:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: android
  labels:
    app: android
spec:
  containers:
  - name: android
    image: budtmo/docker-android-x86-8.1
    securityContext:
      privileged: true   
    ports:
    - containerPort: 6080
    - containerPort: 5554
    - containerPort: 5555
    - containerPort: 4723
    env:
    - name: DEVICE
      value: "Samsung Galaxy S6"

这是服务:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: android-service
spec:
  ports:
  - port: 6080
    name: serving
    protocol: TCP
  - port: 5555
    name: srv
    protocol: TCP
  - port: 5554
    name: srv2
    protocol: TCP
  - port: 4723
    name: novnc
    protocol: TCP
  selector:
    app: android
  type: LoadBalancer
  loadBalancerIp: "35.X.X.X"

然后,我试图连接到模拟器(从我的计算机),但在它声称它已连接之后,我没有看到任何附加的设备:

代码语言:javascript
复制
>> $ adb connect 35.X.X.X:5555
connected to 35.X.X.X:5555
>> $ adb devices
List of devices attached
*empty*

我还试图从GKE终端本地连接:

代码语言:javascript
复制
adb connect 35.X.X.X:5555
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to 35.X.X.X:5555

然后再一次:

代码语言:javascript
复制
>> $ adb devices
List of devices attached
*empty*     

知道问题出在哪里了吗?我该怎么解决呢?

EN

回答 1

Stack Overflow用户

发布于 2019-08-09 14:07:07

复制您的步骤,唯一的区别是:我没有指定服务中的loadBalancerIp

代码语言:javascript
复制
---
apiVersion: v1
kind: Pod
metadata:
  name: android
  labels:
    app: android
spec:
  containers:
  - name: android
    image: budtmo/docker-android-x86-8.1
    securityContext:
      privileged: true
    ports:
    - containerPort: 6080
    - containerPort: 5554
    - containerPort: 5555
    - containerPort: 4723
    env:
    - name: DEVICE
      value: "Samsung Galaxy S6"

---
apiVersion: v1
kind: Service
metadata:
  name: android-service
spec:
  ports:
  - port: 6080
    name: serving
    protocol: TCP
  - port: 5555
    name: srv
    protocol: TCP
  - port: 5554
    name: srv2
    protocol: TCP
  - port: 4723
    name: novnc
    protocol: TCP
  selector:
    app: android
  type: LoadBalancer

其结果是,只要有yaml,一切都能按预期工作:

代码语言:javascript
复制
kubectl get po,svc
NAME          READY   STATUS    RESTARTS   AGE
pod/android   1/1     Running   0          14m

NAME                      TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)                                                       AGE
service/android-service   LoadBalancer   10.0.1.238   *.*.*.54   6080:31952/TCP,5555:30822/TCP,5554:30806/TCP,4723:30248/TCP   14m

来自本地电脑:

代码语言:javascript
复制
adb connect *.*.*.54:5555
already connected to *.*.*.54:5555

adb devices
List of devices attached
*.*.*.54:5555   offline
emulator-5554   device
localhost:5555  device
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57322523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档