Skip to content

Commit 6461e6f

Browse files
authored
Merge pull request kubernetes#87179 from Jefftree/netproxy-uds
UDS + GRPC Support for Network Proxy
2 parents 58fcca2 + d798ccb commit 6461e6f

File tree

33 files changed

+2459
-262
lines changed

33 files changed

+2459
-262
lines changed

Godeps/LICENSES

Lines changed: 209 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cluster/gce/addons/konnectivity-agent/daemonset.yaml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,12 @@ spec:
2828
hostPath:
2929
path: /etc/srv/kubernetes/pki/konnectivity-agent
3030
containers:
31-
- image: gcr.io/google-containers/proxy-agent:v0.0.3
31+
- image: us.gcr.io/k8s-artifacts-prod/kas-network-proxy/proxy-agent:v0.0.4
3232
name: konnectivity-agent
3333
command: ["/proxy-agent"]
3434
args: [
3535
"--logtostderr=true",
36-
"--ca-cert=/etc/srv/kubernetes/pki/konnectivity-agent/ca.crt",
37-
"--agent-cert=/etc/srv/kubernetes/pki/konnectivity-agent/client.crt",
38-
"--agent-key=/etc/srv/kubernetes/pki/konnectivity-agent/client.key",
36+
"--ca-cert=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt",
3937
"--proxy-server-host=__APISERVER_IP__",
4038
"--proxy-server-port=8132"
4139
]
@@ -59,6 +57,3 @@ spec:
5957
path: /healthz
6058
initialDelaySeconds: 15
6159
timeoutSeconds: 15
62-
volumeMounts:
63-
- name: pki
64-
mountPath: /etc/srv/kubernetes/pki/konnectivity-agent

cluster/gce/gci/configure-helper.sh

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -807,18 +807,16 @@ kind: EgressSelectorConfiguration
807807
egressSelections:
808808
- name: cluster
809809
connection:
810-
type: http-connect
811-
httpConnect:
812-
url: https://127.0.0.1:8131
813-
caBundle: /etc/srv/kubernetes/pki/konnectivity-server/ca.crt
814-
clientKey: /etc/srv/kubernetes/pki/konnectivity-server/client.key
815-
clientCert: /etc/srv/kubernetes/pki/konnectivity-server/client.crt
810+
proxyProtocol: HTTPConnect
811+
transport:
812+
uds:
813+
udsName: /etc/srv/kubernetes/konnectivity/konnectivity-server.socket
816814
- name: master
817815
connection:
818-
type: direct
816+
proxyProtocol: Direct
819817
- name: etcd
820818
connection:
821-
type: direct
819+
proxyProtocol: Direct
822820
EOF
823821
fi
824822

