首页 > 编程知识 正文

k8s安装nginxingress controller k8s部署Eureka,k8s安装部署步骤

时间:2023-05-04 13:30:20 阅读:189158 作者:3046

版本介绍 技术版本k8sv1.17.4nginx ingress controller0.28.0k8s安装nginx-ingress

参考网址:
https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal

1.复制两个文件
https://github.com/kubernetes/ingress-nginx/blob/nginx-0.28.0/deploy/static/mandatory.yaml
https://github.com/kubernetes/ingress-nginx/blob/nginx-0.28.0/deploy/baremetal/service-nodeport.yaml

其中mandatory.yaml文件中,镜像quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.28.0需要手动去阿里云或者其他镜像仓库自行下载后再打tag。也可以直接修改mandatory.yaml文件中image的值。还要修改mandatory.yaml文件中镜像的拉取策略,改为imagePullPolicy: IfNotPresent

2.在k8smaster节点执行
kubectl apply -f mandatory.yaml
kubectl apply -f service-nodeport.yaml

这时候nginx ingress controller已经安装好了。可以执行以下命令查看安装的情况

kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx --watch

Once the operator pods are running, you can cancel the above command by typing Ctrl+C. Now, you are ready to create your first ingress.

可以执行以下命令查看nginx ingress controller的版本

POD_NAMESPACE=ingress-nginxPOD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}')kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version k8s部署Eureka

安装好了ingress controller后,就可以将service用ingress暴露出来使用了。
1.首先要有一个service:

apiVersion: v1kind: Servicemetadata: name: $NAME namespace: $NSspec: clusterIP: None ports: - name: $NAME port: 8761 selector: app: $NAME---apiVersion: apps/v1kind: StatefulSetmetadata: name: $NAME namespace: $NSspec: replicas: 1 selector: matchLabels: app: $NAME serviceName: $NAME template: metadata: labels: app: $NAME spec: imagePullSecrets: - name: harborsecret containers: - name: $NAME image: 192.168.254.131/springcloud-demo/eureka:latest ports: - protocol: TCP containerPort: 8761 resources: requests: cpu: 0.5 memory: 256Mi limits: cpu: 1 memory: 1Gi readinessProbe: tcpSocket: port: 8761 initialDelaySeconds: 60 periodSeconds: 10 livenessProbe: tcpSocket: port: 8761 initialDelaySeconds: 60 periodSeconds: 10

2.其次需要一个ingress。

apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata: name: ingress-eureka namespace: springcloud-demo annotations: kubernetes.io/ingress.class: "nginx"spec: rules: - http: paths: - path: / backend: serviceName: $NAME servicePort: 8761

这些k8s对象创建完之后,就可以通过以下命令查看service-nodeport暴露出来的端口:

kubectl get svc -n ingress-nginx

通过这个端口和ingress配置的path访问指定的service。

关于ingress配置,参考:
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。