k8s中将Jenkins安装到master节点上的yaml
Node
将 pod 指定到特定的 node上有几种方式,使用label是个很好的方法,在执行前需要给每个node打个标签命令如下
$ kubectl label node master nodename=master
这句命令的意思是给master节点上打上 nodename=master 的标签,如此可以为其他节点也打上各自的标签
yaml 配置
--- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: traefik-ingress-controller rules: - apiGroups: - "" resources: - services - endpoints - secrets verbs: - get - list - watch - apiGroups: - extensions resources: - ingresses verbs: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: traefik-ingress-controller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: traefik-ingress-controller subjects: - kind: ServiceAccount name: traefik-ingress-controller namespace: kube-system --- apiVersion: v1 kind: ServiceAccount metadata: name: traefik-ingress-controller namespace: kube-system --- kind: DaemonSet apiVersion: extensions/v1beta1 metadata: name: traefik-ingress-controller namespace: kube-system labels: k8s-app: traefik-ingress-lb spec: template: metadata: labels: k8s-app: traefik-ingress-lb name: traefik-ingress-lb spec: serviceAccountName: traefik-ingress-controller terminationGracePeriodSeconds: 60 hostNetwork: true containers: - image: traefik name: traefik-ingress-lb ports: - name: http containerPort: 80 hostPort: 80 - name: admin containerPort: 8080 securityContext: capabilities: drop: - ALL add: - NET_BIND_SERVICE args: - --api - --kubernetes - --logLevel=INFO --- apiVersion: v1 kind: Service metadata: name: traefik-web-ui namespace: kube-system spec: selector: k8s-app: traefik-ingress-lb ports: - name: web port: 80 targetPort: 8080 --- apiVersion: apps/v1 kind: Deployment metadata: name: jenkins-deployment namespace: kube-system labels: app: jenkins spec: replicas: 1 selector: matchLabels: app: jenkins template: metadata: labels: app: jenkins spec: terminationGracePeriodSeconds: 60 containers: - name: jenkins image: jenkins/jenkins:lts imagePullPolicy: IfNotPresent env: - name: JENKINS_OPTS value: "--prefix=/jenkins" ports: - name: web containerPort: 8080 protocol: TCP - name: agent containerPort: 50000 protocol: TCP volumeMounts: - name: jenkins-home mountPath: /var/jenkins_home volumes: - name: jenkins-home hostPath: path: /root/jenkins-home nodeSelector: nodename: master --- apiVersion: v1 kind: Service metadata: name: jenkins-service namespace: kube-system labels: app: jenkins spec: ports: - port: 8888 targetPort: 8080 name: web - port: 50000 targetPort: 50000 name: agent selector: app: jenkins --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: traefik-web-ui namespace: kube-system annotations: kubernetes.io/ingress.class: traefik traefik.frontend.rule.type: PathPrefixStrip spec: rules: - host: c4.k8s.com http: paths: - path: /ingress backend: serviceName: traefik-web-ui servicePort: web --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: jenkins-ingress namespace: kube-system annotations: kubernetes.io/ingress.class: traefik traefik.ingress.kubernetes.io/app-root: /jenkins traefik.ingress.kubernetes.io/rule-type: PathPrefix traefik.frontend.passHostHeader: "true" spec: rules: - host: c4.k8s.com http: paths: - path: /jenkins backend: serviceName: jenkins-service servicePort: web

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
kubernetes的timeout问题
kubernetes+alpine+php特别容易出现访问外网/解析外网地址的时候出现超时的问题. 原因 docker容器访问外网的时候,整个完整路径是这样的. 容器-->主机-->外网-->主机-->容器 容器到主机之间的流量要经过源地址转换(SNAT)才能顺利流通. SNAT就像是一个搬运工,把砖(流量)从容器搬到主机 如果一个主机上面运行多个容器,并发访问外网(特别是PHP这种没有连接池的)时向系统申请可用端口(nf_nat_l4proto_unique_tuple),不可用时+1,然后再申请,再校验.这个过程一多,最终就会导致寻址超时. 说白了是个系统内核问题. 详细的解释见 记一次Docker/Kubernetes上无法解释的连接超时原因探寻之旅 解决方案 最优解 节点升级到 5.1的Linux内核. iptables升级到1.6.2以上 用基于IPVS模式,尽量少做SNAT/DNAT,支持随机端口SNAT的网络插件启动kubernetes 或者用绕过SNAT的网络插件插件方案,比如阿里云的terway.但这个插件跟阿里云绑定得比较深入,需要每台机器额...
- 下一篇
阿里云入门搭建小细节
前言实习生涯还在继续,这两天倒腾了一下阿里云。下面来分享一下。 云服务器我觉得就是一台电脑,只不过你可以用,但是不能摸到,拿来挂QQ,挂个人网站,等等都行。 所以接下来开始入云端吧。 一、云服务器ECS购买 首先是买服务器,由于我还是学生,所以可以在阿里云便宜的买到一个服务器(配置比较低)。 名词解释:预装环境: 就是你买的服务器给你装什么系统(谨慎选择貌似后期无法更换), 图中,CentOS,Ubuntu 都是Linux系统,下面两个都是windows专门的服务器系统。 没玩过Linux的可以选下面两个试试水。 地域: 顾名思义吧,就是你的机子实际所在的地方。主要考虑的是,服务器目标用户所在地和 服务器直接的通信问题。一般来说越近越好。地域对应关系见下图↓↓↓ 还有就是服务器性能问题,上图的配置其实也够个人用的了,还有上图的网络速度其实 指的是服务器的上行速度,也就是外网的下行速度,实际服务器的下行速度还是很快的。 我选的是,Windows的服务器。 二、上云买好服务器以后就可以进入管理界面准备上云了。 首先是界面: 云服务器ECS-->实例 就可以看到你刚刚买的服务器了。你...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址