当前位置: 首页 > news >正文

做网站为什么要租服务器手机免费建网站

做网站为什么要租服务器,手机免费建网站,自助建站哪个好,如何做类似优酷的视频网站目录 一.创建helm chart(以nginx为例) 1.通过create去创建模板 2.查看模板下的文件 3.用chart模版安装nginx 二.版本更新和回滚问题 1.使用upgrade -f values.yaml或者命令行--set来设置 2.查看历史版本并回滚 三.helm模板内管道和函数 1.defau…

目录

一.创建helm chart(以nginx为例)

1.通过create去创建模板

2.查看模板下的文件

3.用chart模版安装nginx

二.版本更新和回滚问题

1.使用upgrade -f values.yaml或者命令行--set来设置

2.查看历史版本并回滚

三.helm模板内管道和函数

1.defautl

2.quote

3.indent和nindent

4.upper

5.title

6.toYaml


上一篇文章说到,我们可以通过helm将众多已经初步配置好的yaml文件下载来整合使用,甚至还可以自己定义好需要的安装参数用于下载完成后直接使用而不需要过多更改,现在仍然可以在这些功能上继续推进。创建helm chart模板,现成的yaml文件,自己只需要更改values变量文件即可,如下:

一.创建helm chart(以nginx为例)

1.通过create去创建模板

[root@k8s-master helm]# helm create nginx  #创建完成后会在本地创建一个nginx目录
drwxr-xr-x 4 root    root         93 Mar 18 19:58 nginx
[root@k8s-master helm]# tree nginx
nginx
├── charts   #存放的依赖的子chart
├── Chart.yaml     #存放chart基本信息的文件 
├── templates     #模板,名称都简单翻译一下就懂存的是什么
│   ├── deployment.yaml
│   ├── _helpers.tpl   #模板助手
│   ├── hpa.yaml    
│   ├── ingress.yaml
│   ├── NOTES.txt   #本chart的帮助信息
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml   #存储的是你在的templates中文件需要用到的变量
​
3 directories, 10 files

2.查看模板下的文件

[root@k8s-master helm]# cat nginx/templates/service.yaml 
apiVersion: v1
kind: Service
metadata:name: {{ include "nginx.fullname" . }}    #这些使用{{}}括起来的变量就是你需要在values.yaml文件中用值替换的变量labels:{{- include "nginx.labels" . | nindent 4 }}
spec:type: {{ .Values.service.type }}ports:- port: {{ .Values.service.port }}targetPort: httpprotocol: TCPname: httpselector:{{- include "nginx.selectorLabels" . | nindent 4 }}
​

3.用chart模版安装nginx

(1)在values.yaml中定义变量,如下是nginx模版的原始文件

[root@k8s-master nginx]# cat values.yaml 
# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
​
replicaCount: 1
​
image:repository: nginx    #找到需要的地方,这里是镜像名pullPolicy: IfNotPresent   #镜像拉取策略# Overrides the image tag whose default is the chart appVersion.tag: ""    #版本信息
​
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
​
serviceAccount:# Specifies whether a service account should be createdcreate: true# Annotations to add to the service accountannotations: {}# The name of the service account to use.# If not set and create is true, a name is generated using the fullname templatename: ""
​
podAnnotations: {}
​
podSecurityContext: {}# fsGroup: 2000
​
securityContext: {}# capabilities:#   drop:#   - ALL# readOnlyRootFilesystem: true# runAsNonRoot: true# runAsUser: 1000
​
service:    #service类型和端口type: ClusterIPport: 80
​
ingress:   #ingress的相关配置enabled: falseclassName: ""annotations: {}# kubernetes.io/ingress.class: nginx# kubernetes.io/tls-acme: "true"hosts:- host: chart-example.localpaths:- path: /pathType: ImplementationSpecifictls: []#  - secretName: chart-example-tls#    hosts:#      - chart-example.local
​
resources: {}    #资源要求# We usually recommend not to specify default resources and to leave this as a conscious# choice for the user. This also increases chances charts run on environments with little# resources, such as Minikube. If you do want to specify resources, uncomment the following# lines, adjust them as necessary, and remove the curly braces after 'resources:'.# limits:#   cpu: 100m#   memory: 128Mi# requests:#   cpu: 100m#   memory: 128Mi
​
autoscaling:enabled: falseminReplicas: 1maxReplicas: 100targetCPUUtilizationPercentage: 80# targetMemoryUtilizationPercentage: 80
​
nodeSelector: {}
​
tolerations: []
​
affinity: {}

