AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-155139

Drux's questions

Martin Hope
Drux
Asked: 2016-08-16 04:29:05 +0800 CST

创建 GCE 负载均衡器时出错:请求的地址 ip 既不是静态的也不是分配给 LB

  • 11

我有一种情况,Kubernetes 显然无法再将外部 IP 地址分配给kubectl create -f Deployment.yaml. kubectl describe service <my-service>报告以下错误:

CreatingLoadBalancerFailed    
Error creating load balancer (will retry): Failed to create load balancer 
for service default/<my-service>: requested ip <my-address> is 
neither static nor assigned to LB <id>(default/<my-service>): <nil>

但gcloud compute addresses list表示my-address是静态IP地址:

NAME          REGION        ADDRESS       STATUS
<my-address>  europe-west1  <ip-address>  RESERVED

并包含分配给负载均衡器Deployment.yaml的规范:<my-service><my-address>

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: my-app
ports:
  - protocol: UDP
    port: <my-port>
type: LoadBalancer
loadBalancerIP: <my-address>

特别奇怪的是:(几乎)相同的部署之前已经工作过。我已经尝试重新创建我的集群,但这也没有帮助。还有什么可能是错误的,我该如何克服错误以使我的服务再次可以从外部访问?

更新我已经保留了一个新的静态(这次也是全局)IP 地址,gcloud compute addresses create test-address --global并相应地将分配更改为 LB loadBalancerIP: test-address:。但同样的错误仍然存​​在。

更新如果我没有在 中指定loadBalancerIP,Deployment.yaml部署成功且没有错误,一个新的外部 IP 地址被分配给my-service。可以在此地址从外部 ping 服务。

更新如果我用 删除我以前的地址,用gcloud compute addresses delete my-address --region europe-west1提升新的外部地址gcloud compute addresses create --addresses <ip-address> --region europe-west1,然后用loadBalancerIP: my-address恢复的原始行重新部署Deployment.yaml,同样的错误再次出现。

google-compute-engine kubernetes google-kubernetes-engine
  • 4 个回答
  • 5027 Views
Martin Hope
Drux
Asked: 2016-08-13 00:53:03 +0800 CST

使用 SQL 视图代替带有 Asterisk 动态实时的表

  • 0

我曾希望我能够使用 SQL 视图而不是表来提供例如iaxusers并iaxpeers通过动态实时 (ARA) 提供给 Asterisk。

我刚刚注意到iaxpeersAsterisk 显然需要几个列来存储特定于对等点的信息:ipaddr, port, regseconds. 因此,简单的视图是行不通的。

有没有办法仍然使用视图,例如,iaxpeers或者我是否必须创建一个表,并可能使用触发器而不是视图的(更方便的)SELECT语句将它与我的核心数据结构(也是表)同步 - 推送而不是拉,可以这么说。(我正在使用 PostgreSQL,其视图显然是只读的。)

asterisk postgresql voip
  • 1 个回答
  • 196 Views
Martin Hope
Drux
Asked: 2016-08-12 21:56:20 +0800 CST

使用 CLI 检查 Asterisk 动态实时 (ARA) 配置

  • 0

通过添加以下行来配置 Asterisk 动态实时后/etc/asterisk/extconfig.conf,是否有任何方法可以检查 Asterisk CLI 级别的结果设置?

[settings]
iaxusers => odbc,mydb,iaxusers
extensions => odbc,mydb,extensions

例如,尽管报表iax2 show users和表格(实际上是视图)和SQL 数据库中包含应该是适当的行,但仍然从和分别dialplan show返回显然是静态配置的内容。/etc/asterisk/iax.conf/etc/asterisk/extensions.confodbc showConnected: Yesiaxusersextensionsmydb

我可以看到动态实时至少部分处于活动状态,因为如果我在相应的表尚不存在的情况下添加另一行,例如 for iaxpeersto ,然后(从 CLI 优雅地重新启动Asterisk 并发出) ,我会收到以下警告:/etc/asterisk/extconfig.confmodule unload chan_iax2.somodule load chan_iax2.so

