小编Shu*_*rma的帖子

什么是"获得"私人存储库的正确方法?

$ go get在谷歌尝试之后,我正在寻找使用私有存储库的方法.

第一次尝试:

$ go get -v gitlab.com/secmask/awserver-go
Fetching https://gitlab.com/secmask/awserver-go?go-get=1
https fetch failed.
Fetching http://gitlab.com/secmask/awserver-go?go-get=1
Parsing meta tags from http://gitlab.com/secmask/awserver-go?go-get=1 (status code 200)
import "gitlab.com/secmask/awserver-go": parse http://gitlab.com/secmask/awserver-go?go-get=1: no go-import meta tags
package gitlab.com/secmask/awserver-go: unrecognized import path "gitlab.com/secmask/awserver-go
Run Code Online (Sandbox Code Playgroud)

是的,它没有看到meta标签,因为我不知道如何提供登录信息.

第二次尝试:

关注https://gist.github.com/shurcooL/6927554.将配置添加到.gitconfig.

[url "ssh://git@gitlab.com/"]
    insteadOf = https://gitlab.com/
$ go get -v gitlab.com/secmask/awserver-go --> not work
$ go get -v gitlab.com/secmask/awserver-go.git --> work but I got src/gitlab.com/secmask/awserer-go.git
Run Code Online (Sandbox Code Playgroud)

是的它可以工作,但.git扩展了我的项目名称,我可以将它重命名为原始,但每次$ go get都不是那么好,是否还有其他的?

git go

107
推荐指数
11
解决办法
7万
查看次数

Kubernetes Controller与Kubernetes运营商?

据我所知,Kubernetes控制器的目的是确保当前状态等于所需状态.尽管如此,Kubernetes运营商也做了同样的工作.

控制平面中的控制器列表:

  • 部署
  • ReplicaSet
  • StatefulSet
  • DaemonSet
  • 等等

从谷歌搜索,我发现有K8s运营商,如

  • etcd运营商
  • 普罗米修斯运营商
  • kong运营商

但是,我无法理解为什么使用Controller无法完成?

运营商是否补充了控制器?

这两个设计作为目的和功能之间的区别是什么.

在控制器和操作员之间进行选择需要注意哪些事项??

kubernetes

42
推荐指数
3
解决办法
7204
查看次数

已被CORS政策阻止:对预检请求的响应未通过访问控制检查

我已经创建了旅行服务器。它工作正常,我们可以POST通过Insomnia 发出请求,但是当我们POST在前端通过axios 发出请求时,它将发送错误:

has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: It does not have HTTP ok status.
Run Code Online (Sandbox Code Playgroud)

我们对axios的要求:

let config = {
headers: {
  "Content-Type": "application/json",
  'Access-Control-Allow-Origin': '*',
  }
}

let data = {
  "id": 4
 }

 axios.post('http://196.121.147.69:9777/twirp/route.FRoute/GetLists', data, config)
   .then((res) => {
      console.log(res)
     })
    .catch((err) => {
      console.log(err)
   });
} 
Run Code Online (Sandbox Code Playgroud)

我的文件:

func setupResponse(w *http.ResponseWriter, req *http.Request) {
    (*w).Header().Set("Access-Control-Allow-Origin", "*")
    (*w).Header().Set("Access-Control-Allow-Methods", "POST,GET,OPTIONS, PUT, DELETE")

    (*w).Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, …
Run Code Online (Sandbox Code Playgroud)

go axios

18
推荐指数
6
解决办法
9万
查看次数

从带有参数的字符串运行命令

我试着用go来运行一个命令.该命令是一个字符串.

package main

import (
    "log"
    "os"
    "os/exec"
    "strings"

    "github.com/davecgh/go-spew/spew"
)

func main() {
    commandToRun := `echo $HOME`

    log.Printf("Running %s\n", commandToRun)

    args := strings.Fields(commandToRun)
    spew.Dump(args[1:len(args)])
    command := exec.Command(args[0], args[1:len(args)]...)
    command.Stdout = os.Stdout
    command.Stdin = os.Stdin
    command.Stderr = os.Stderr
    err := command.Run()

    if err != nil {
        log.Printf("Command finished with error: %v", err)
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

2018/11/14 09:41:22 Running echo $HOME
([]string) (len=1 cap=1) {
 (string) (len=5) "$HOME"
}
$HOME
Run Code Online (Sandbox Code Playgroud)

我想拥有的是:

2018/11/14 09:41:22 Running echo $HOME
([]string) (len=1 cap=1) {
 (string) …
Run Code Online (Sandbox Code Playgroud)

go

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

ERROR 3098 (HY000): 该表不符合外部插件的要求

设置:

  • master master 中的三个mysql组复制节点。
  • 一切正常。我可以添加用户/数据库并插入/更新数据。
  • 每个节点都绑定到一个私有 IP 地址。
  • 我创建了一个 bash 脚本来连接到 mysql 以删除用户。
  • 使用脚本删除数据库工作正常。

问题:

以下命令将不会运行。我可以创建用户和数据库并删除数据库,但不能删除用户。我不知道是复制问题还是权限问题。

  • 从 mysql.user 中删除 user='testme123';
  • 从 mysql.db 中删除用户 ='testme123';
  • 如果存在'testme123',则删除用户;

第 1 行的 ERROR 3098 (HY000):该表不符合外部插件的要求。

日志:[错误] 插件 group_replication 报告:'表用户不使用 InnoDB 存储引擎。这与组复制不兼容。

我也通过本地 mysql 控制台以 root 身份登录得到同样的错误。

问题):

  • 什么可以阻止这种情况?
  • 我该如何解决我遗漏的问题?

mysql bash replication mysql-group-replication

6
推荐指数
1
解决办法
1万
查看次数

如何找出 Nginx 在用作 http/2 负载均衡器时返回 400 的原因?

我自己实现了一个 http/2 代理,并使用 Nginx 作为负载均衡器。

当我使用 Nginx 作为 h2c 负载均衡器时,它可以工作:

server {
    listen 8443 http2;

    location / {
        error_log /Users/jiajun/nginx_error_log.log debug;
        grpc_pass grpc://127.0.0.1:2017;
    }
}
Run Code Online (Sandbox Code Playgroud)

运行:

server {
    listen 8443 http2;

    location / {
        error_log /Users/jiajun/nginx_error_log.log debug;
        grpc_pass grpc://127.0.0.1:2017;
    }
}
Run Code Online (Sandbox Code Playgroud)

Nginx访问日志为:

127.0.0.1 - - [28/Jan/2019:11:50:46 +0800] "POST /helloworld.Greeter/SayHello HTTP/2.0" 200 18 "-" "grpc-go/1.16.0" "-"
Run Code Online (Sandbox Code Playgroud)

但当我在 SSL 下提供服务时它不起作用:

server {
    listen 8443 ssl http2;
    ssl_certificate     /Users/jiajun/127.0.0.1.crt;
    ssl_certificate_key /Users/jiajun/127.0.0.1.key;

    location / {
        error_log /Users/jiajun/nginx_error_log.log debug;
        grpc_pass grpc://127.0.0.1:2017;
    }
}
Run Code Online (Sandbox Code Playgroud)

运行:

$ …
Run Code Online (Sandbox Code Playgroud)

nginx http2 grpc

5
推荐指数
1
解决办法
7966
查看次数

恐慌:同步:负WaitGroup计数器

我的目标是使用 goroutines 和 channel,我想学习如何在不同的 goroutines 之间进行通信,我想避免死锁。我设法使用sync.WaitGroup,它工作得很好。

但是我收到一个错误说

1恐慌:同步:负WaitGroup计数器

goroutine 19 [正在运行]:

这个程序的目标很简单。

  1. 创建开发人员
  2. 指派他/她创建一个网站
  3. 取决于网站的数量
  4. 网站完成后,将其附加到数组
  5. 让有 20 个网站和 5 个开发人员
  6. 每个开发人员将创建 4 个网站并将其附加到网站数组中
  7. 我想同时进行,以便其他开发人员不必等待

编码:

package main

import (
  "fmt"
  "sync"
  "time"
)

type developer struct {
    name              string
    setTimeForWebsite time.Time
}

type website struct {
   owner   string
   created time.Time
}

var developers []developer
var websites []website

// A function to create a developer
 func hireDeveloper(wg *sync.WaitGroup, workNumber int, 
   developerCreatedc chan developer, devs []developer) {
   defer wg.Done() …
Run Code Online (Sandbox Code Playgroud)

concurrency go

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

使用 git 设置正确的 Golang 目录结构以在自定义包上使用 go build

所以我一直在这个现在抓我的头几个星期,阅读关于如何几个源后$ go build作品和它的三个法宝目录/bin/pkg/src,它仍然不是很清楚,我如何使用自定义包和如何构建Golang项目应该管理一个 git repo。

让我更详细地说明一下我的情况:

我正在项目目录中的 Go 项目与默认.../user/go/.... 对于我的所有项目,我有一个不同的目录树,其结构如下:

projects
 | project-a
 | project-b
    | docs
    | media
    | scrum
    | project-b   <-- git repo containg Go structure
       | .git
       | gitignore.txt
       | bin
       | pkg
       | src
          | custom-package-a
          |  | foo.go
          | custom-package-b
          |  | bar.go
 |     | main.go      
 | project-c
Run Code Online (Sandbox Code Playgroud)

我的projects目录可以包含任何类型的项目:java、Unity3D、VisualC# 等……然后在每个项目下,它都包含一个带有源代码的存储库。

我最近能够通过添加projects/project-b/project-b到我的 GOPATH来成功构建,因此它可以看到 src 目录。

即使构建正确,典型 Go 项目的文件结构也应该是这样吗?

在我的 GOPATH 中,我删除了原始路径 …

git package go file-structure gopath

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

Kubernetes中的Zuul部署

这是我第一次尝试将微服务架构部署到Kubernetes中。刚开始,我正在考虑使用大使作为我的API网关。我也有一个身份验证服务,它可以验证用户并生成JWT令牌,但是,每次调用服务时,我都需要验证此令牌。这代表了一个过载问题(因为API网关每次接收到流量后,都会去到该外部身份验证服务以验证JWT令牌),并且大使没有选择权,可以在不使用外部服务的情况下进行此过滤。

在这种情况下,使用Zuul网关似乎是最好的选择,因为它允许我验证网关内部的JWT令牌(而不是通过Ambassador之类的外部服务)。但是,我不确定将Zuul部署到Kubernetes中会如何工作,因为据我了解,Zuul需要具有服务发现的地址(例如Eureka)。

如果我在Kubernetes集群中部署Zuul,那么它将如何找到我的服务?

例如在本地,因为我以前使用过Eureka,所以没有问题,而且我知道它的地址。另外,我认为在Kubernetes中部署Eureka并不是一个好主意,因为这将是多余的。

如果用Zuul无法做到这一点,是否还有另一个API网关或方法可以让我使用网关来验证令牌,而不是像Ambassador那样依赖于外部身份验证服务?

谢谢。

kubernetes microservices netflix-zuul api-gateway

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

当我使用测试 Go Project 代码的 Java 语言运行测试时,如何获得代码覆盖率报告?

我对 go 中的集成测试有一个非常特殊的要求。在过去的几天里,我阅读了许多博客,但我无法获得此问题的解决方案。如果您在下面做过任何事情,请与我分享。

基础设施详情:

  • 启动并运行 Go 项目
  • 用 JAVA 编写我的自动化框架

我的确切要求是:

  1. 我必须检测 Go 代码并使 Go 代码运行
  2. 执行我的java自动化代码
  3. 停止 Go 代码/从 Go 获取代码覆盖率报告

提前致谢!!

code-coverage go test-coverage

2
推荐指数
1
解决办法
3336
查看次数

带头盔的尺寸表

简单的问题是否可以使用 helm 和 sprig 功能获取尺寸列表?

我的列表 :

list:
 - a
 - b
 - c
Run Code Online (Sandbox Code Playgroud)

我试过这样:

{{ .Values.list | len }}
{{ .Values.list | size }}
{{ .Values.list | length }}
Run Code Online (Sandbox Code Playgroud)

go go-templates kubernetes-helm sprig-template-functions

2
推荐指数
1
解决办法
6317
查看次数

InnoDB:innodb_system 数据文件 'ibdata1' 必须是可写的

我正在尝试运行 percona xtradb 集群。percona 服务器的输出如下:

mysqld: [Warning] World-writable config file '/etc/mysql/my.cnf' is ignored.
2019-06-10T07:24:28.000875Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-06-10T07:24:28.000942Z 0 [Warning] WSREP: Node is running in bootstrap/initialize mode. Disabling pxc_strict_mode checks
2019-06-10T07:24:28.187210Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-06-10T07:24:28.218407Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-06-10T07:24:28.273235Z 0 [Warning] No existing UUID has been found, so we assume that this is …
Run Code Online (Sandbox Code Playgroud)

mysql percona kubernetes minikube percona-xtradb-cluster

2
推荐指数
1
解决办法
9671
查看次数

最新的 Kubernetes 版本抛出 RBAC 错误

我有一个运行良好的缩放服务,直到我最近的 kubernetes 版本升级。现在我不断收到以下错误。(部分信息有删节)

Error from server (Forbidden): deployments.extensions "redacted" is forbidden: User "system:serviceaccount:namesspace:saname" cannot get resource "deployments/scale" in API group "extensions" in the namespace "namespace"

我有以下集群角色:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app: redacted
    chart: redacted
    heritage: Tiller
    release: redacted
  name: redacted
rules:
- apiGroups:
  - '*'
  resources: ["configmaps", "endpoints", "services", "pods", "secrets", "namespaces", "serviceaccounts", "ingresses", "daemonsets", "statefulsets", "persistentvolumeclaims", "replicationcontrollers", "deployments", "replicasets"]
  verbs: ["get", "list", "watch", "edit", "delete", "update", "scale", "patch", "create"]
- apiGroups:
  - '*'
  resources: ["nodes"]
  verbs: ["list", …
Run Code Online (Sandbox Code Playgroud)

kubernetes

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