国产在线观看精品免费,亚洲日本VA久久一区二区,香蕉久久99综合一区二区三区,久久精品99国产精品蜜桃小说

k8s實(shí)戰之理解helm

2021-11-03 15:08:49 shuai.chang

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

helm V3的特性:

  1. 架構改變,去掉Tiller,直接helm通過(guò)kubeconfig連接apiserver

  2. release名稱(chēng)可以在不同命令空間重用

  3. chart支持放到docker鏡像倉庫

K8S部署一個(gè)應用的流程如下

編寫(xiě)  yaml :  deployment service ingress

1.0創(chuàng )建 deployment模板

kubectl   create  deployment  nginx  --image=nginx   --dry-run  -o  yaml  >  deployment.yaml

1.1啟動(dòng)nginx  pod

kubectl  apply  -f  deployment.yaml

1.2檢查pod服務(wù)

kubectl get pods
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

2.0創(chuàng )建service資源

kubectl expose  deployment  nginx  --port=80  --target-port=80  --type=NodePort --dry-run -o yaml > service.yaml

2.1.啟動(dòng)service服務(wù)

kubectl apply  -f  service.yaml

2.2檢查service端口

kubectl get svc
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

3.0訪(fǎng)問(wèn)該nginx服務(wù)

其中一個(gè)node節點(diǎn)ip+31190端口

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
kubectl describe  pod   `web-dc77dd8db-7r8k5`    

有問(wèn)題查看構建鏡像的構建

helm  解決了如下管理應用的問(wèn)題
1. 如何將這些yaml作為一個(gè)整體管理?
2. 這些yaml文件如何高效復用?
3. 不支持應用級別的版本管理

開(kāi)始實(shí)戰

wget      http://120.78.77.38/file/helm-v3.0.0-linux-amd64.tar.gz
#也可以去官網(wǎng)下載
tar -xf  helm-v3.0.0-linux-amd64.tar.gz  && cd  linux-amd64
mv  helm  /usr/bin/    #將helm二進(jìn)制文件拷貝到宿主機/bin下
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

配置helm微軟源地址

helm  repo  add  stable  http://mirror.azure.cn/kubernetes/charts/

檢查配置源地址

helm  repo list

通過(guò)helm安裝一個(gè)k8s-ui

1.通過(guò)helm安裝軟件
helm    search  repo  weave   #去倉庫中查找weave的程序包
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
 helm    install  ui  stable/weave-scope   #安裝
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
 kubectl  get pods   檢查
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
2.修改配置文件,并訪(fǎng)問(wèn)

ClusterIP改成 NodePort

 kubectl  edit svc   ui-weave-scope
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
kubectl get  svc  #可以看到暴露的端口
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

http://192.168.106.103:32055/

睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

創(chuàng )建一個(gè)mychart包管理模板

helm create  mychart
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
#刪除templates/目錄下的文件/將之前nginx的deployment和service yaml文件拷貝過(guò)來(lái)
rm  -rf  /templates/*
mv  /root/deployment.yaml  ./
mv  /root/service.yaml  ./
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
kubectl delete  svc  web  #刪除之前的nginx  svc
kubectl delete  deployment  web  #刪除之前的nginx  pod
cd  /root
helm  install  web  mychart/
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

執行完會(huì )自動(dòng)創(chuàng )建deployment和service

修改更新helm

helm   upgrade web  mychart

helm  list  檢測服務(wù)
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

通過(guò)修改helm全局變量模板deployment/service關(guān)鍵信息創(chuàng )建應用

# vim  values.yaml

replicaCount: 1

image: zhangfan5391621/java-demo
tag: latest

label: java-demo

port: 8080

修改deployment.yaml(關(guān)鍵信息為變量定義信息)

# vim  deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{  .Release.Name }}-dp
spec:
  replicas: {{ .Values.replicas }}
  selector:
    matchLabels:
      app: {{ .Values.label }}
  template:
    metadata:
      labels:
        app: {{ .Values.label }}
    spec:
      containers:
      - image: {{ .Values.image }}:{{ .Values.tag }}
        name: nginx

修改service.yaml(關(guān)鍵信息為變量定義信息)

# vim  service.yaml

apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}-svc
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort:  {{ .Values.port }}
  selector:
    app: {{ .Values.label }}
  type: NodePort
helm  install   --dry-run web1  mychart/    #檢測配置變量是否正確生效
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

helm  install web1  mychart/      創(chuàng )建應用

  • 通過(guò)定義變量成功創(chuàng )建了應用
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商
  • 查看helm創(chuàng )建的應用
睿智創(chuàng  )新RAIZ,一體化IT服務(wù)提供商

helm 擴容

helm  upgraded  web1  --set  replicas=3  mychart/   #擴容副本3個(gè)

回滾

helm    rollback    web1   1    #將web1回滾到第一個(gè)版本



我要咨詢(xún)