(2)配置后的values.yaml

[root@k8s-master helm]# cat nginx/values.yaml 
# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
​
replicaCount: 1
​
image:repository: nginxpullPolicy: IfNotPresent# Overrides the image tag whose default is the chart appVersion.tag: "1.17.3"   #版本为1.17.3​
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
​
serviceAccount:# Specifies whether a service account should be createdcreate: true# Annotations to add to the service accountannotations: {}# The name of the service account to use.# If not set and create is true, a name is generated using the fullname templatename: ""
​
podAnnotations: {}
​
podSecurityContext: {}# fsGroup: 2000
​
securityContext: {}# capabilities:#   drop:#   - ALL# readOnlyRootFilesystem: true# runAsNonRoot: true# runAsUser: 1000
​
service:type: NodePort    #NodePort类型port: 80     #80端口
​
ingress:enabled: falseclassName: ""annotations: {}# kubernetes.io/ingress.class: nginx# kubernetes.io/tls-acme: "true"hosts:- host: chart-example.localpaths:- path: /pathType: ImplementationSpecifictls: []#  - secretName: chart-example-tls#    hosts:#      - chart-example.local
​
resources: {}# We usually recommend not to specify default resources and to leave this as a conscious# choice for the user. This also increases chances charts run on environments with little# resources, such as Minikube. If you do want to specify resources, uncomment the following# lines, adjust them as necessary, and remove the curly braces after 'resources:'.# limits:#   cpu: 100m#   memory: 128Mi# requests:#   cpu: 100m#   memory: 128Mi
​
autoscaling:enabled: falseminReplicas: 1maxReplicas: 100targetCPUUtilizationPercentage: 80# targetMemoryUtilizationPercentage: 80
​
nodeSelector: {}
​
tolerations: []
​
affinity: {}

(3)安装命令

同k8s运行pod差不多,都可以先测试一下但不实际运行helm install --dry-run my-nginx nginx/,卸载将install替换为uninstall即可

[root@k8s-master helm]# helm install my-nginx nginx/
#指定好安装后的名称后要指定这个nginx模版目录,安装完成后还会提示你访问方式
NAME: my-nginx
LAST DEPLOYED: Mon Mar 18 20:27:00 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services my-nginx)export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")echo http://$NODE_IP:$NODE_PORT[root@k8s-master helm]# kubectl  get pods,svc
NAME                           READY   STATUS    RESTARTS   AGE
pod/my-nginx-9d774fb48-94wd8   1/1     Running   0          3m29s
​
NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        90m
service/my-nginx     NodePort    10.97.171.192   <none>        80:30140/TCP   3m29s
[root@k8s-master helm]# curl http://192.168.2.151:30140
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
​
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
​
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

二.版本更新和回滚问题

1.使用upgrade -f values.yaml或者命令行--set来设置

[root@k8s-master helm]# kubectl  describe pod my-nginx-9d774fb48-94wd8 | grep ImageImage:          nginx:1.17.5Image ID:       docker.io/library/nginx@sha256:922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
[root@k8s-master helm]# vim nginx/values.yaml 
[root@k8s-master helm]# vim nginx/values.yaml 
[root@k8s-master helm]# helm upgrade -f nginx/values.yaml my-nginx nginx/
Release "my-nginx" has been upgraded. Happy Helming!
NAME: my-nginx
LAST DEPLOYED: Mon Mar 18 20:35:40 2024
NAMESPACE: default
STATUS: deployed
REVISION: 2
NOTES:
1. Get the application URL by running these commands:export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services my-nginx)export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")echo http://$NODE_IP:$NODE_PORT
[root@k8s-master helm]# kubectl  get pods
NAME                        READY   STATUS              RESTARTS   AGE
my-nginx-698cb48f59-v4pbb   0/1     ContainerCreating   0          7s
my-nginx-9d774fb48-94wd8    1/1     Running             0          8m48s
[root@k8s-master helm]# kubectl  get pods
NAME                        READY   STATUS    RESTARTS   AGE
my-nginx-698cb48f59-v4pbb   1/1     Running   0          64s
[root@k8s-master helm]# kubectl  describe pod my-nginx-698cb48f59-v4pbb | grep ImageImage:          nginx:1.17.8Image ID:       docker.io/library/nginx@sha256:380eb808e2a3b0dd954f92c1cae2f845e6558a15037efefcabc5b4e03d666d03

2.查看历史版本并回滚

[root@k8s-master helm]# helm history my-nginx
REVISION    UPDATED                     STATUS      CHART       APP VERSION DESCRIPTION     
1           Mon Mar 18 20:27:00 2024    superseded  nginx-0.1.0 1.16.0      Install complete
2           Mon Mar 18 20:35:40 2024    deployed    nginx-0.1.0 1.16.0      Upgrade complete
​
[root@k8s-master helm]# helm rollback my-nginx 1
Rollback was a success! Happy Helming!
[root@k8s-master helm]# kubectl get pods
NAME                       READY   STATUS    RESTARTS   AGE
my-nginx-9d774fb48-9pv7q   1/1     Running   0          5s
[root@k8s-master helm]# kubectl  describe pods my-nginx-9d774fb48-9pv7q | grep ImageImage:          nginx:1.17.5Image ID:       docker.io/library/nginx@sha256:922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4

三.helm模板内管道和函数

1.defautl

也就是和管道符号配合,当你values中的值未指定时,就使用此默认值

以nginx模版的port为例,将其设置为空,但设置了默认值为80,创建过后仍然会暴露80端口

[root@k8s-master helm]# cat nginx/values.yaml | grep portport: 
#在deployment文件中引用了此变量的地方设置default
[root@k8s-master helm]# cat nginx/templates/deployment.yaml  | grep defaultimage: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"containerPort: {{ .Values.service.port | default 80 }}   #这样写#在service文件中引用了此变量的地方设置default
[root@k8s-master helm]# cat nginx/templates/service.yaml | grep default- port: {{ .Values.service.port | default 80 }}
[root@k8s-master helm]# helm install nginx nginx/
[root@k8s-master helm]# kubectl get pods,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6467995c7d-gt4g5   1/1     Running   0          8s
​
NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        113m
service/nginx        NodePort    10.106.164.22   <none>        80:32598/TCP   8s

2.quote

这个表示的是为某个变量设置后,无论设定的变量值是什么类型,都将其识别为字符串类型,书写格式如下

{{ quote .Values.service.port }}

3.indent和nindent

indent表示在同一行变量值前设定多少个缩进值,nindent表示换行后再在变量值前设置多少个缩进值,书写格式如下

{{ .Values.service.port | indent/nindent 10 }}

4.upper

将值都变为大写,格式如下

{{ upper .Values.service.port }}

5.title

将首字母设置为大写,格式如下

{{ title .Values.service.port }}

6.toYaml

将一整个yaml块都取值取过来,一般还需要陪着缩进一起使用,格式如下

{{ toYaml .Values.service.port | indent/nindent 10 }}
http://www.ds6.com.cn/news/112349.html

相关文章:

  • 温州做网站公司新人做外贸怎么找国外客户
  • 免费男人做那个的视频网站运营推广渠道有哪些
  • 模具编程入门先学什么网站优化教程
  • 网站支付宝怎么做的网站建设及网站推广
  • 没有网站可以做淘宝客吗百度搜索推广产品
  • 系统网站自助建站微信营销推广软件
  • 关于网站建设的教材百度商家
  • 域名注册网站排行网络营销产品的特点
  • b2b电子商务网站对比灰色关键词快速排名
  • 长沙建长沙建网站公司蜘蛛seo超级外链工具
  • 云南做网站找谁宁波网站制作优化服务
  • 判断网站如何关闭2345网址导航
  • 建材网站设计统计网站访问量
  • 闻喜网站建设营销型网站建设优化建站
  • asp企业网站模版网页制作模板
  • 大型的营销型网站建设百度网址大全电脑版旧版本
  • 看设计案例的有哪些网站推广策略及推广方式
  • 昆山高端网站设计公司免费建站网站大全
  • 中央人民政府网电话seo网址大全
  • 做网站必须要有服务器吗seo推广服务哪家好
  • 手机做简单的网站网络营销活动方案
  • 网加商学院网站怎么做网站建设解决方案
  • 济南专门做网站的公司南京seo排名公司
  • 卢湾网站设计站长之家网站模板
  • 邢台提供网站建设公司报价百度推广运营工作是什么
  • 像芥末堆做内容的网站关键词优化怎么操作
  • 柳州网站建站费用成都百度百科
  • 开发一个app需要多少资金广东知名seo推广多少钱
  • 导航网站是怎么做的seo推广要多少钱
  • 网站开发业务ppt关键词规划师工具