首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向aws route53发布kubernetes route53入侵URL

如何向aws route53发布kubernetes route53入侵URL
EN

Stack Overflow用户
提问于 2016-07-08 20:48:38
回答 2查看 6K关注 0票数 6

今天,当我在aws上使用kubernetes启动一个应用程序时,它公开了一个可公开显示的LoadBalancer route53 URL,但是为了将该应用链接到我的域以使公众可以访问该应用程序,我需要在每次启动时都手动进入aws route53控制台。我是否可以更新aws route53资源类型A,以匹配命令行中最新的Kubernetes LoadBalancer输入URL?

Kubernetes在gcloud上也面临这样的挑战:要么预先定义用于启动配置的静态IP,要么手动执行基于浏览器的域链接启动。在aws上,我希望可以从命令行中使用类似于此的内容。

代码语言:javascript
复制
aws route53domains update-domain-nameservers   ???

__或__,我可以预定义一个aws入侵,类似于在gcloud上执行预定义的静态IP吗?

显示已部署的应用程序的LoadBalancer侵入URL问题

代码语言:javascript
复制
kubectl describe svc

..。输出

代码语言:javascript
复制
Name:           aaa-deployment-407
Namespace:      ruptureofthemundaneplane
Labels:         app=bbb
            pod-template-hash=4076262206
Selector:       app=bbb,pod-template-hash=4076262206
Type:           LoadBalancer
IP:         10.0.51.82
LoadBalancer Ingress:   a244bodhisattva79c17cf7-61619.us-east-1.elb.amazonaws.com
Port:           port-1  80/TCP
NodePort:       port-1  32547/TCP
Endpoints:      10.201.0.3:80
Port:           port-2  443/TCP
NodePort:       port-2  31248/TCP
Endpoints:      10.201.0.3:443
Session Affinity:   None
No events.

更新:

尝试新命令行技术时出错(请向@error2007s注释提示).发这个

代码语言:javascript
复制
aws route53 list-hosted-zones

..。输出

代码语言:javascript
复制
{
    "HostedZones": [
        {
            "ResourceRecordSetCount": 6, 
            "CallerReference": "2D58A764-1FAC-DEB4-8AC7-AD37E74B94E6", 
            "Config": {
                "PrivateZone": false
            }, 
            "Id": "/hostedzone/Z3II3949ZDMDXV", 
            "Name": "chainsawhaircut.com."
        }
    ]
}

以下使用的重要位: hostedzone Z3II3949ZDMDXV

现在,我按照文件/Chang-Resource-Record-sets.json的格式编写用这个医生 (还有这位医生) (注意,我可以使用类似的cli调用成功地更改类型A.)不过,我需要用LoadBalancer侵入URL的别名目标更改类型A)

代码语言:javascript
复制
{
    "Comment": "Update record to reflect new IP address of fresh deploy",
    "Changes": [{
        "Action": "UPSERT",
        "ResourceRecordSet": {
            "Name": "chainsawhaircut.com.",
            "Type": "A",
            "TTL": 60,
            "AliasTarget": {
                "HostedZoneId": "Z3II3949ZDMDXV",
                "DNSName": "a244bodhisattva79c17cf7-61619.us-east-1.elb.amazonaws.com",
                "EvaluateTargetHealth": false
            }
        }
    }]
}

在命令行,然后我发出

资源记录集托管区域id file:///change-resource-record-sets.json更改批处理file:///change-resource-record-sets.json

提供此错误消息的

代码语言:javascript
复制
An error occurred (InvalidInput) when calling the ChangeResourceRecordSets operation: Invalid request

有什么见解吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-12 04:00:35

以下是更新aws route53资源记录类型A所需的逻辑,其值来自刚创建的kubernetes LoadBalancer Ingress

步骤1-通过发出

代码语言:javascript
复制
aws route53 list-hosted-zones

..。这里的输出是我的域的剪辑

代码语言:javascript
复制
"Id": "/hostedzone/Z3II3949ZDMDXV", 

..。重要的是,不要用hostedzone Z3II3949ZDMDXV填充json,它只用作cli parm。第二个类似的名称是令牌HostedZoneId,它完全不同。

步骤2-查看route53域记录的当前值.发行:

