小编srk*_*Z84的帖子

Grails 2.0中的dateCreated,lastUpdated字段

我有一个使用Grails 1.3.7的应用程序,我刚刚迁移到Grails 2.0.该应用程序使用自动dateCreated和lastUpdated字段来管理与创建和修改对象相关的时间戳.升级后,我收到以下错误:

| Running Grails application
| Error 2012-01-29 22:36:53,504 [Thread-8] ERROR util.JDBCExceptionReporter  - ERROR: null value in column "date_created" violates not-null constraint
| Error 2012-01-29 22:36:53,510 [Thread-8] ERROR events.PatchedDefaultFlushEventListener  - Could not synchronize database state with session
Run Code Online (Sandbox Code Playgroud)

在我的Domain Classes中注释掉上述字段会使问题消失.

有dateCreated与lastUpdated字段Grails的2.0被弃用?如果是这样,这是否意味着我必须编写代码来手动处理此功能或将代码移动到某种类型的插件,如audit-trail插件?

grails grails-orm grails-domain-class grails-2.0

12
推荐指数
2
解决办法
2万
查看次数

如何为群集外的查询公开kube-dns服务?

我正在尝试公开"kube-dns"服务,以便在Kubernetes集群之外进行查询.为了做到这一点,我编辑了"服务"定义,将"类型"从"ClusterIP"更改为"NodePort",这似乎工作正常.

但是,当我尝试在节点端口上查询时,我能够获得TCP会话(使用Telnet进行测试),但似乎无法从DNS服务器获得任何响应(使用dig进行测试).

我已经查看了"kube-dns"Pod上每个容器上的日志,但是看不到任何不合适的东西.此外,从群集内(从正在运行的容器)查询DNS似乎没有任何问题.

有没有人试图揭露kube-dns服务?如果是这样,是否有任何其他设置步骤或者您有任何调试建议吗?

服务定义如下:

$ kubectl get service kube-dns -o yaml --namespace kube-system
apiVersion: v1
kind: Service
metadata:
...
spec:
  clusterIP: 10.0.0.10
  ports:
  - name: dns
    nodePort: 31257
    port: 53
    protocol: UDP
    targetPort: 53
  - name: dns-tcp
    nodePort: 31605
    port: 53
    protocol: TCP
    targetPort: 53
  selector:
    k8s-app: kube-dns
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}
Run Code Online (Sandbox Code Playgroud)

dns kubernetes kube-dns

12
推荐指数
1
解决办法
7268
查看次数

Kubernetes支持AWS中的内部负载均衡器

我有一个Kubernetes集群,通过VPN连接到内部数据中心.此群集需要将服务"公开"到数据中心中运行的其他程序,而不是"Internet".

目前,我一直在创建类型为"NodePort"的服务,然后手动创建内部(专用)负载均衡器,以将端点映射到群集节点/端口组合.

但是,这种方法有一些缺点:

  • 必须从负载均衡器手动添加/删除节点(或者具有某种"扫描"所有节点列表并确保它们附加到ELB的进程)
  • 删除服务时必须确保删除ELB("孤儿ELB"问题)

有没有人知道有什么方法可以配置Kubernetes在AWS中调出"内部"负载均衡器而不是外部负载均衡器,并以与外部负载均衡器相同的方式管理它们?

amazon-web-services kubernetes

7
推荐指数
3
解决办法
6062
查看次数

如何获取在Kubernetes Node上运行Pod的历史记录?

在我们Kuberenetes集群,我们正在运行到零星的情况下群集节点运行的内存和Linux调用OOM杀手.查看日志,似乎调度到节点上的Pod请求的内存多于节点可以分配的内存.

问题在于,当调用OOM杀手时,它会打印出进程列表及其内存使用情况.但是,由于我们所有的Docker容器都是Java服务,因此"进程名称"只显示为"java",不允许我们追踪导致问题的特定Pod.

如何获取计划在特定节点上运行哪些Pod的历史记录以及何时?

java linux linux-kernel kubernetes

7
推荐指数
2
解决办法
6141
查看次数