@@ -1645,34 +1643,29 @@ function start-etcd-servers {
16451643

16461644
# Replaces the variables in the konnectivity-server manifest file with the real values, and then
16471645
# copy the file to the manifest dir
1648-
# $1: value for variable "server_port"
1649-
# $2: value for variable "agent_port"
1650-
# $3: value for bariable "admin_port"
1646+
# $1: value for variable "agent_port"
1647+
# $2: value for bariable "admin_port"
16511648
function prepare-konnectivity-server-manifest {
16521649
local -r temp_file="/tmp/konnectivity-server.yaml"
16531650
params=()
16541651
cp "${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty/konnectivity-server.yaml" "${temp_file}"
16551652
params+=("--log-file=/var/log/konnectivity-server.log")
16561653
params+=("--logtostderr=false")
16571654
params+=("--log-file-max-size=0")
1658-
params+=("--server-ca-cert=${KONNECTIVITY_SERVER_CA_CERT_PATH}")
1659-
params+=("--server-cert=${KONNECTIVITY_SERVER_CERT_PATH}")
1660-
params+=("--server-key=${KONNECTIVITY_SERVER_KEY_PATH}")
1661-
params+=("--cluster-ca-cert=${KONNECTIVITY_AGENT_CA_CERT_PATH}")
1662-
params+=("--cluster-cert=${KONNECTIVITY_AGENT_CERT_PATH}")
1663-
params+=("--cluster-key=${KONNECTIVITY_AGENT_KEY_PATH}")
1655+
params+=("--uds-name=/etc/srv/kubernetes/konnectivity/konnectivity-server.socket")
1656+
params+=("--cluster-cert=/etc/srv/kubernetes/pki/apiserver.crt")
1657+
params+=("--cluster-key=/etc/srv/kubernetes/pki/apiserver.key")
16641658
params+=("--mode=http-connect")
1665-
params+=("--server-port=$1")
1666-
params+=("--agent-port=$2")
1667-
params+=("--admin-port=$3")
1659+
params+=("--server-port=0")
1660+
params+=("--agent-port=$1")
1661+
params+=("--admin-port=$2")
16681662
konnectivity_args=""
16691663
for param in "${params[@]}"; do
16701664
konnectivity_args+=", \"${param}\""
16711665
done
16721666
sed -i -e "s@{{ *konnectivity_args *}}@${konnectivity_args}@g" "${temp_file}"
1673-
sed -i -e "s@{{ *server_port *}}@$1@g" "${temp_file}"
1674-
sed -i -e "s@{{ *agent_port *}}@$2@g" "${temp_file}"
1675-
sed -i -e "s@{{ *admin_port *}}@$3@g" "${temp_file}"
1667+
sed -i -e "s@{{ *agent_port *}}@$1@g" "${temp_file}"
1668+
sed -i -e "s@{{ *admin_port *}}@$2@g" "${temp_file}"
16761669
sed -i -e "s@{{ *liveness_probe_initial_delay *}}@30@g" "${temp_file}"
16771670
mv "${temp_file}" /etc/kubernetes/manifests
16781671
}
@@ -1683,7 +1676,7 @@ function prepare-konnectivity-server-manifest {
16831676
function start-konnectivity-server {
16841677
echo "Start konnectivity server pods"
16851678
prepare-log-file /var/log/konnectivity-server.log
1686-
prepare-konnectivity-server-manifest "8131" "8132" "8133"
1679+
prepare-konnectivity-server-manifest "8132" "8133"
16871680
}
16881681

16891682
# Calculates the following variables based on env variables, which will be used

cluster/gce/gci/configure-kubeapiserver.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,18 @@ function start-kube-apiserver {
324324

325325
local csc_config_mount=""
326326
local csc_config_volume=""
327+
local default_konnectivity_socket_vol=""
328+
local default_konnectivity_socket_mnt=""
327329
if [[ "${ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE:-false}" == "true" ]]; then
328330
# Create the EgressSelectorConfiguration yaml file to control the Egress Selector.
329331
csc_config_mount="{\"name\": \"cscconfigmount\",\"mountPath\": \"/etc/srv/kubernetes/egress_selector_configuration.yaml\", \"readOnly\": false},"
330332
csc_config_volume="{\"name\": \"cscconfigmount\",\"hostPath\": {\"path\": \"/etc/srv/kubernetes/egress_selector_configuration.yaml\", \"type\": \"FileOrCreate\"}},"
331333
params+=" --egress-selector-config-file=/etc/srv/kubernetes/egress_selector_configuration.yaml"
334+
335+
# UDS socket for communication between apiserver and konnectivity-server
336+
local default_konnectivity_socket_path="/etc/srv/kubernetes/konnectivity"
337+
default_konnectivity_socket_vol="{ \"name\": \"konnectivity-socket\", \"hostPath\": {\"path\": \"${default_konnectivity_socket_path}\", \"type\": \"DirectoryOrCreate\"}},"
338+
default_konnectivity_socket_mnt="{ \"name\": \"konnectivity-socket\", \"mountPath\": \"${default_konnectivity_socket_path}\", \"readOnly\": false},"
332339
fi
333340

334341
local container_env=""
@@ -377,6 +384,8 @@ function start-kube-apiserver {
377384
sed -i -e "s@{{audit_webhook_config_volume}}@${audit_webhook_config_volume}@g" "${src_file}"
378385
sed -i -e "s@{{webhook_exec_auth_plugin_mount}}@${webhook_exec_auth_plugin_mount}@g" "${src_file}"
379386
sed -i -e "s@{{webhook_exec_auth_plugin_volume}}@${webhook_exec_auth_plugin_volume}@g" "${src_file}"
387+
sed -i -e "s@{{konnectivity_socket_mount}}@${default_konnectivity_socket_mnt}@g" "${src_file}"
388+
sed -i -e "s@{{konnectivity_socket_volume}}@${default_konnectivity_socket_vol}@g" "${src_file}"
380389

381390
cp "${src_file}" "${ETC_MANIFESTS:-/etc/kubernetes/manifests}"
382391
}

cluster/gce/manifests/konnectivity-server.yaml

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ spec:
1111
hostNetwork: true
1212
containers:
1313
- name: konnectivity-server-container
14-
image: gcr.io/google-containers/proxy-server:v0.0.3
14+
image: us.gcr.io/k8s-artifacts-prod/kas-network-proxy/proxy-server:v0.0.4
1515
resources:
1616
requests:
1717
cpu: 25m
@@ -25,9 +25,6 @@ spec:
2525
initialDelaySeconds: {{ liveness_probe_initial_delay }}
2626
timeoutSeconds: 60
2727
ports:
28-
- name: serverport
29-
containerPort: {{ server_port }}
30-
hostPort: {{ server_port }}
3128
- name: agentport
3229
containerPort: {{ agent_port }}
3330
hostPort: {{ agent_port }}
@@ -38,21 +35,21 @@ spec:
3835
- name: varlogkonnectivityserver
3936
mountPath: /var/log/konnectivity-server.log
4037
readOnly: false
41-
- name: pkiserver
42-
mountPath: /etc/srv/kubernetes/pki/konnectivity-server
43-
readOnly: true
44-
- name: pkiagent
45-
mountPath: /etc/srv/kubernetes/pki/konnectivity-agent
38+
- name: pki
39+
mountPath: /etc/srv/kubernetes/pki
4640
readOnly: true
41+
- name: konnectivity-uds
42+
mountPath: /etc/srv/kubernetes/konnectivity
43+
readOnly: false
4744
volumes:
4845
- name: varlogkonnectivityserver
4946
hostPath:
5047
path: /var/log/konnectivity-server.log
5148
type: FileOrCreate
52-
- name: pkiserver
49+
- name: pki
5350
hostPath:
54-
path: /etc/srv/kubernetes/pki/konnectivity-server
55-
- name: pkiagent
51+
path: /etc/srv/kubernetes/pki
52+
- name: konnectivity-uds
5653
hostPath:
57-
path: /etc/srv/kubernetes/pki/konnectivity-agent
58-
54+
path: /etc/srv/kubernetes/konnectivity
55+
type: DirectoryOrCreate

0 commit comments

Comments
 (0)