WARNING[1426]: res_odbc.c:471 ast_odbc_find_table: 
Unable to retrieve database handle for table description 'iaxpeers@mydb'
asterisk voip
  • 1 个回答
  • 1030 Views
Martin Hope
Drux
Asked: 2016-08-06 23:21:31 +0800 CST

控制多个 Kubernetes 服务之间共享的 PD 的访问权限

  • -1

我有一个在两个 Kubernetes 服务之间共享的 PD。一旦服务在当前容器内运行服务器应用程序root(我可能会将其更改为,比如说,user1),其他服务运行 Docker 的Postgres 映像为postgres. 我想确保root(最终user1)和postgres对 PD 挂载点下方的某些目录具有读写访问权限,例如postgres应该“拥有”该目录/mnt/disk/my-pd/pgdata。

这可以在 Kubernetes 规范级别进行配置吗?如果不是,并且如果我必须在“外部”手动配置它,我是否可以假设 UID 和 GID 在整个集群中如何相互关联,即 Kubernetes(或标准 Docker 映像,例如postgres)是否包含某种目录服务将保持UID 例如postgres在整个集群中同步?

这是我的规范中与 Postgres 相关的部分的当前形式:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: postgres-deployment
spec:
  template:
    metadata:
      labels:
        app: postgres-app
    spec:
      containers:
      - name: postgres-container
        image: postgres
        env:
        - name: POSTGRES_PASSWORD
          valueFrom:
            secretKeyRef:
              name: my-secret
              key: postgres-password.txt
        - name: PGDATA
          value: /mnt/disk/my-pd/pgdata
        - name: POSTGRES_DB
          value: mydb
        ports:
        - protocol: TCP
          containerPort: 5432
        volumeMounts:
        - name: my-volume
          mountPath: /mnt/disk/my-pd
      volumes:
      - name: my-volume
        gcePersistentDisk:
          pdName: my-pd
          fsType: ext4
postgresql kubernetes google-kubernetes-engine
  • 1 个回答
  • 221 Views
Martin Hope
Drux
Asked: 2016-08-02 07:49:53 +0800 CST

从一个容器中的 MySQL 客户端连接到同一 pod 的另一个容器中的 MySQL 服务器

  • 0

我在一个 pod 中运行两个容器:一个基于debian:wheezy,另一个是mysql:5.6.

当我登录到第二个容器时,我可以mysql毫无问题地调用 MySQL 客户端。

当我登录到第一个容器并调用 MySQL 客户端mysql(之后apt-get install -y mysql-client)时,我收到以下错误消息:

ERROR 2002 (HY000): 
Can't connect to local MySQL server through socket 
'/var/run/mysqld/mysqld.sock' (2)

我认为这是因为这两个容器使用自己的文件系统,并且套接字仅存在于第二个容器中。

有没有一种简单的方法可以让 MySQL 客户端在第一个容器中工作,而 MySQL 服务器在第二个容器中运行并且仍然使用套接字?

mysql docker kubernetes google-kubernetes-engine
  • 1 个回答
  • 1232 Views
Martin Hope
Drux
Asked: 2016-07-31 21:59:42 +0800 CST

查看传入 mkfs.ext4 的扩展选项

  • 0

我正在使用两个块设备,其中一个使用特定配置而另一个不使用。我认为这一定与传递给mkfs.ext4.

我如何检查现有块设备的这些选项以进行详细比较。还有哪些其他(细微的)差异可能起作用?

filesystems ext4 mkfs
  • 1 个回答
  • 378 Views
Martin Hope
Drux
Asked: 2016-07-25 18:42:32 +0800 CST

在 Kubernetes 部署规范中使用环境变量

  • 20

我目前使用 Kubernetes 规范Deployment.yaml来部署服务。该规范包括对特定 IP 地址的逐字引用(标记<static-ip-address>如下):

spec:
  type: LoadBalancer
  loadBalancerIP: <static-ip-address>

