GitLab 使用git push 出现RPC failed; HTTP 500 curl 22 The requested URL returned error: 500

提交流程图时,出现了如下奇怪错误: $ git push origin Counting objects: 4, done. Delta compression using up to 24 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 5.59 MiB | 16.73 MiB/s, done. Total 4 (delta 1), … “GitLab 使用git push 出现RPC failed; HTTP 500 curl 22 The requested URL returned error: 500”

Read More

Docker仓库Harbor配置LDAP并开启TLS认证

公司使用harbor很长一段时间了,一直用http协议.最近升级到1.1.2版本了,顺便开启https,因此记录一下. 获取安装包 可以到项目官方Github的Release发布地址下载离线安装包,也可以下载在线安装包,一般用离线. 使用命令tar -zxf harbor-offline-installer-xxx.tgz解压下载的离线安装包. 配置 进入目录cd harbor,修改harbor.cfg文件vi harbor.cfg 设置hostname项为你harbor服务的IP或者域名,但不要设置为localhost或者127.0.0.1. ## Configuration file of Harbor #设置hostname项为你harbor服务的IP或者域名. #因为需要使用外部链接来获取服务,所以不要设置为 `localhost` 或 `127.0.0.1`. hostname = harbor.example.com #连接方式默认为http,可以改为https. ui_url_protocol = http #mysql数据库的root密码,另有需求可以自行修改. db_password = root123 #最大并发数默认为3.如果是公司或者公共镜像,可以根据服务器资源适当加大,我这改成10. max_job_workers = … “Docker仓库Harbor配置LDAP并开启TLS认证”

Read More

创建基于Fannel网络的Kubernetes 1.6.8

准备环境 Master节点的配置建议 2U2G 起,Node 节点的配置建议 2U2G 起. 需要配置各个节点的名称,IP,全部流程使用 root 权限,关闭 SELinux 与 Firewalld 服务. 节点名称和IP 三个Master节点,既为master也为node,一个纯Node节点,系统为 CentOS 7. Node Name IP master1 192.168.85.141 master2 192.168.85.142 master3 192.168.85.143 将每个节点的Hostname改为对应的Node Name: # master1 hostnamectl –static set-hostname master1 … “创建基于Fannel网络的Kubernetes 1.6.8”

Read More

Kubernetes内部监控集成: Grafana+Heapster+Influxdb

2018-06-03 Update: 在官方发布1.10.0 版本的ChangeLog中,–cadvisor-port被标记为Deprecation,其将于 1.12 版本中被默认置为关闭(可手动开启), 并在 1.13 版本中被移除. 简介 容器的出现使得应用服务变得更加扁平易扩展,从而导致监控对象的碎片化,使得监控实现更加困难. 得益于 Kubernetes / Swarm / Rancher / Mesos 等编排技术的出现,让开发人员有了相对统一的手段去监控这些运行在容器的服务,并收集数据. 而 Kubernetes 通过建立抽象层,比如 pods 和 services, 简化了容器的管理,让我们无需关心容器运行过程和它的资源消耗.但为了确保集群更安全,应用服务更高性能,因此我们需要监控我们的应用,容器,以及 Kubernetes 本身. 当下对于容器监控的主流方法是用来自的谷歌的 cAdvisor 搜集数据. cAdvisor是一个用Go编写的服务,它会收集当前节点以及运行容器的监控数据: cpu, memory, … “Kubernetes内部监控集成: Grafana+Heapster+Influxdb”

Read More

kubectl get csr 显示No Resources Found的解决记录

在添加了CA证书并部署了kube-apiserver,kube-controller-manager以及kube-scheduler几个k8s的master组件后,添加kubelet组件,同时生成证书认证的配置文件. kubelet 启动时向 kube-apiserver 发送 TLS bootstrapping 请求,需要先将 bootstrap token 文件中的 kubelet-bootstrap 用户赋予 system:node-bootstrapper 角色,然后 kubelet 才有权限创建认证请求(certificatesigning requests)。 文件token.csv内容: e21b2365eb6e3c86a670dec0bdb511cc,kubelet-bootstrap,10001,”system:kubelet-bootstrap” #正常情况下只需创建一次认证即可.配置根据token.csv中的内容自行修改. kubectl create clusterrolebinding kubelet-bootstrap –clusterrole=system:node-bootstrapper –user=kubelet-bootstrap 得到kubelet kubeconfig文件后,使用命令kubectl get csr可以看到还未认证的节点. 使用命令kubectl certificate approve {NodeName}可以加入TLS认证. … “kubectl get csr 显示No Resources Found的解决记录”

Read More

Debian7通过apt-get升级内核到3.16安装Docker

目前docker-ce 17.03版本,官方要求Debian版本大于wheezy 7.7或者Linux Kernel版本大于3.10,因此需要升级默认Debian 7的3.2.0内核版本。官方说明 添加官方backports源: vi /etc/apt/sources.list deb http://ftp.debian.org/debian/ wheezy-backports main # 或者用下方阿里的源也可以 # deb http://mirrors.aliyun.com/debian-backports/ wheezy-backports main contrib non-free # deb-src http://mirrors.aliyun.com/debian-backports/ wheezy-backports main contrib non-free 然后获取最新包版本: apt-get update && apt-get -t wheezy-backports … “Debian7通过apt-get升级内核到3.16安装Docker”

Read More

创建基于Fannel网络的Kubernetes 1.5.4

Kubernetes 是个基于容器的调度编排工具,源于谷歌,现在全球的开发者在为其贡献代码.它极大的方便了分布式部署服务的难点,我认为这应该是将来服务发布部署主流的方向. Kubernetes现在底层调度的是Docker.去年我接触了Docker,Docker的容器给我的感受就是它确实是比 KVM 模式便捷许多,并且 KVM 有的资源分配与环境隔离Docker都已经实现的较为完全了,相比于 KVM,其优势就是任务的快速创建和资源的快速回收.Kubernetes则是在此之上统一管理调度这些任务和资源. 而Kubernetes的难点在于其部署的过程极为复杂,并且网络配置也较为困难.我看了一天,也才略微懂了皮毛. 参考Kubernetes.io 准备环境 需要准备好各个节点的名称,IP,以及需要的docker,etcd,kubernetes等运行程序,全部流程使用root权限,关闭SELinux与Firewalld服务. 节点名称和IP 三个节点,既为master也为node,运行系统为 CentOS 7. Node Name IP node1 192.168.200.21 node2 192.168.200.22 node3 192.168.200.23 将每个节点的Hostname改为对应的Node Name: # node-1 hostnamectl –static set-hostname node1 # node-2 … “创建基于Fannel网络的Kubernetes 1.5.4”

Read More

Docker容器中与主机上文件的相互复制

搞笑的是,我之前从容器中把文件复制到宿主机上时,一直都是直接到/var/lib/docker/containers/中直接寻找的.我尼玛,这要是只有一两个在跑的容器那找到对应目录还是比较简单的,但要是跑上数十个容器岂不得找到疯. 知道今天才知道原来存在docker cp命令,之前难道是我眼瞎???? 居然一直都没看到docker help下的帮助提示. 命令格式为: docker cp [container id /container name]:/path /hostpath docker cp /hostpath [container id /container name]:/path

Read More