一个运维老同志
昨天,测试了一个项目的接入。明白了以下几个坑: 1,traefik有可能有性能问题,如果daemonset安装,可重建。也需要通过8580端口查看性能。 2,集群中的service访问自己时,好像性能时好时坏。
这表示认证这一阶段已通过,赋权未到位。 但kube-prometheus是一体化,全家桶安装,我试过几次自定义clusterRole,binding,都解决不完全。 于是来个快刀。 搞定。
在安装全家桶之前,可以先一个一个组件的突破。 上次试了一下node exporter用来导出服务器数据metrics。 而用于导出k8s集群数据的组件就是kube-state-metrics。它寄生于k8s,作为service存在。
现在慢慢在把prometheus operator的一些概念组织完整。 https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus 这个全家桶是值得关注的,里面的概念和步骤要领会。
参照了网上N多文档,不一一列表,共享精神永存!!!! ================================================== 获取所有安装包 安装包分为两类,rpm安装包和docker镜像 rpm安装包 rpm为以下四个 kubeadm-1.
还好,网上有相应的CASE处理。 http://www.jianshu.com/p/ffbfb44dc496 =========================== 先生成名为为regsecret的Secret【此处也可以定义namespace已限制使用范围】。
1,新建一个yaml文件。 apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: containers: - image: busybox command: ...
见鬼的事发生了。 在家里电脑上拿样例代码,运行时OK的。但一到公司电脑,用同样的代码,就会报下面的错误 ===================== Caused by: java.lang.ClassNotFoundException: com.
参考文档: https://mritd.me/2016/12/06/try-traefik-on-kubernetes/#13ingress 由于微服务架构以及 Docker 技术和 kubernetes 编排工具最近几年才开始逐渐流行,所以一开始的反向代理服务器比如 nginx、apache ...
用命令行总是很麻烦,因为要自定义一些证书的位置。。。。。。。 curl https://1.2.3.1:443/api/v1/nodes \ --cacert /etc/kubernetes/pki/ca.
试了不亚于二十种方法,绝望的时候,回到了家。 想手工安装,又遇到flannel在手工下,会更改docker启动项的不完善。 cni,或许就是k8s的大方向吧。 最后,抱着试一试的态度,将flannel升到了v0.8.0 XXXXXXXXXXXXXXXX。
想在virtualBox上测试k8s,遇到两个情况要注意。。 第一是flannel和dashborad起不起来,master都无法正常。。这时可以想办法把Iptables,selinux,firewalld,net_forward的理顺一下。
我指的是以下几个安装包: -rw-r--r--. 1 root root 8976134 Jul 13 10:19 kubeadm-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 9362110 Jul 13 10:19 kubectl-1.
因为自k8s 1.6之后,有基于角色的安全性。 所以很多网上以前的教程就不能使用了。 结合以下三个文档,暂时实现了dashboard界面的推出。 http://blog.csdn.net/jinzili777/article/details/73550687 http://m.
花了一个上午来追踪问题,k8s都反复新建了十多次,docker都重启了几次。(一次显示不有获取磁盘空间,重启docker,清空存储解决) 在用kubeadm安装容器化的几个组件时,flannel组件死活不能启动,报如下问题: Failed to create SubnetManager: err...
史上比较曲折的救国方式了。。。 先在git hub上申请帐号,导入dockerfile。 然后在docker hub上关联git hub帐号作自动构建。 再用daocloud作加速,将docker image下载下来。
最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范。 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难。 慢慢积累经验吧。 今天遇到的三则故障记下来作参考。
思想可以,可推可拉,可自己写接入点。。。还有报警。。。 按官方文档试一下安装 https://prometheus.io/docs/introduction/getting_started/
这里的技巧在于学习如何定义数据结构,更新数据结构,在哪里用指针或是地址来更新。 manger.go package library import "errors" type MusicEntry struct { Id string Name string ...
用于实现快速排序和冒泡排序的东东。 包括了蛮多东西的实现,输入输出,字符串处理等。。。。 bubblesort.go package bubblesort func BubbleSort(values []int) { flag := true for i := 0; i...
一切来自于扩展。。。 核心也即处理输入输出。。。 // helloworld project main.go package main import ( "fmt" "html/template" "log" "net/http" "strings" ) func sayhelloName(w http.
多练练,有感觉了就写实际的东东。 package main import ( "fmt" "math" "os" "time" "net/http" "image" "runtime" ) func say(s string) { for i := 0; i < 5; i++ { runtime.
1). 函数也是值,可以像普通值那样,传来传去; 2). 匿名函数; 3). 函数的类型,类似于:func(float64,float64) float64 ========================== 1).
参考URL: http://ilovers.sinaapp.com/drupal/node/33 1). 指针在 c 中是个重要的东西,& 和 * 一个取地址、一个解析地址,这是 c 的用法,go 中貌似也是这样,but ! 2).
测试了三个从数字转换为字符的性能, 高手的感觉。。。。 package listing28_test import ( "fmt" "testing" "strconv" ) func BenchmarkSprintf(b *testing.
handlers/handlers.go package handlers import ( "encoding/json" "net/http" ) func Routes() { http.
mock是个好东东, 在大项目或大公司,很实用, 因为很多环境不是随时在开发环境可得的。 package main import ( "testing" "net/http" "fmt" "net/http/httptest" ) const checkMar...
比基本测试多个循环。。。 package main import ( "testing" "net/http" ) const checkMark = " OK! " const ballotX = " ERROR! " func TestDownload(t *testing.
这个要熟悉原理,要能写。。 但现在。。。。。 注意,没有main函数,以_test.go结尾,命令go test -v package main import ( "testing" "net/http" ) const checkMark = " OK! " co...
最后一个书上的标准包,但真正学习的路才开始。。。 package main import ( "bytes" "fmt" "os" "io" "log" "net/http" ) func main() { var b bytes.
标准的就简单通用。 package main import ( "encoding/json" "fmt" "log" ) func main() { c := make(map[string] interface{}) c["name"] = "Gop...
用来作日志log输出的, 比较易懂。 今天周六啊,在公司加班学习一下呀。 package main import ( "log" ) func init() { log.
感觉可以,但不好用。 应该有封装程序更高的包包吧。 package main import ( "math/rand" "fmt" "time" "sync" ) const ( numberGoroutines = 4 taskLoad = 10 ) var ( wg sync.
package main import ( "fmt" "runtime" "sync" ) var ( counter int wg sync.WaitGroup mutex sync.
下一步应该是互斥锁了。 package main import ( "fmt" "runtime" "sync" "sync/atomic" ) var ( counter int64 wg sync.
最简单的,接下来,会是竞争,加锁。。。 package main import ( "fmt" "runtime" "sync" ) var wg sync.WaitGroup func main() { runtime.
这个有点新鲜哟。。。 package main import ( "fmt" ) type notifier interface { notify() } type user struct { name string email string } func (u *user) notify() { fmt.
感觉比java玄幻啊~~~ package main import ( "fmt" ) type notifier interface{ notify() } type user struct { name string email string } func (u *user) notify() { fmt.
方便和函数的区别: 方法能给用户定义的类型添加新的行为。方法实际上也是函数,只是在声明时,在关键字func 和方法名之间增加了一个参数。 package main import ( "fmt" ) //define a use struct type user str...
对比python, java都有对应的字典类型及哈希类型。 package main import ( "fmt" ) //main is the entry of the program func main() { dict1 := make(map[string...
感觉比数组好用,首选。 package main import ( "fmt" ) //main is the entry of the program func main() { slice1 := make([]string, 5) slice2 := ma...
用于docker了,go也慢慢看一些。。 推荐书籍《go语言实践》就是的中文版,有文字版PDF的。 package main import ( "fmt" ) //main is the entry of the program func main() { ...
要安装kubernetes最新版集群,https://github.com/opsnull/follow-me-install-kubernetes-cluster 这个文档必须要研习一下了。 以下实验就摘自这个文档的开始。
参考的URL是 http://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html 安装kubernets本身比较顺利,只是作dashboard时,老是日文版, 当时用的docker镜像是registry.cn-beijing.aliyuncs.com/bbt_k8s/kubernetes-dashboard-amd64 v1.6.0 , 后来,升级为registry.cn-beijing.aliyuncs.com/bbt_k8s/kubernetes-dashboard-amd64 v1.6.1之后,就成中文的了。
深入了解LINUX,这方面内容不可少,这段时间再补补。。 #include #include #include #include int main(void) { long ID1, ID2; /*直接系统调用*/ ID1 = syscall(...
作SQL发布时,支持了mssql,在linux上,pymssql安装一直没问题,但在windows7上就不可以。 今天要用了,心血来潮,下载了一个新的pymssql的exe文件, 就安装成功了。。。
平衡的推进,先作一个原型吧。 #!/usr/bin/env python # -*- coding: utf-8 -*- import requests import json #定义docker swarm的管理节点ip,端口号,API版本,服务名, 服务URL #在后期集...
如果不考虑意外, 第一版最简单的构思如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import getopt, sys import subprocess import os site_name = app_name...
最简单配置也是一句话搞了。。。 rpm -i gitlab-ce-9.2.6-ce.0.el7.x86_64.rpm vim /etc/gitlab/gitlab.rb gitlab-ctl reconfigure
不用tomcat,一条命令。。。。 java -jar jenkins.war