基于k8s的CICD实现jenkins+gitlab

master node01 jenkins+gitlab
2G 2G 4G
192.168.1.20 192.168.1.21 192.168.1.22
docker服务,registry docker服务 docker服务、jenkns、gitlab

模拟一个web服务

//环境准备好了之后,在master节点部署registry服务,将自定义镜像的v1版本上传到私有仓库中。当然其他的2台dockerhost也需要加入到registry服务中。
//提前准备好了私有镜像

[root@master ~]# docker pull registry:2
[root@master ~]# docker run -itd --name registry -p 5000:5000 --restart=always registry:2 
95e38f1fd777cebf19a963c795946e91b8a76edd5e3544fd4f5dc0339f5960c4
三台节点都要修改
[root@master ~]# vim /usr/lib/systemd/system/docker.service
...
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.20:5000
...
[root@master ~]# systemctl daemon-reload 
[root@master ~]# systemctl restart docker
[root@master ~]# docker load < httpd_v1.tar
[root@master ~]# docker push 192.168.1.20:5000/httpd:v1
另外俩节点可以下载

//要求,创建一个Deployment资源,replicas:2,镜像使用自定义镜像V1版本,然后创建一个SVC(type: NodePort, nodePort: 30034)资源对象,和此Deployment资源关联。
创建deployment

[root@master ~]# mkdir /opt/autoweb
[root@master ~]# cd /opt/autoweb/
[root@master autoweb]# vim myapp.yaml

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: myapp
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: myapp
        image: 192.168.1.20:5000/httpd:v1
[root@master autoweb]# kubectl apply -f myapp.yaml

创建svc

[root@master autoweb]# vim mysvc.yaml

kind: Service
apiVersion: v1
metadata:
  name: mysvc
spec:
  selector:
    app: httpd
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30039
[root@master autoweb]# kubectl apply -f mysvc.yaml

//验证各资源的部署情况

[root@master autoweb]# kubectl get deployments.
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
myapp   2/2     2            2           3m43s
[root@master autoweb]# kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP        11d
mysvc        NodePort    10.97.18.79   <none>        80:30034/TCP   58s
[root@master autoweb]# kubectl describe svc mysvc 
Name:                     mysvc
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {
   "apiVersion":"v1","kind":"Service","metadata":{
   "annotations":{
   },"name":"mysvc","namespace":"default"},"spec":{
   "ports":[{
   "nodePort":30034,...
Selector:                 app=httpd
Type:                     NodePort
IP:                       10.97.18.79
Port:                     <unset>  80/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30034/TCP
Endpoints:                10.244.1.2:80,10.244.2.2:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
[root@master autoweb]
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值