代码语言:javascript
复制
aws route53 list-resource-record-sets --hosted-zone-id Z3II3949ZDMDXV --query "ResourceRecordSets[?Name == 'scottstensland.com.']"

..。输出

代码语言:javascript
复制
[
    {
        "AliasTarget": {
            "HostedZoneId": "Z35SXDOTRQ7X7K", 
            "EvaluateTargetHealth": false, 
            "DNSName": "dualstack.asomepriorvalue39e7db-1867261689.us-east-1.elb.amazonaws.com."
        }, 
        "Type": "A", 
        "Name": "scottstensland.com."
    }, 
    {
        "ResourceRecords": [
            {
                "Value": "ns-1238.awsdns-26.org."
            }, 
            {
                "Value": "ns-201.awsdns-25.com."
            }, 
            {
                "Value": "ns-969.awsdns-57.net."
            }, 
            {
                "Value": "ns-1823.awsdns-35.co.uk."
            }
        ], 
        "Type": "NS", 
        "Name": "scottstensland.com.", 
        "TTL": 172800
    }, 
    {
        "ResourceRecords": [
            {
                "Value": "ns-1238.awsdns-26.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400"
            }
        ], 
        "Type": "SOA", 
        "Name": "scottstensland.com.", 
        "TTL": 900
    }
]

..。在上述通知价值

代码语言:javascript
复制
"HostedZoneId": "Z35SXDOTRQ7X7K", 

这是第二个类似的名称标记不要使用错误的托管区域ID

步骤3-将以下内容放入您的更改文件aws_route53_type_A.json (有关语法Doc,请参阅上文注释中提到的链接)

代码语言:javascript
复制
{
  "Comment": "Update record to reflect new DNSName of fresh deploy",
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "AliasTarget": {
            "HostedZoneId": "Z35SXDOTRQ7X7K", 
            "EvaluateTargetHealth": false, 
            "DNSName": "dualstack.a0b82c81f47d011e6b98a0a28439e7db-1867261689.us-east-1.elb.amazonaws.com."
        }, 
        "Type": "A", 
        "Name": "scottstensland.com."
      }
    }
  ]
}

标识上述字段"DNSName“的值.在aws上部署了kubernetes应用程序之后,它使用一个LoadBalancer输入进行响应,如cli命令的输出所示:

代码语言:javascript
复制
kubectl describe svc --namespace=ruptureofthemundaneplane

..。如图所示

代码语言:javascript
复制
LoadBalancer Ingress:   a0b82c81f47d011e6b98a0a28439e7db-1867261689.us-east-1.elb.amazonaws.com

..。尽管我的目标是执行命令行调用,但我可以通过进入aws控制台浏览器手动执行.在route53上打开我的域名..。

..。在这个浏览器选择列表可编辑文本框(绿色圈)中,我注意到URL神奇地加上了:dual堆栈。之前我错过了那根魔法绳..。所以json键"DNSName“想要这个

代码语言:javascript
复制
dualstack.a0b82c81f47d011e6b98a0a28439e7db-1867261689.us-east-1.elb.amazonaws.com.

最后执行更改请求

代码语言:javascript
复制
aws route53 change-resource-record-sets --hosted-zone-id Z3II3949ZDMDXV --change-batch file://./aws_route53_type_A.json

..。输出

代码语言:javascript
复制
{
    "ChangeInfo": {
        "Status": "PENDING", 
        "Comment": "Update record to reflect new DNSName of fresh deploy", 
        "SubmittedAt": "2016-07-13T14:53:02.789Z", 
        "Id": "/change/CFUX5R9XKGE1C"
    }
}

……现在,要确认更改是活动的,请运行此命令以显示记录

代码语言:javascript
复制
aws route53  list-resource-record-sets  --hosted-zone-id Z3II3949ZDMDXV  
票数 4
EN

Stack Overflow用户

发布于 2018-01-03 21:30:28

您还可以使用外部-dns项目。

AWS专用设置可以在这里找到

安装后,它可以与注释一起使用,例如:external-dns.alpha.kubernetes.io/hostname: nginx.external-dns-test.my-org.com.

注意,需要正确设置IAM权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38275179

复制
相关文章

相似问题

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