helm一键部署nginx

准备工作

创建本地PV

cat  nginx-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nginx-pv-volume
  labels:
    type: local
spec:
  capacity:
    storage: 11Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  hostPath:
    path: /mnt/html

kubectl apply -f nginx-pv.yml

创建PVC

cat  nginx-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nginx-pvc
spec:
  storageClassName: local-storage
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

kubectl apply -f nginx-pvc.yml      

添加Bitnami 的Helm 仓库

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

一键部署nginx

方式一:使用LB暴露服务

参考官方文档安装配置metallb
https://metallb.universe.tf/installation/
按照官方说明:
If you’re using kube-proxy in IPVS mode, since Kubernetes v1.14.2 you have to enable strict ARP mode.
这里由于是使用RKE2部署的k8,需要编辑/etc/rancher/rke2/config.yaml文件,增加如下配置后,重启rke2-agent

kube-proxy-arg: # 不指定的话,默认是 iptables 模式
  - proxy-mode=ipvs
  - ipvs-strict-arp=true
helm repo add metallb https://metallb.github.io/metallb
helm install metallb metallb/metallb
# ip地址使用node节点IP同网段未被占用的地址
cat  << EOF > IPAddressPool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: cheap
spec:
  addresses:
  - 192.168.122.20-192.168.122.24
EOF
kubectl apply -f IPAddressPool.yaml

helm 一键部署nginx,默认service.type=LoadBalancer

helm install nginx --set replicaCount=3 --set podAntiAffinityPreset=hard --set staticSitePVC="nginx-pvc" bitnami/nginx

方式二:使用nodeport暴露服务

helm install nginx --set service.type=NodePort --set service.ports.http=80 --set service.nodePorts.http=30013 --set replicaCount=3 --set podAntiAffinityPreset=hard --set staticSitePVC="nginx-pvc" bitnami/nginx

方式三:使用Ingress暴露服务

helm install nginx --set service.type=ClusterIP --set replicaCount=3 --set podAntiAffinityPreset=hard --set staticSitePVC="nginx-pvc" --set ingress.enabled=true bitnami/nginx

官方参考文档
nginx 15.4.0 · bitnami/bitnami (artifacthub.io)
https://artifacthub.io/packages/helm/bitnami/nginx

你可能感兴趣的:(nginx,运维,kubernetes)