.net core webapi 服务通用 Deploy.yaml 文件 apiVersion: app.k8s.io/v1beta1 kind: Application metadata: name
.net core grpc 服务通用 Deploy.yaml 文件 apiVersion: apps/v1 kind: Deployment metadata: namespace: ${APP_NAMESPACE
假设deploy.yaml您要检查以下文件,以检查其当前目录中保存的最佳安全性和配置做法: apiVersion: apps/v1 kind: Deployment metadata: name: 我们应该得到如下输出: deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" is not set deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" has memory deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) container "portainer" has memory
docker-hub 里面的一个已经做好的最简单的项目,会暴露一个8080端口的web服务; 最终的目标,在k8s创建一个pod,pod中运行一个我们的容器,最终我们在外部可以访问到这个服务 首先创建两个文件 # deploy.yaml port: 80 targetPort: 8080 nodePort: 30008 执行 kubectl create -f service.yaml kubectl create -f deploy.yaml 修改 deploy.yaml 文件中的 replicas: 2 改成2个 使用命令:kubectl apply -f deploy.yaml 使配置生效 然后我们就可以看到,原来的一个pod变成了两个, 同样的,当我们需要减少服务的数量时也是相同的道理 版本升级 对于应用的版本升级也是同样的道理 修改 deploy.yaml 文件中的 image: linkinstar/mini-go:v2.0 改成2.0 使用命令:kubectl apply -f deploy.yaml 使配置生效 版本回退 当我们发现发布的服务问题,想要进行版本回退的时候,就可以使用 kubectl rollout undo deployments
sh ''' sed -i "s/#namespace/prod/g" deploy.yaml 128m -XX:MetaspaceSize=128m -jar -Ddev_meta=http://conf.x.ops:8801/ -Denv=DEV -Didc=prod app.jar%g" deploy.yaml sh ''' sed -i "s/#namespace/uat/g" deploy.yaml MetaspaceSize=128m -jar -Ddev_meta=http://conf.keking.ops:8801/ -Denv=DEV -Didc=sales_docker app.jar%g" deploy.yaml ''' kubernetesDeploy configs: 'deploy.yaml',
yaml=/opt/scripts/yaml //定义一个目录变更 mkdir -p $yaml/$ns/$app/properties //创建目录 touch $yaml/$ns/$app/deploy.yaml pwd /opt/scripts/yaml/test/backends [root@localhost backends]# tree . ├── deploy_template.yaml ├── deploy.yaml version=$version //输出信息 cat $yaml_path/deploy_template.yaml | sed "s/VERSION/$version/g" > $yaml_path/deploy.yaml //替换部署脚本里面的版本号【k8s里面的deploy】 echo -------------replace deploy-------------//输出信息 cat $yaml_path/deploy.yaml " //删除已存在的容器 ssh root@$k8s_host "$kubectl create -f http://$yaml_host/$ns/$app/deploy.yaml" //创建一个新的容器
yaml=/opt/scripts/yaml //定义一个目录变更 mkdir -p $yaml/$ns/$app/properties //创建目录 touch $yaml/$ns/$app/deploy.yaml pwd /opt/scripts/yaml/test/backends [root@localhost backends]# tree . ├── deploy_template.yaml ├── deploy.yaml version=$version //输出信息 cat $yaml_path/deploy_template.yaml | sed "s/VERSION/$version/g" > $yaml_path/deploy.yaml //替换部署脚本里面的版本号【k8s里面的deploy】 echo -------------replace deploy-------------//输出信息 cat $yaml_path/deploy.yaml " //删除已存在的容器 ssh root@$k8s_host "$kubectl create -f http://$yaml_host/$ns/$app/deploy.yaml" //创建一个新的容器
sh ''' sed -i "s/#namespace/prod/g" deploy.yaml 128m -XX:MetaspaceSize=128m -jar -Ddev_meta=http://conf.x.ops:8801/ -Denv=DEV -Didc=prod app.jar%g" deploy.yaml sh ''' sed -i "s/#namespace/uat/g" deploy.yaml MetaspaceSize=128m -jar -Ddev_meta=http://conf.keking.ops:8801/ -Denv=DEV -Didc=sales_docker app.jar%g" deploy.yaml ''' kubernetesDeploy configs: 'deploy.yaml',
架构图如下: [Untitled Diagram.png] 部署 官方网站地址(https://kubernetes.github.io/ingress-nginx/deploy/), 下载deploy.yaml /raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.40.2/deploy/static/provider/cloud/deploy.yaml 下载完毕之后需要修改镜像地址(一下主要展示了deploy.yaml 文件的Deployment 内容,其他内容无需修改, 不要删除 ): # Source: ingress-nginx/templates Deployment的yaml中启动参数--ingress-class=nginx 这个不能其他的ingress controller 冲突 [image.png] 部署: kubectl apply -f deploy.yaml
发布镜像到Kubernetes 1、创建Kubernetes的部署文件deploy.yaml,部署文件为yaml文件格式。 2、因为在deploy.yaml文件中指定了namespace,所以先创建一个名为k8s-netcore的namespace kubectl create namespace k8s-netcore 3、执行deploy.yaml文件 kubectl create -f deploy.yaml --validate #加上 --validate 参数,当yaml文件有错误时,会给出提示 4、使用kubectl #创建namespace kubectl create namespace k8s-netcore #部署Kubernetes kubectl create -f deploy.yaml --validate
用法 例如我们有一个简单的 Deployment, /tmp/deploy.yaml: apiVersion: extensions/v1beta1 kind: Deployment metadata: /gen_kustomize.py -i /tmp/deploy.yaml -o kust $ tree kust kust ├── base │ ├── deploy.yaml │ └── kustomization.yaml
k3s 把这个文件https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml kube-webhook-certgen k8s.gcr.io/ingress-nginx/controller liangjw/ingress-nginx-controller 上传deploy.yaml 文件,并执行命令:kubectl apply -f deploy.yaml稍等一会儿,就装好了。
nginx-ingress-gray/nginx-ingress-gray/git ├── Jenkinsfile # 持续集成脚本 ├── deployment │ ├── canary │ │ └── deploy.yaml # 灰度发布部署文件 │ ├── dev │ │ └── deploy.yaml # 预发布部署文件 │ └── pro │ └── deploy.yaml # 灰度发布初始化(首次运行) └── nginx-ingress-init.json # nginx-ingress 初始化(首次运行) 灰度环境和生产环境主要由 deployment/canary/deploy.yaml 和 deployment/pro/deploy.yaml 来实现,主要是实现了两套环境的: Deployment Service Ingress A/B 测试和灰度由配置的 Ingress 进行控制: commit' $ git push -u origin master ``` 注意,推送前请将 deployment/dev、deployment/canary、deployment/pro 文件夹的 deploy.yaml
典型的应用场景包括: - 定义 Deployment 来创建 Pod 和 ReplicaSet - 滚动升级和回滚应用 - 扩容和缩容 Deployment 应用示例: vim deploy.yaml imagePullPolicy: IfNotPresent ports: - containerPort: 80 kubectl create -f deploy.yaml
settings.CI.yaml │ settings.Production.yaml │ Startup.cs │ ├─build │ CD.yaml │ CI.yaml │ _deploy.yaml │ └─deploy │ kustomization.yaml │ ├─base │ deploy.yaml │ kustomization.yaml │ ├─ci │ deploy.yaml │ kustomization.yaml │ └─prod deploy.yaml
//raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.1/deploy/static/provider/cloud/deploy.yaml 替换镜像地址查看该文件用到了哪些镜像:[root@centos05 deployment]# cat deploy.yaml | grep image image: registry.k8s.io 549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47安装保存以后,部署ingress-nginx:[root@centos05 deployment]# kubectl apply -f deploy.yaml
执行生成deploy.yaml kubectl apply -f deploy.yaml kubectl get deployment kubectl get rs kubectl get pod ? kubectl apply -f deploy.yaml kubectl rollout status deployment hello-deployment ? ?
开启流水线 见官方文档 1.2 仓库 docker仓库 : dockerhub / 私有镜像仓库 前端代码仓库 : git / gitlab / gitee ... 1.2.1 后端代码准备 k8s deploy.yaml )]) { container('maven') { sh ''' envsubst < deploy/k8s/deploy.yaml
//raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.6.4/deploy/static/provider/cloud/deploy.yaml vi deploy.yaml #删除镜像的SHA256校验和 #也就是镜像tag后面的所有信息 #因为我们的镜像是通过修改tag得到的,这个值无法修改,只能删除 #这个镜像不确定能否一直可用 docker ingress-nginx/controller:v1.6.3 registry.k8s.io/ingress-nginx/controller:v1.6.3 #写入k8s kubectl apply -f deploy.yaml
ignore-check.kube-linter.io/unset-cpu-requirements : "cpu requirements not required" 现在,当您kube-linter lint deploy.yaml exclude: - "privileged" 如果你运行kubelinter --config config lint deploy.yaml,其中config与上述配置的文件,你应该可以看到添加了需要标签的检查 : deploy.yaml: (object: portainer/portainer apps/v1, Kind=Deployment) no label matching "owner=<any>"