如何在不创建 Deployment 或 Job 的情况下在 Kubernetes 中运行容器?

我正在尝试在 Kubernetes 中运行一个交互式 Pod(容器),它不会创建作业或部署,并在完成后删除自身。

该容器的目的是为我们的开发人员提供一种简单的方法来访问没有公共 IP 地址的数据库。

目前,我们正在使用这个命令:

kubectl run -i --tty proxy-pgclient --image=private-registry.com/pgclient --restart=Never --env="PGPASSWORD=foobar" -- psql -h dbhost.local -p 5432 -U pg_admin -W postgres
Run Code Online (Sandbox Code Playgroud)

它在您第一次运行它时有效,但是,在退出会话后,如果您尝试再次运行上述命令以再次连接到数据库,我们会得到:

Error from server: jobs.extensions "proxy-pgclient" already exists
Run Code Online (Sandbox Code Playgroud)

强制开发人员删除作业:

kubectl delete job proxy-pgclient
Run Code Online (Sandbox Code Playgroud)

然后他们才能运行命令并再次连接。

有没有什么方法可以在 Kubernetes 中启动交互式容器 (Pod),而无需创建作业或部署对象,并在交互式会话关闭时删除该容器?

kubernetes

5
推荐指数
2
解决办法
2667
查看次数

Spring安全核心插件 - 如何从隐藏字段访问用户ID

我正在尝试在"创建"视图中设置hiddenField,其中该字段设置为当前登录用户的ID.您从"springSecurityService.principal.id"属性获得的属性.

我想知道是否有可能只从模板中执行此操作,而不是从控制器传递值.例如

<%@ page import="grails.plugins.springsecurity.SpringSecurityService" %>
<% def springSecurityService %>

<html>
...
...
<g:hiddenField name="user.id" value="${springSecurityService.principal.id}"/>
...
Run Code Online (Sandbox Code Playgroud)

我尝试了这段代码,但最终得到了一个引用"principal"属性的NullPointer异常.

有没有办法做到这一点,还是我必须从"创建"方法显式传递当前登录用户的ID?

注意:是的我知道任何人使用doctored隐藏字段构造POST请求都是微不足道的.控制器代码中有检查以确保当前登录的用户只能创建,编辑,删除自己的帖子.我的问题更多的是不必输入代码将当前登录的用户传递给三个不同的视图.

grails spring-security gsp grails-plugin hiddenfield

4
推荐指数
2
解决办法
6746
查看次数

如何配置Hibernate以在表名周围加上引号

我有一种情况,我试图在Postgres中创建一个名为'user'的表,由于Hibernate没有将表名放在引号中而引发错误:

| Error 2012-02-27 23:06:58,782 [Thread-10] ERROR hbm2ddl.SchemaExport  - Unsuccessful: create table user (id int8 not null, version int8 not null, account_expired bool not null, account_locked bool not null, email_address varchar(255) not null, enabled bool not null, first_name varchar(255) not null, last_name varchar(255) not null, mobile_number varchar(255) not null, "password" varchar(255) not null, password_expired bool not null, username varchar(255) not null unique, primary key (id))
Run Code Online (Sandbox Code Playgroud)

尽管指定它应该在DataSource.groovy中使用PostgreSQLDialect:

dialect = org.hibernate.dialect.PostgreSQLDialect
Run Code Online (Sandbox Code Playgroud)

在处理Postgres时,如何配置Hibernate在表名周围加上引号?

postgresql grails hibernate grails-orm

4
推荐指数
1
解决办法
6282
查看次数

Dart 如何明确说明使用哪个包类?

我有一个 Dart (Flutter) 应用程序,它同时使用location和map_view包。我的问题是这两个都定义了一个“位置”类。

如何明确说明我在任何特定调用中使用的两个类中的哪一个?

例如,我尝试在类名前加上包名:

location.Location = new Location();

map_view.Location = new Location(45.5231233, -122.6733130);
Run Code Online (Sandbox Code Playgroud)

但是 Dart 似乎并不喜欢这种语法。

location geolocation dart flutter flutter-dependencies

3
推荐指数
1
解决办法
810
查看次数