k8s使用NFS存储卷

缘由:

go-zero gateway主要内容开发接近完成了,有一个问题一直没有解决,马上要部署了,是时候解决了。

因为主要是RESTful <–> gRPC,go-zero通过解析pb文件访问后端gRPC服务,pb文件则是通过proto文件生成,proto文件是定义接口的,接口变化会导致pb文件的变化和更新,但是通常gateway模块的功能开发相对稳定和单一,完成后很少会有修改。不希望因为pb文件的变化而导致gateway重新构建、版本发布,pb文件则是更像配置文件存在。

[阅读全文]
golang  go-zero  gateway  k8s  nfs  pv  pvc 

GitLab CICD自动更新k8s中容器版本

前提

之前使用Gitlab和Runner的版本是12.*,现在已经到了16.*,安装和配置跟之前相比几乎没有变化,所以按之前的文档操作下来,一路比较顺利。在更新k8s集群容器版本的时候出现问题了,原来Auto Deploy方式在14.*版本被弃用,较新的方案是安装k8s代理,方案有2种:

[阅读全文]

kuboard

每天都有小坑踩!

k8s装好了,想把kuboard也装上去。 看官方文档挺简单,官方推荐docker run方式运行,因为主机上还有其他2个服务也要运行,我当然是选择用compose,既然docker run能运行,compose没有理由不可以呀! PS:2年没怎么关注docker,发现又有大变化,compose升到V2了,不再是以前那个python项目,改用go开发,做为docker的一个插件,在官方安装文档中推荐安装方式就已经包含了compose插件,不用再次安装了。

[阅读全文]
k8s  kuboard  yaml 

安装k8s基于containerd

上次安装k8s,3年多了;今天尝试再安装一次k8s,不同的是这次不再用docker,改为containerd。
得益于以前写的ansible脚本,很有参考价值,虽然3年多过去了,很多东西还对得上。

[阅读全文]

阿里云的ACK Pro托管版使用配置

最近做开发基础架构设计,又经历了一次痛苦过程,记录一下。 同时感叹,这一次明显感受是没有以前的冲劲和精力了,真老了吧? 粗糙的记录一下,算是做个告别吧,最后一次干这事了!

[阅读全文]
k8s 

fluentd

综合需要考虑的问题

  • 最好只处理指定namespace的日志
  • 非标准日志的处理(SQL和Gin的日志),考虑忽略非标准日志
  • 加入k8s metadata
  • 按名称空间加日志(%{[k8s]}-%{+yyyy.MM.dd})
  • 删除不需要的字段
  • 直连ES
  • 消息主体替换根节点的message,level和time提到根节点

安装前系统配置

[阅读全文]

k8s-cronjob

当前k8s版本:1.17,在使用cronjob的时候发现调度的时间不对,配置的是0 0 * * *,但实际运行时间为早上8点,推测是时区问题没跑了~ 但是运行程序的容器已经处理过时区问题,而且调度是k8s发起了,问题在k8s那边。

[阅读全文]
k8s  cronjob 

使用gitlab + gitlab runner + nexus + k8s技术栈搭建devops全流程

版本清单

  • gitlab:12.8.1-ce.0
  • gitlab runner:v12.9.0
  • nexus:3.21.1
  • k8s:1.17.4
  • istio:1.5.1

前提条件

  • maven镜像未使用官方的,而是基于JDK镜像自己创建,原因是官方的镜像对于配置全局mirror没有找到简单方便的办法
  • kubectl官方没有镜像,当前使用的是:bitnami/kubectl

安装过程

gitlab

  • 使用compose安装:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  gitlab:
    image: gitlab/gitlab-ce:12.8.1-ce.0
    ports:
    - '22:22'
    - '80:80'
    - '443:443'
    volumes:
    - /data/gitlab/config:/etc/gitlab
    - /data/gitlab/logs:/var/log/gitlab
    - /data/gitlab/data:/var/opt/gitlab
    container_name: gitlab
    restart: unless-stopped
  • gitlab.rb配置文件修改:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
external_url 'https://ip'

gitlab_rails['time_zone'] = 'Asia/Shanghai'

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxx@xxx.xxx'
gitlab_rails['gitlab_email_display_name'] = 'xxx'

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.xxx.xxx.xxx"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@xxx.xxx"
gitlab_rails['smtp_password'] = "********"
gitlab_rails['smtp_domain'] = "xxx.xxx"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

user['git_user_name'] = "GitLab"
user['git_user_email'] = "xxx@xxx.xxx"

nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80

nginx['ssl_certificate'] = "/etc/gitlab/trusted-certs/xxx.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/trusted-certs/xxx.key"