kubernetes
kubernetes
要争气
人生来平凡,因奋斗进取而不凡。
展开
-
Jenkins基于Kubernetes搭建持续集成平台CICD以及部署SpringCloud应用程序
一 环境准备kubernetes集群:对容器资源编排 阿里云镜像仓库:存储部署工具镜像,存储对应用程序构建出的镜像 Jenkins:持续部署组件,搭建部署流水线 GitLab:代码管理,存储提交的应用程序代码,存储部署流水线配置文件Jenkinsfile文件二 搭建Kubernetes集群集群搭建参考《使用kubeadm搭建kubenetes集群 部署Nginx》搭建集群,示例用两个节点搭建了一个Kubernetes集群。# 集群搭建成功[root@localhost ~]# .原创 2021-07-05 13:51:40 · 389 阅读 · 0 评论 -
kubernetes常用命令
kubectl常用示例查看类命令# 获取节点和服务版本信息kubectl get nodes# 获取节点和服务版本信息,并查看附加信息kubectl get nodes -o wide# 获取pod信息,默认是default名称空间kubectl get pod# 获取pod信息,默认是default名称空间,并查看附加信息【如:pod的IP及在哪个节点运行】kubectl get pod -o wide# 获取指定名称空间的podkubectl get pod -n kube转载 2021-07-04 11:54:41 · 405 阅读 · 0 评论 -
kubernetes资源管理平台ratel
ratel是一个kubernetes集群资源管理平台,使用它可以对多种资源进行创建 查看 修改和删除操作,支持配置多个集群的管理。官网:https://github.com/dotbalo/ratel-doc需要注意在安装时配置 server.yaml# 先拷贝集群配置文件到当前目录:cp /root/.kube/config test1.config# kubeConfigPath 按如下去写,不用在/mnt下手动创建test1.config# 不用配置serverAdminUser s原创 2021-06-30 14:43:59 · 923 阅读 · 0 评论 -
K8s-yaml的使用及命令
YAML配置文件管理对象对象管理:# 创建deployment资源kubectl create -f nginx-deployment.yaml# 查看deploymentkubectl get deploy# 查看ReplicaSetkubectl get rs# 查看pods所有标签kubectl get pods --show-labels# 根据标签查看podskubectl get pods -l app=nginx# 滚动更新镜像kubectl set image d.原创 2021-06-30 10:29:03 · 431 阅读 · 0 评论 -
【自动构建流水线】kubernets 多集群创建
在上一篇文章 《Jenkins连接kubernetes集群》中创建了ca.crt client.crt client.key三个文件,在创建集群时需要使用这三个文件。# 将该文件拷贝到上面提到的三个文件所在目录cp /root/.kube/config /usr/local/java/k8s/multi-cluster.yaml# 创建集群test 集群访问地址可以用kubectl cluster-info查询kubectl config set-cluster test --...原创 2021-06-26 19:42:26 · 161 阅读 · 0 评论 -
Jenkins 使用证书连接Kubernetes集群
一、使用rbac授权,token的方式连接k8s1、rbac授权Jenkins通过kubernetes-plugin对k8s进行操作,需要在k8s内提前进行rbac授权。为方便管理,我们为其绑定cluster-admin角色。当然也可以进一步缩小使用权限。#创建serviceaccountskubectl create sa jenkins#对jenkins做cluster-admin绑定kubectl create clusterrolebinding jenkins --clust.原创 2021-06-26 18:23:06 · 1845 阅读 · 2 评论 -
Jenkins blue ocean 入门
blue ocean使得jenkin界面比较清晰,以可视化的方式操作流水线blue ocean将会生成一个分支供应其他流水线引用。1 打开Blue Ocean首先检查是否有blue ocean,没有则需要安装插件点击打开 Blue Ocean进入界面。2 创建流水线jenkins 所在服务器需要安装git客户端,否则无法创建。流水线生成的描述文件需要保存在gitlab,需要在gitlab创建一个工程保存Jenkinsfile,在gitlab创建项目jenkinsfile-d.原创 2021-06-23 14:43:48 · 2023 阅读 · 0 评论 -
jenkins 级联变量参数
首先创建 Active Choices Parameter接下来创建 Active Choices Reactive Parameter级联参数创建完成,测试:原创 2021-06-23 10:53:12 · 966 阅读 · 0 评论 -
Jenkins 变量使用
1 系统变量创建测试流水线hello-word,流水线脚本pipeline { agent any stages { stage('Hello') { steps { sh """ env """ } } }}构建后系统变量全部打出。2 CHOICE PARAM...原创 2021-06-23 10:12:25 · 985 阅读 · 1 评论 -
Jenkins配置GitLab凭据
选择凭据点击提供者 Jenkins点击添加凭据原创 2021-06-22 14:06:27 · 989 阅读 · 0 评论 -
阿里云客户端工具cli
在linux服务上访问aliyAPI需要用到该工具,此处是在部署Jenkins的Node上安装该工具,用于获取阿里云镜像仓库的镜像Tag,从而选择合适的镜像去部署。下载CLI原创 2021-06-20 16:36:15 · 958 阅读 · 0 评论 -
Jenkins安装
一 下载http://mirrors.jenkins.io/war-stable/原创 2021-06-20 16:12:59 · 72 阅读 · 0 评论 -
GitLab安装
下载GitLabcentosxuanzhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/原创 2021-06-19 19:00:41 · 637 阅读 · 0 评论 -
部署Dashboard
Dashboard是kubernetes集群的web ui,使用它可以查看集群监控信息以及发布资源。1 下配置文件wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.1/aio/deploy/recommended.yaml# 下载后修改配置 新增type: NodePort 和 nodePort:31443,以便能实现非本机访问:kind: ServiceapiVersion: v1metadata: l原创 2021-06-17 10:32:15 · 214 阅读 · 0 评论 -
部署metrics-server 采集pod资源占用数据
metrics-server可以获取节点的资源信息,如cpu 内存占用情况。1 api server 开启Aggregator Routing原创 2021-06-16 16:32:12 · 766 阅读 · 0 评论 -
容器交付流程
容器交付流程通常分为四个阶:开发阶段、持续集成阶段、应用部署阶段和运维阶段。开发阶段:开发应用程序,编写Dockerfile;持续集成阶段:对应用程序编译dabao原创 2021-06-08 16:27:02 · 327 阅读 · 1 评论 -
高可用集群搭建
首先需要部署多个master,每个master节点需要部署keepalived,keepalived可以检测master节点状态,并且提供虚拟ip配置。每个master节点还需要部署haproxy原创 2021-06-07 17:48:20 · 545 阅读 · 0 评论 -
集群健康工具
kubenetes集群可以采用普罗米修斯和grafana进行监控,比如监控资源占用率、容器指标信息等,普罗米修斯用于采集数据,grafana对数据分析及可视化。在安装监控组件前,要保证yu原创 2021-06-07 14:46:24 · 80 阅读 · 0 评论 -
NFS使用pv pvc解决主机ip和存储路径暴露问题
使用nfs对pod的数据持久化,进行网络存储时,需要在资源编排文件中暴露nfs主机的ip和存储路径,这样有一定弊端,为了解决这一问题引入了pv pvc。pv:存储的资源,提供了资源访问的方式;pvc:...原创 2021-06-04 15:20:58 · 468 阅读 · 0 评论 -
NFS 数据持久化
使用nfs可以将pod中的数据进行持久化,比如持久化到其他主机上。首先需要在目标主机上安装nfs,其次在pod所在的节点上安装nfs,然后在yaml文件定义挂载目录。在宿主机原创 2021-06-04 14:35:00 · 512 阅读 · 0 评论 -
chart使用全局模板变量
helm 通过全局变量模板,可以实现yaml高效的复用。1 创建chart# 创建自定义chart[root@k8smaster helm]# helm create mychartCreating mychart[root@k8smaster helm]# lsmychart web-char web-deploy.yaml web-service.yaml[root@k8smaster helm]# ls mychart/charts Chart.yaml templat原创 2021-06-04 11:04:50 · 553 阅读 · 0 评论 -
helm 使用自定义chart发布应用
1 准备一组yaml文件如下准备两个资源编排文件,nginx的deploy文件和nginx的service文件生成 deploy-web.yaml原创 2021-06-03 17:21:43 · 770 阅读 · 0 评论 -
Heml快速部署weave scope 管理工具
Helm是一个包管理工具,使用它可以便宜的把打包好的yaml文件部署到kubenetes中,它可以对多个yaml文件进行统一的管理,实现yaml的高效复用、实现应用级别的版本管理。1 安装helm原创 2021-06-03 11:03:38 · 279 阅读 · 0 评论 -
Ingress 使用域名访问服务
Ingress是Kubenetes中的一个controller对象,使用Ingress可以通过域名来访问服务,一个服务对应一组pod,实现负载均衡。Ingress并不是xi原创 2021-06-02 16:42:44 · 3966 阅读 · 2 评论 -
安全机制基于RABC进行访问控制
1 创建命名空间[root@k8smaster ~]# kubectl logs mypod1info hello[root@k8smaster ~]# kubectl create ns roledemonamespace/roledemo created[root@k8smaster ~]# kubectl get nsNAME STATUS AGEdefault Active 24hkube-node-lease Activ原创 2021-06-02 11:24:05 · 166 阅读 · 0 评论 -
ConfigMap配置管理变量 数据卷
ConfigMap与Secret用法基本相同,只不过它存储的是非加密数据到etcd,其他pod通过变量或者容器数据卷进行数据挂载读取。创建ConfigMap:准备一个配置文件ji原创 2021-06-02 10:10:15 · 274 阅读 · 0 评论 -
Secret加密数据 挂载到其他pod
通过secret可以将加密数据保存到etcd中,其他pod通过变量或者容器数据卷的方式将加密数据挂载到该pod容器中。创建secret pod,把加密数据保存到etcd原创 2021-06-01 17:14:26 · 578 阅读 · 0 评论 -
一次性任务和定时任务
一次性任务:创建资源编排文件 job.yaml[root@k8smaster ~]# cat job.yamlapiVersion: batch/v1kind: Jobmetadata: name: pispec: template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bp原创 2021-06-01 16:02:49 · 345 阅读 · 0 评论 -
DaemonSet
DaemonSet确保所有的Node运行同一个Pod的副本,即使新加入集群的Node也会运行。资源编排文件[root@k8smaster ~]# cat sts.yamlapiVersion: v1kind: Servicemetadata: name: nginx labels: app: nginxspec: ports: - port: 80 name: web clusterIP: None selector: app: nginx原创 2021-05-28 18:03:38 · 171 阅读 · 0 评论 -
发布有状态应用
无状态应用比如web应用,每个pod都是一样的,对于pod的启动顺序没要求;有状态应用比如Mysql主从,每个pod都是独立的,对于启动顺序有要求,会给pod生成一个不变的域名。原创 2021-05-28 17:32:30 · 138 阅读 · 0 评论 -
Service
1原创 2021-05-28 16:01:40 · 108 阅读 · 0 评论 -
kubenete滚动升级版本动态扩缩容
一 滚动升级根据资源编排文件部署一个Nginx应用,指定其版本为1.14,副本数为2个,对其升级为1.15apiVersion: apps/v1kind: Deploymentmetadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: "2021-05-26T14:05:03Z" generation: 1 labels: app: web managedF原创 2021-05-27 18:36:54 · 178 阅读 · 0 评论 -
kubenete使用deploy controller 先生成资源编排文件yaml 再用yaml部署Nginx
Controller是集群中的一个管理和创建容器的对象,pod通过controller对应用进行运维如动态扩缩容、滚动升级等,pod和controller通过标签建立关系,deployment是一个controller,可以部署无状态应用、动态扩缩容和滚动升级等。下面将用资源编排文件进行部署Nginx应用1 生成资源编排文件[root@k8smaster ~]# kubectl create deploy web --image=nginx -o yaml --dry-run > web原创 2021-05-27 15:47:35 · 252 阅读 · 0 评论 -
Pod节点调度 污点
污点:给节点标记污点,影响节点调度,污点值有三种:一定不会被调度、尽量不会调度、一定不会调度并且驱逐该节点已有的pod到其他节点,可以在资源编排文件上配置污点容忍忽略污点。# 查看集群节点[root@k8smaster ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8smaster Ready master 6h45m v1.18.0k8snode1 Ready <n原创 2021-05-27 11:37:15 · 442 阅读 · 0 评论 -
Kubenetes中Pod的概念
Pod是由一组共享网络和存储的容器组成,它是部署的最小单元,一个pod相当于一个虚拟的主机,在这个Pod下的一组容器可以使用localhost互相访问,不同的Pod在同一个共享的网络空间下,可以使用pod的ip进行访问,pod的共享网络是这样实现的:在pod中会创建一个根容器pause容器,其他的业务容器会加入到这个pause容器下,由于在同一个namespace下他们的网络是共享的;pod的共享存储是这样实现的,通过容器数据卷,进行容器数据的持久化实现共享存储。 Pod的镜像拉取策略默认是...原创 2021-05-27 11:20:53 · 305 阅读 · 0 评论 -
yaml资源编排文件的创建和导出
集群使用资源编排文件yaml文件对资源进行编排,可以使用kubectl create或者kubectl get快速得到资源编排文件。快速创建一个资源编排文件:[root@k8smaster ~]# kubectl create deploy web --image nginx -o yaml --dry-run > web.yamlW0526 14:17:16.319803 43068 helpers.go:535] --dry-run is deprecated and can be原创 2021-05-26 15:36:36 · 808 阅读 · 0 评论 -
kubectl集群管理命令
kubectl是一个集群管理命令,使用它可以在集群上进行应用容器化的安装和部署。它的命令语法是 kubectl [command] [type] [name] [flags]command 指定要对资源进行的操作,如 create get describe和delete;type 指定资源的类型,区分大小写,支持单数和复数形式;name 资源名称,区分大小写;flags 一些其他可选参数可选参数具体可以用 kubectl --help查阅...原创 2021-05-26 14:48:22 · 171 阅读 · 0 评论 -
二进制搭建Kubenetes集群
环境和Kubeadm方式搭建一样,使用两个节点来搭建。1 初始化# 关闭防火墙systemctl stop firewalldsystemctl disable firewalld# 关闭 selinuxsed -i 's/enforcing/disabled/' /etc/selinux/config # 永久setenforce 0 # 临时# 关闭 swapswapoff -a # 临时sed -ri 's/.*swap.*/#&/' /etc/fstab .原创 2021-05-21 11:42:39 · 364 阅读 · 0 评论 -
使用kubeadm搭建kubenetes集群 部署Nginx
在搭建集群时候,对于硬件要求必须至少为2个CPU,关闭防火墙、SWAP、SELINUX、配置hosts,接下来搭建3个节点的集群,一个主节点两个工作节点,搭建后发布一个Nginx应用。1 准备环境# 关闭防火墙 如果节点加入集群时超时,可能是防火墙未被关闭systemctl stop firewalldsystemctl disable firewalld# 关闭selinuxsed -i 's/enforcing/disabled/' /etc/selinux/config # 永久原创 2021-05-20 16:19:23 · 421 阅读 · 0 评论