ArgoCD配合Jenkins Pipeline自动化部署应用

创建helm仓库

首先,创建基础Helm模版仓库:

1
helm create template .

对于实际的部署中,需要根据自己的业务定制自己的helm模版,我这里直接使用我们内部自定义的通用模版,方便快速部署;另外也可以参考bitnami家维护的helm chart(https://github.com/bitnami/charts/tree/master/bitnami)

argocd部署deployment出现: no space left on device

故障现象

上午通过argocd部署几个业务应用,部署了2个以后,第三方死活部署不成功,相同的配置,知识集群不一样,怎么会出现这样的问题呢?

于是查看了下日志,如下:

ArgoCD添加多集群

生成argocd管理用户token

登陆dashboard,settings–>Accounts–>admin–>Generate New 生成后,请记录下token信息,类似如下:

ArgoCD安装部署

安装部署

ArgoCD的部署非常简单,安装官方的部署方法(HA模式:

1
2
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.5.2/manifests/ha/install.yaml

可以按照需求调整部署文件,待pod顺利启动后

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# kubectl  -n argocd get pod
NAME                                             READY   STATUS    RESTARTS   AGE
argocd-application-controller-66fbf66657-ghf2c   1/1     Running   0          6d17h
argocd-application-controller-66fbf66657-gpm7d   1/1     Running   0          6d17h
argocd-application-controller-66fbf66657-tr5kd   1/1     Running   0          6d17h
argocd-dex-server-5c5f986596-c8ftv               1/1     Running   0          9d
argocd-redis-ha-haproxy-69c6df79c6-2fxd6         1/1     Running   0          9d
argocd-redis-ha-haproxy-69c6df79c6-mksg2         1/1     Running   0          9d
argocd-redis-ha-haproxy-69c6df79c6-wq57f         1/1     Running   0          9d
argocd-redis-ha-server-0                         2/2     Running   0          9d
argocd-redis-ha-server-1                         2/2     Running   0          9d
argocd-redis-ha-server-2                         2/2     Running   0          9d
argocd-repo-server-76bbb56cc7-d8fp5              1/1     Running   0          7d
argocd-repo-server-76bbb56cc7-qvl5z              1/1     Running   0          7d
argocd-repo-server-76bbb56cc7-xqrfn              1/1     Running   0          7d
argocd-server-6464c7bcd-fgktr                    1/1     Running   0          6d19h
argocd-server-6464c7bcd-jkqdb                    1/1     Running   0          6d19h
argocd-server-6464c7bcd-nfdwn                    1/1     Running   0          6d19h

配置ingress访问argocd

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: argocd-server-ingress
  namespace: argocd
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/redirect-entry-point: https
spec:
  rules:
    - host: cd.testcn
      http:
        paths:
        - backend:
            serviceName: argocd-server
            servicePort: https
          path: /

通过https://cd.test.cn/访问argocd,默认本地用户名是admin,密码是其中一个pod的name,获取密码使用如下方法:

Hugo+Github搭建个人博客

Hugo介绍

之前博客一直使用hexo搭建,随着用golang越来越多,一直想把博客也迁移到hugo,hugo就不用多说了go语言编写的静态网站生成器,简单、易用、高效、易扩展、快速部署.

kubernetes集群添加用户

之前通过ansible搭建了kubernetes集群环境,这里需求主要是添加一个用户进行日常管理,并限制到指定的namespace,接下来进行操作:

kubernetes集群部署traefik2.1

架构&概念

traefik v2.1 router

Traefik2.x版本相比1.7.x架构有很大变化,正如上边这张架构图,最主要的功能是支持了TCP协议、增加了Router概念。

这里我们采用在kubernetes集群部署Traefik2.1,业务访问通过haproxy请求到traefik Ingress,下边是搭建过程涉及到一些概念:

kubeasz部署k8s集群

环境准备

  • Master节点
1
2
3
172.16.244.14
172.16.244.16
172.16.244.18
  • Node节点
1
2
172.16.244.25
172.16.244.27
  • Master节点VIP地址: 172.16.243.13

  • 部署工具:Ansible/kubeasz