我担心将密码或 IP 地址等信息推送到远程 Git 存储库中。我可以通过使用环境变量来避免这种情况,例如使用部署规范和实际部署大致如下:

spec:
   type: LoadBalancer
   loadBalancerIP: ${SERVICE_ADDRESS}

和

export SERVICE_ADDRESS=<static-ip-address>
kubectl create -f Deployment.yaml

显然,这种特定的语法还不起作用。但是这样的事情可能吗?如果可以,怎么办?

我宁愿不依赖单独的配置工具。Secret s 和ConfigMaps 看起来很有希望,但显然它们不能以适合此目的的方式使用。如果我可以直接引用使用它定义的静态 IP 地址gcloud compute addresses create service-address将是最好的。

environment-variables kubernetes google-kubernetes-engine
  • 4 个回答
  • 32291 Views
Martin Hope
Drux
Asked: 2016-07-25 10:04:58 +0800 CST

在 GKE 上构建和/或运行 Docker 映像之前预填充 GCE 永久磁盘

  • 2

我想构建一个 Docker 容器,然后在从 GCE 永久磁盘 (PD) 挂载一些目录后在 GKE 中运行它。例如,我希望应用程序的(读写)配置文件/etc/<application>/比它的 pod 寿命更长(它可能随时重新启动。)

常规构建将默认配置文件放入/etc/<application>/其中,并且必须以某种方式将这些文件从映像的临时磁盘“复制”一次到 PD 中,以便应用程序可以在其预期的环境中启动。

是否有实现这一目标的最佳实践?例如,我是否必须在我的 PD 中也挂载 PD Dockerfile,或者我是否可以在部署期间首次由 VM 实例挂载 PD 时以某种方式请求将 PD 与来自另一个目录/卷/磁盘的文件“同步”?

mount google-compute-engine docker kubernetes google-kubernetes-engine
  • 2 个回答
  • 415 Views
Martin Hope
Drux
Asked: 2016-07-25 07:29:20 +0800 CST

在公共 IP 地址上运行单副本 Kubernetes 服务且无需负载均衡

  • 1

我在 GKE/Kubernetes 中运行一项服务,该服务在 Staric IP 地址上公开单个 UDP 端口。(我已经从 GCE 中的临时 IP 地址提升了静态 IP 地址。)如果我使用以下字段部署它,则服务是可访问的。

spec:
  type: LoadBalancer
  loadBalancerIP: <static-ip-address>

但是,我不打算运行我的服务的多个副本,而且我什至不确定 GKE 的负载均衡器是否与 UDP 一起使用,因此我想尝试不使用。

以下替代配置尚不起作用。有了它,服务就会启动,但在不同的 IP 地址上,因此无法根据需要从外部访问。

spec:
  type: NodePort
  externalIPs:
  - <static-IP-address>

那么,在没有负载平衡器的情况下,在“自己的”静态 IP 地址上运行外部可见的服务是可能的,如果是这样的话怎么办?

更新进一步的进展表明工作平衡器也适用于 UDP,但它似乎仍然是多余的。

load-balancing udp google-compute-engine kubernetes google-kubernetes-engine
  • 1 个回答
  • 577 Views
Martin Hope
Drux
Asked: 2016-07-24 21:58:07 +0800 CST

Zoiper 软件电话无法使用 IAX2 注册到 Asterisk:导致连接被拒绝,原因代码 29

  • 2

我正在尝试配置一个 Zoiper 软件电话(iOS 应用程序版本),以便它可以连接到我的 Asterisk PBX。Zoiper 配置如下:

Account name: Account1
Server: <ip-address-of-my-asterisk-server>
User name: guest
Password: test
Caller ID: guest

在 Asterisk 服务器上,/etc/asterisk/iax.conf包含以下行:

[guest]
username=guest
type=friend
context=public
callerid="Guest IAX User"
secret=test
auth=md5

