ip | hostname | Kubernetes角色 | linux版本 | kubernetes版本 |
---|---|---|---|---|
192.168.136.171 | master | master | Centos 7.6 | v1.16.0 |
192.168.136.156 | node1 | node | Centos 7.6 | v1.16.0 |
192.168.136.157 | node2 | node | Centos 7.6 | v1.16.0 |
192.168.136.158 | node3 | node | Centos 7.6 | v1.16.0 |
192.168.136.168 | gitlab | 无 | Centos 7.6 | 无 |
192.168.136.167 | harbor | 无 | Centos 7.6 | 无 |
最小标准 2cpu,4g内存
本人使用 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
我是开发人员,采用简单方式部署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/
创建项目
添加ssh
#先看看是不是已经有啦,如果有内容就直接copy贴过去就行啦
$ cat ~/.ssh/id_rsa.pub
#如果上一步没有这个文件 我们就创建一个,运行下面命令(邮箱改成自己的哦),一路回车就好了
$ ssh-keygen -t rsa -C "[email protected]"
$ cat ~/.ssh/id_rsa.pub
请参考我的以下链接
https://blog.csdn.net/qq_33842795/article/details/100030657
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
首先创建文件夹
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
使用命令,就能看到自己挂载的文件夹了
helm install --name nfs-client --set nfs.server=192.168.136.171 --set nfs.path=/data/nfs-data stable/nfs-client-provisioner
创建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