第一步,创建deploy
apiVersion: extensions/v1beta1 #k8s版本不同,api可能也不同 kind: Deployment metadata: name: mynginx namespace: default spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: name: web labels: app: nginx spec: containers: - name: nginx image: nginx ports: - name: nginx containerPort: 80 volumeMounts: - name: html-config mountPath: /etc/nginx/conf.d/nginx.conf subPath: nginx.conf readOnly: true - name: nginx-logs mountPath: /var/log/nginx/ volumes: - name: html-config configMap: name: nginx.conf - name: nginx-logs hostPath: path: /test-nginx/logs/
2.创建configmap文件挂载到容器中
kubectl create cm nginx.conf --from-file=./nginx.conf
nginx.conf内容如下
server{ listen 80; server_name test-nginx.test.net; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log error; location / { return 200; } }
3.创建ingress,使nginx可以通过域名访问
apiVersion: extensions/v1beta1 #k8s版本不同,api可能也不同 kind: Ingress metadata: name: test-nginx namespace: default spec: rules: - host: test-nginx.test.net #域名 http: paths: - backend: serviceName: service-nginx #关联后端的svc servicePort: 80 #svc的端口号 status: loadBalancer: ingress: - ip: xxx.xxx.xxx.xxx #阿里云的k8s的负载均衡地址
4.添加阿里云dns域名解析
5.现在就可以在外放访问域名了