a conversation came up in the slack channel around running Envoy in (non-root) docker containers.
i think most of the relevant information is there (https://www.envoyproxy.io/docs/envoy/latest/start/start#using-the-envoy-docker-image) but the section could do with being broken up a bit and possibly moved
Sharing my experience in migrating to 1.15 in a Kubernetes environment :
Here is an example deployment that will work in Kubernetes with 1.15, running with default uid & gid = 101.
containerPort is the most important change
apiVersion: apps/v1
kind: Deployment
metadata:
name: envoy
labels:
app: envoy
spec:
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
selector:
matchLabels:
app: envoy
template:
metadata:
labels:
app: envoy
spec:
containers:
- name: envoy
imagePullPolicy: IfNotPresent
image: envoyproxy/envoy:v1.15.2
args:
- --config-path /etc/envoy/envoy.yaml
- -l info
ports:
- name: ingress
containerPort: 8080
protocol: TCP
- name: admin
containerPort: 9901
protocol: TCP
livenessProbe:
failureThreshold: 3
httpGet:
path: /ready
port: 9901
scheme: HTTP
periodSeconds: 30
volumeMounts:
- name: envoy-config
mountPath: /etc/envoy/
volumes:
- name: envoy-config
configMap:
name: envoy-config
And Envoy config file should also reflect the port change:
static_resources:
listeners:
- name: ingress
address:
socket_address: { address: 0.0.0.0, port_value: 8080 }
...
If I may, I really think that some example Kubernetes manifests would be a very nice to have in the Envoy github repository.
thanks @supasteev0 im updating docs around this anyway - so ill take on board and incorporate your suggestions on how we can improve them.
feel free to PR any specific changes that you think would help
/assign phlax