docker+k8s+git+jenkins

部署项目 k8s +nginx+阿里云

  • 首先在nginx配置一个server (这里的ip是service的ip,server_name是域名,需要申请)
server {
		listen 80;
		server_name admin-dev.minbofin.com;

		location / {
				proxy_pass http://172.21.14.53;
				client_max_body_size    1000m;
		}
	}
  • 创建一个pod,上面会展示什么服务能访问
  • 在这里插入图片描述
  • 创建一个service 监听pods,tcp端口是监听端口,监听pods 暴露出来的端口,查看 service 的yaml文件,这里的 targetPort就是pods暴露出来的端口,也就是gin的程序端口
    在这里插入图片描述

kubectl转发本地的redis请求到pods里面的redis

kubectl port-forward redis-6f6557bd4c-xh7td 2329:6379 -n icdev

kubectl转发本地的mongo请求到pods里面的mongo

	kubectl port-forward mongod-0 27019:27017  -n icdev

kubectl port-forward转发请求

  • kubectl port-forward 通过端口转发映射本地端口到指定的应用端口,从而访问集群中的应用程序

k8s编辑configmap

	kubectl edit cm register-env -n icdev

在这里插入图片描述

登录阿里云服务器

chmod 600 hzlmt.pem //使pem文件可执行 
ssh -i hzlmt.pem root@47.103.90.191

k8s挂载
在阿里云买一个磁盘,然后到k8s声明一个存储卷(和存储声明),在yaml文件里面配置好挂载目录

	volumeMounts:
        - name: rescore-data
          mountPath: /data


	volumes:
    - name: rescore-data
      persistentVolumeClaim:
        claimName: rescore-pvd

在这里插入图片描述 mountPath就是挂载文件的目录 进入pods里面就能查看,这个data就是

在这里插入图片描述

一些细节 match labels

配置kubectl
在这里插入图片描述

k8s新建service

  • service相当于pod的集合 向外暴漏服务地址
  • metadata:包含Pod的一些meta信息,比如名称、namespace、标签等信息。
  • spec:包括一些container,storage,volume以及其他Kubernetes需要的参数,以及诸如是否在容器失败时重新启动容器的属性。可在特定Kubernetes API找到完整的Kubernetes Pod的属性
  • app: mongodb #这里选择器一定要选择容器的标签
  • kubectl create -f service.yaml 执行命令创建一个service
  • 在这里插入图片描述
  • kubectl get services 列出所有的services
  • 在这里插入图片描述ip地址随机分配的
  • kubectl exec -ti icplaintiff-69dcd58fd9-g56wl -n icdev – /bin/sh 进入pod里面
  • kubectl describe configmaps register-env -n icdev 查看configmap 名字在yaml文件里面
  1. 总流程

    1. 写好docker file

       		FROM alpine
      
       		WORKDIR /register  
       		
       		ADD register .
       		
       		RUN mkdir toml     
       		
       		ADD service.toml toml/    #toml文件需要复制到pod里面
       		
       		EXPOSE 8000
       		
       		CMD ["./register"]  
      
  2. 编写ENV文件

    在这里插入图片描述
    在这里插入图片描述
    创建configmap

    1. 编写k8s yaml文件
      在这里插入图片描述镜像地址与docker定义的一样

    2. 触发jenkis 自动创建docker镜像在这里插入图片描述在这里插入图片描述
      注意: 要加CGO_ENABLED=0

    3. kubectl create -f deployment.yaml  #创建pod
      kubectl get pods -n icdev   #展示创建的pod  可以看日志查看创建情况
      
  • List item

  • docker login --username=江苏铭博信息技术有限公司 registry.cn-shanghai.aliyuncs.com 密码是mt123456

  • 步骤

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

  • cat /root/.kube/config 查看kubectl config

  • List item kubectl config文件放在这个目录下面

  • docker build -t nginx-alpine . **dokcer build **在这里插入图片描述

  • 运行容器在这里插入图片描述

  • Registry:注册服务器,用于管理镜像仓库,起到的是服务器的作用。
    Repository:镜像仓库,用于存储具体的docker镜像,起到的是仓库存储作用

  • Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。
    k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
    说白了,kubernetes去管理Docker集群

  • Docker技术的三大核心概念,分别是:

     镜像(Image)
     
     容器(Container)
     
     仓库(Repository)
    
  • 一个K8S系统,通常称为一个K8S集群(Cluster)。

     这个集群主要包括两个部分:
     
     一个Master节点(主节点) 
     
     一群Node节点(计算节点)
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值