Kubernetes + jenkins+ gitlab + harbor cicd环境搭建(一)

Kubernetes 环境搭建

1、环境准备

iphostnameKubernetes角色linux版本kubernetes版本
192.168.136.171mastermasterCentos 7.6v1.16.0
192.168.136.156node1nodeCentos 7.6v1.16.0
192.168.136.157node2nodeCentos 7.6v1.16.0
192.168.136.158node3nodeCentos 7.6v1.16.0
192.168.136.168gitlabCentos 7.6
192.168.136.167harborCentos 7.6

最小标准 2cpu,4g内存

2、安装kubernetes集群

本人使用 https://kuboard.cn/ 搭建k8s集群

以前用过的版本

rancher2.x:https://www.rancher.cn/
kubeasz:https://github.com/easzlab/kubeasz

还有许多就不一一列举了

推荐大家使用kuboard,因为简单

具体kuboard安装文档请参考官网:https://kuboard.cn/install/install-k8s.html

3、安装gitlab

我是开发人员,采用简单方式部署gitlab的

公司内部搭建gitlab,不建议采用这种方式

准备启动脚本

cat > gitlab-setup.sh << EOF
#!/bin/bash
# 注意:设置 gitlab_shell_ssh_port 是为了后续可以使用 SSH 方式访问你的项目
docker run --detach \\
    --hostname gitlab.dcy.com \\
    --env GITLAB_OMNIBUS_CONFIG="external_url = 'http://gitlab.dcy.com'; gitlab_rails['gitlab_shell_ssh_port'] = 6022;" \\
    --publish 443:443 --publish 80:80 --publish 6022:22 \\
    --name gitlab \\
    --restart always \\
    --volume /srv/gitlab/config:/etc/gitlab \\
    --volume /srv/gitlab/logs:/var/log/gitlab \\
    --volume /srv/gitlab/data:/var/opt/gitlab \\
    gitlab/gitlab-ce:latest
EOF

请修改以下内容
–hostname
external_url
gitlab_rails[‘gitlab_shell_ssh_port’] 和 22映射端口必须相同

对应自己的修改即可 对应我的格式

执行启动脚本:sh gitlab-setup.sh 执行成功后,等待数分钟可以看到
可能时间很长 会发生502 请等待

最好用80端口,以免发生问题

修改hosts文件对应上面的url
访问 http://gitlab.dcy.com/

Gitlab使用

首先输入root密码 以下图片
在这里插入图片描述
然后就可以注册账号了
在这里插入图片描述

创建项目

添加ssh

在这里插入图片描述

#先看看是不是已经有啦,如果有内容就直接copy贴过去就行啦
$ cat ~/.ssh/id_rsa.pub

#如果上一步没有这个文件 我们就创建一个,运行下面命令(邮箱改成自己的哦),一路回车就好了
$ ssh-keygen -t rsa -C "xxxx@qq.com"
$ cat ~/.ssh/id_rsa.pub

4、安装harbor

请参考我的以下链接
https://blog.csdn.net/qq_33842795/article/details/100030657

5、安装helm

1、执行脚本

curl -L https://git.io/get_helm.sh | bash

2、创建配置配置文件

创建rbac-config.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
kubectl apply -f rbac-config.yaml
安装helm
helm init --service-account tiller --history-max 200

– 如果报错 那就手动创建下面文件

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: helm
        name: tiller
    spec:
      automountServiceAccountToken: true
      containers:
      - env:
        - name: TILLER_NAMESPACE
          value: kube-system
        - name: TILLER_HISTORY_MAX
          value: "0"
        image: sapcc/tiller:v2.14.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /liveness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        name: tiller
        ports:
        - containerPort: 44134
          name: tiller
        - containerPort: 44135
          name: http
        readinessProbe:
          httpGet:
            path: /readiness
            port: 44135
          initialDelaySeconds: 1
          timeoutSeconds: 1
        resources: {}
  selector:
    matchLabels:
      app: helm
      name: tiller
status: {}

---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: kube-system
spec:
  ports:
  - name: tiller
    port: 44134
    targetPort: tiller
  selector:
    app: helm
    name: tiller
  type: ClusterIP
status:
  loadBalancer: {}

再去kubectl apply -f xxx.yaml

添加阿里helm仓库

helm repo add mirror-stable  http://mirror.azure.cn/kubernetes/charts/

在执行刷新仓库

helm repo update

6、安装nfs

首先创建文件夹

mkdir -p /data/nfs-data
chmod -R 777 /data/nfs-data

安装 nfs

yum install -y nfs-utils
vim /etc/exports

添加以下内容
/data/nfs-data/ *(rw,sync,no_root_squash,no_subtree_check)

启动nfs服务

systemctl enable rpcbind.service && systemctl enable nfs-server.service
systemctl start rpcbind.service && systemctl start nfs-server.service

确认NFS服务器启动成功

showmount -e 127.0.0.1

使用命令,就能看到自己挂载的文件夹了

7、安装nfs-client

helm install --name nfs-client --set nfs.server=192.168.136.171 --set nfs.path=/data/nfs-data stable/nfs-client-provisioner

8、安装jenkins

创建jenkins-pvc.yaml文件

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-jenkins
  namespace: jenkins
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: nfs-client
kubectl apply -f jenkins-pvc.yaml
kubectl get pvc -n jenkins

获取jenkins包

helm fetch stable/jenkins 
然后解压
修改value.yaml文件

以下内容
master.adminPassword=admin
ingress.enabled=true
ingress.path="/"
ingress.hostName=jenkins.ingress.com
persistence.existingClaim=nfs-jenkins

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

helm install --name jenkins -f values.yaml stable/jenkins --namespace jenkins

配置hosts 对应jenkins.ingress.com

访问 http://jenkins.ingress.com

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值