iax2 show users表示 Asterisk 知道这些设置。启用额外日志记录后,我会收到以下日志消息。实际上,Zoiper 向 Asterisk 的注册被拒绝(原因代码为 29)。可能出了什么问题,Zoiper 使用的是哪种 IAX 身份验证方法(我都尝试了md5,plaintext结果相同。)

(进一步的问题:Asterisk 是否提供(可选的)IAX2注册工具,为什么 Zoiper 显然会发送REGREL?)

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: REGREQ 
   Timestamp: 00002ms  SCall: 00209  DCall: 00000 [10.0.7.1:51130]
   USERNAME        : guest
   REFRESH         : 60
   CALLTOKEN       : Present
   FW BLOCK DATA   : 14 bytes

Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: CTOKEN 
   Timestamp: 00002ms  SCall: 00001  DCall: 00209 [10.0.7.1:51130]
   CALLTOKEN       : 51 bytes

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: REGREL 
   Timestamp: 00003ms  SCall: 00208  DCall: 00001 [10.0.7.1:51130]
   USERNAME        : guest
   CALLTOKEN       : 51 bytes
   FW BLOCK DATA   : 14 bytes

Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: REGREJ 
   Timestamp: 00003ms  SCall: 00001  DCall: 00208 [10.0.7.1:51130]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass:   REGREQ 
   Timestamp: 00003ms  SCall: 00209  DCall: 00000 [10.0.7.1:51130]
   USERNAME        : guest
   REFRESH         : 60
   CALLTOKEN       : 51 bytes
   FW BLOCK DATA   : 14 bytes

Tx-Frame Retry[-01] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: ACK    
   Timestamp: 00003ms  SCall: 06363  DCall: 00209 [10.0.7.1:51130]
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: REGREJ 
   Timestamp: 00001ms  SCall: 06363  DCall: 00209 [10.0.7.1:51130]
   Timestamp: 00003ms  SCall: 00001  DCall: 00208 [10.0.7.1:51130]
   CAUSE           : Registration Refused
   CAUSE CODE      : 29
asterisk voip
  • 1 个回答
  • 4856 Views
Martin Hope
Drux
Asked: 2016-07-23 23:42:30 +0800 CST

在 Asterisk 服务器上缺少有关 IAX2 注册尝试失败的日志

  • 3

我正在尝试通过 IAX2 使用 Asterisk 安装注册 VoIP 软电话(适用于 iOS 的 Zoiper 应用程序)。

目前,这会导致软件电话一侧出现错误消息“Registration Refused (29)”。

我可以从 Asterisk 方面获得有关此错误的更多信息吗?目前我在/var/log/asterisk/messages.

logging asterisk voip
  • 2 个回答
  • 3159 Views
Martin Hope
Drux
Asked: 2016-07-21 06:00:29 +0800 CST

Kubernetes 服务能否在多个挂载路径上挂载单个 GCE 磁盘的多个“部分”?

  • 1

我正在定义我的第一个 Kubernetes 部署,并想定义一个在两点安装持久存储的容器,比如这样(在Deployment.yaml里面spec.template.spec.containers.-):

volumeMounts:
- name: volume1
  mountPath: /var/log/app
- name: volume2
  mountPath: /var/lib/app

我从 Kubernetes 的MEAN 堆栈示例中了解到,我应该能够创建两个相应的 GCE 磁盘,如下所示:

gcloud compute disks create --size 10GB volume1
gcloud compute disks create --size 10GB volume2

我目前考虑使用两个磁盘而不是一个,因为我需要安装在两个不同的路径上。Kubernetes 服务能否在不同路径上挂载单个卷/磁盘的不同“部分”(可能是分区)?

的规范表明v1.VolumeMount这在服务规范级别可能是不可能的,因为它仅支持字段name、readOnly和mountPath。

这些答案表明它可能在 EXT4 分区级别上是可能的,但这将要求该卷是只读的。即使在只读情况下(不符合我的要求),我将如何创建带有分区的 GCE 磁盘?

(从StackOverflow迁移而来)

google-compute-engine kubernetes google-kubernetes-engine
  • 2 个回答
  • 1279 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve