在主机上安装prometheus

昨天将gitlab迁到主机上,从感觉上性能有了一些提升,今天尝试将prometheus也运行到主机上。 首先要确认在主机上可以访问集群的内网ip,如果用rancher搭的k8s集群默认是不能访问的。用kubeadm则一般是可以的,简单的访问一个svc就可以判断出来。 当确认能够访问内网ip后就可以开始下边的步骤了 下载prometheus二进制文件 https://prometheus.io/download/#prometheus 在如上连接中可以找到具体的下载连接 下载完成后解压,并将原有的配置文件粘贴到prometheus.yml中 创建文件夹 mkdir -p /var/run/secrets/kubernetes.io/serviceaccount/ 将一个具有和cluster-admin相同读权限的token放入此文件夹中 echo your-token > /var/run/secrets/kubernetes.io/serviceaccount/token truncate -s-1 /var/run/secrets/kubernetes.io/serviceaccount/token 将ca.crt也放入次文件夹中,如果不知道文件在哪,随意进入一个pod中进入该目录即可找到 echo your-ca-cert > /var/run/secrets/kubernetes.io/serviceaccount/ca.crt 将kubernetes.default.svc放入hosts文件中,prometheus有时会使用这个地址,如果没有添加解析则会出现no host之类的错误,下边的ip同样可以随意进入一个pod中,选择环境变量KUBERNETES_SERVICE_HOST的值 echo 10.233.0.1 kubernetes.default.svc >> /etc/hosts 启动prometheus测试 export KUBERNETES_SERVICE_PORT=443 export KUBERNETES_SERVICE_HOST=10.233.0.1 ./prometheus 访问主机ip:9090查看target是否都正常 正常之后就可以将prometheus放入到service中 cat >/etc/systemd/system/prometheus.service<<EOF [Unit] Description=auto run prometheus [Service] Environment='KUBERNETES_SERVICE_PORT=443' Environment='KUBERNETES_SERVICE_HOST=10. »

Gitlab从容器迁移到主机

容器虽然很好用,但在某些低配的机器上也会成为性能的瓶颈,gitlab的反应越来越慢,申请了一台中配的主机,打算将gitlab迁移到这台主机独占资源 首选确定现在使用的gitlab版本,在gitlab package中搜索这个版 https://packages.gitlab.com/app/gitlab/gitlab-ce/search,点进去可以找到安装命令,在安装前先装一下依赖 安装依赖 sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates 安装上述的搜索结果执行命令,这里已ubutun16.04+gitlab11.4.7为例 curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash LC_CTYPE="zh_CN.UTF-8" LC_ALL="en_US.UTF-8" EXTERNAL_URL="http://gitlab.cf.vk.vu" apt-get install gitlab-ce=11.4.7-ce.0 耐心等待安装完成,安装完成后访问主机ip能打开重置密码界面说明安装完毕,接下来迁移数据库,原来使用mysql数据库,现在打算使用psql。 安装pgloader pgloader放在postgresql的mirror源中,先添加源 sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' sudo apt-get update 安装pgloader,gitlab要去3.4.1+,安装过程中要确认一下是不是3.4.1以上版本 apt-get install pgloader 开始迁移数据库 先关闭gitlab sudo gitlab-ctl stop 启动unicorn和psql »

在rancher界面上安装choerodon猪齿鱼

在kubecon大会上rancher是一个热点项目,目前rancher使用人数在不断增长,目前choerodon可以通过下面几个步骤在rancher上轻松的安装。 准备一个域名 安装前要准备一个域名方便访问,如果使用国内公有云,域名要备案之后才可以用,这是天朝的规定~, 准备好域名之后添加一个泛解析如*.your.domian 的A记录解析到服务中,如果是rancher搭建的集群解析到控制节点即可。 创建choerodon项目 添加好仓库之后,左上角选择你要用来部署choerodon的集群,选择之后点击左上角添加项目, 项目名填写:猪齿鱼 创建完成后添加一个命名空间:c7n-system,这里命名空间不建议使用其他名字,防止意想不到的问题 部署应用 回到导航栏选择应用商店,进入之后可以看到一些应用,如果没看到的话点击右上角启用按钮 部署存储类,如果您之前部署过nfs-provisioner可以跳过这一步 右上角搜索nfs,能够看到有nfs-provisoner,这里我们选择rancher官方的nfs-provisioner,点击查看详情然后拉倒底部点击应用即可,这个应用使用了quar.io的镜像库,国内拉取可能比较慢,这里可以手动指定我推到阿里云的镜像,详细过程看下面的动图,注意要勾选创建存储类: 镜像地址: registry.cn-shanghai.aliyuncs.com/vinkdong/nfs-provisioner 打开kubectl执行窗口,后边的命令都在这个窗口中执行,不知道kubectl在哪可以看下边的动图 部署helm tiller choerodon使用helm安装,需要先安装个helm tiller curl -sL -H "Referer: https://vinkdong.com/" \ https://static.vinkdong.com/yml/tiller.yml | kubectl apply -f - 安装choerodon记得吧DOMAIN的值改为您的泛域名,注意不用添加*. export DOMAIN=your.domian curl -sL -H "Referer: https://vinkdong.com/" \ https://static.vinkdong.com/yml/install-choerodon.yml | sed "s/example.com/${DOMAIN}/g" | kubectl apply -f - 一般情况下等待半个小时左右安装完毕 如何查询安装进程: »

不让DNS被刷回去

最近打通了多套在阿里云集群的内网,正常情况下可以用用外网地址访问,但是总归有一些限制,我们选择在搭建了一个DNS服务器,将域名指向了内网地址,并修改/etc/resolve文件使用自己搭建的DNS服务器 开始测试没出什么问题,但没多久发现ip又再次指向了外网地址,怀疑阿里云服务器自动刷新了DNS,… 根据经验编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 这个文件,添加一行 PREDNS=no, 再次修改 /etc/resolve 等待两小时后正常,测试重启之后已有有用。 »

Choerodon证书管理终端cert-manager部署和测试

Choerodon将在0.10版本开始支持证书管理,支持自己导入证书和直接通过letsenscrypt申请证书,当然如果需要申请证书,您的域名应该正确解析到业务集群(注意是业务集群哦,也就是您运行着choerodon-agent的集群)。choerodon通过cert-manager申请证书,同时对cert-manager进行扩展支持导入证书。 choerodon定制了cert-manager也就意味着不能直接用官方的cert-manager了,在choerodon对外发布的helm chart中有cert-manager的包,我们直接使用这个 首先添加 helm repo helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/ helm repo update 安装cert-manager $ helm install c7n/cert-manager --version 0.1.0 --name cert-manager --namespace kube-system 如果安装失败查看下是不是以前有装过cert-manager,删除冲突的CRD,重新部署 安装完成之后可以看到cert-manager启动起来了,cert-manager需要通过issuer指定申请证书的地址,这里我们创建两个clusterissuer,一个用来申请证书,一个用来导入证书,记得把email改成自己的 创建clusterissuer cat <<"EOF" | kubectl apply -f - apiVersion: certmanager.k8s.io/v1alpha1 kind: ClusterIssuer metadata: name: letsencrypt-prod spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: choerodon@vk.vu privateKeySecretRef: name: letsencrypt-prod http01: {} --- apiVersion: certmanager.k8s.io/v1alpha1 kind: ClusterIssuer metadata: name: localhost spec: acme: server: https://acme-staging. »