$ 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都不是那么好,是否还有其他的?
据我所知,Kubernetes控制器的目的是确保当前状态等于所需状态.尽管如此,Kubernetes运营商也做了同样的工作.
控制平面中的控制器列表:
从谷歌搜索,我发现有K8s运营商,如
但是,我无法理解为什么使用Controller无法完成?
运营商是否补充了控制器?
这两个设计作为目的和功能之间的区别是什么.
在控制器和操作员之间进行选择需要注意哪些事项??
我已经创建了旅行服务器。它工作正常,我们可以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来运行一个命令.该命令是一个字符串.
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) 设置:
问题:
以下命令将不会运行。我可以创建用户和数据库并删除数据库,但不能删除用户。我不知道是复制问题还是权限问题。
第 1 行的 ERROR 3098 (HY000):该表不符合外部插件的要求。
日志:[错误] 插件 group_replication 报告:'表用户不使用 InnoDB 存储引擎。这与组复制不兼容。
我也通过本地 mysql 控制台以 root 身份登录得到同样的错误。
问题):
我自己实现了一个 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) 我的目标是使用 goroutines 和 channel,我想学习如何在不同的 goroutines 之间进行通信,我想避免死锁。我设法使用sync.WaitGroup,它工作得很好。
但是我收到一个错误说
1恐慌:同步:负WaitGroup计数器
goroutine 19 [正在运行]:
这个程序的目标很简单。
编码:
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) 所以我一直在这个现在抓我的头几个星期,阅读关于如何几个源后$ 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 中,我删除了原始路径 …
这是我第一次尝试将微服务架构部署到Kubernetes中。刚开始,我正在考虑使用大使作为我的API网关。我也有一个身份验证服务,它可以验证用户并生成JWT令牌,但是,每次调用服务时,我都需要验证此令牌。这代表了一个过载问题(因为API网关每次接收到流量后,都会去到该外部身份验证服务以验证JWT令牌),并且大使没有选择权,可以在不使用外部服务的情况下进行此过滤。
在这种情况下,使用Zuul网关似乎是最好的选择,因为它允许我验证网关内部的JWT令牌(而不是通过Ambassador之类的外部服务)。但是,我不确定将Zuul部署到Kubernetes中会如何工作,因为据我了解,Zuul需要具有服务发现的地址(例如Eureka)。
如果我在Kubernetes集群中部署Zuul,那么它将如何找到我的服务?
例如在本地,因为我以前使用过Eureka,所以没有问题,而且我知道它的地址。另外,我认为在Kubernetes中部署Eureka并不是一个好主意,因为这将是多余的。
如果用Zuul无法做到这一点,是否还有另一个API网关或方法可以让我使用网关来验证令牌,而不是像Ambassador那样依赖于外部身份验证服务?
谢谢。
我对 go 中的集成测试有一个非常特殊的要求。在过去的几天里,我阅读了许多博客,但我无法获得此问题的解决方案。如果您在下面做过任何事情,请与我分享。
基础设施详情:
我的确切要求是:
提前致谢!!
简单的问题是否可以使用 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) 我正在尝试运行 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) 我有一个运行良好的缩放服务,直到我最近的 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) go ×7
kubernetes ×4
git ×2
mysql ×2
api-gateway ×1
axios ×1
bash ×1
concurrency ×1
go-templates ×1
gopath ×1
grpc ×1
http2 ×1
minikube ×1
netflix-zuul ×1
nginx ×1
package ×1
percona ×1
replication ×1