mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 00:07:50 +00:00
Support token authentication for network proxy
This commit is contained in:
parent
debb1edee1
commit
4c54241c3d
@ -22,11 +22,6 @@ spec:
|
|||||||
tolerations:
|
tolerations:
|
||||||
- key: "CriticalAddonsOnly"
|
- key: "CriticalAddonsOnly"
|
||||||
operator: "Exists"
|
operator: "Exists"
|
||||||
hostNetwork: true
|
|
||||||
volumes:
|
|
||||||
- name: pki
|
|
||||||
hostPath:
|
|
||||||
path: /etc/srv/kubernetes/pki/konnectivity-agent
|
|
||||||
containers:
|
containers:
|
||||||
- image: us.gcr.io/k8s-artifacts-prod/kas-network-proxy/proxy-agent:v0.0.4
|
- image: us.gcr.io/k8s-artifacts-prod/kas-network-proxy/proxy-agent:v0.0.4
|
||||||
name: konnectivity-agent
|
name: konnectivity-agent
|
||||||
@ -35,7 +30,8 @@ spec:
|
|||||||
"--logtostderr=true",
|
"--logtostderr=true",
|
||||||
"--ca-cert=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt",
|
"--ca-cert=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt",
|
||||||
"--proxy-server-host=__APISERVER_IP__",
|
"--proxy-server-host=__APISERVER_IP__",
|
||||||
"--proxy-server-port=8132"
|
"--proxy-server-port=8132",
|
||||||
|
"--service-account-token-path=/var/run/secrets/tokens/konnectivity-agent-token"
|
||||||
]
|
]
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
@ -50,10 +46,20 @@ spec:
|
|||||||
limits:
|
limits:
|
||||||
cpu: 50m
|
cpu: 50m
|
||||||
memory: 30Mi
|
memory: 30Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/run/secrets/tokens
|
||||||
|
name: konnectivity-agent-token
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
host: 127.0.0.1
|
|
||||||
port: 8093
|
port: 8093
|
||||||
path: /healthz
|
path: /healthz
|
||||||
initialDelaySeconds: 15
|
initialDelaySeconds: 15
|
||||||
timeoutSeconds: 15
|
timeoutSeconds: 15
|
||||||
|
serviceAccountName: konnectivity-agent
|
||||||
|
volumes:
|
||||||
|
- name: konnectivity-agent-token
|
||||||
|
projected:
|
||||||
|
sources:
|
||||||
|
- serviceAccountToken:
|
||||||
|
path: konnectivity-agent-token
|
||||||
|
audience: system:konnectivity-server
|
@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: konnectivity-agent
|
||||||
|
namespace: kube-system
|
||||||
|
labels:
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
addonmanager.kubernetes.io/mode: Reconcile
|
15
cluster/gce/addons/konnectivity-agent/konnectivity-rbac.yaml
Normal file
15
cluster/gce/addons/konnectivity-agent/konnectivity-rbac.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: system:konnectivity-server
|
||||||
|
labels:
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
addonmanager.kubernetes.io/mode: Reconcile
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: system:auth-delegator
|
||||||
|
subjects:
|
||||||
|
- apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: User
|
||||||
|
name: system:konnectivity-server
|
@ -652,8 +652,13 @@ function create-master-auth {
|
|||||||
append_or_replace_prefixed_line "${known_tokens_csv}" "${GCE_GLBC_TOKEN}," "system:controller:glbc,uid:system:controller:glbc"
|
append_or_replace_prefixed_line "${known_tokens_csv}" "${GCE_GLBC_TOKEN}," "system:controller:glbc,uid:system:controller:glbc"
|
||||||
fi
|
fi
|
||||||
if [[ -n "${ADDON_MANAGER_TOKEN:-}" ]]; then
|
if [[ -n "${ADDON_MANAGER_TOKEN:-}" ]]; then
|
||||||
append_or_replace_prefixed_line "${known_tokens_csv}" "${ADDON_MANAGER_TOKEN}," "system:addon-manager,uid:system:addon-manager,system:masters"
|
append_or_replace_prefixed_line "${known_tokens_csv}" "${ADDON_MANAGER_TOKEN}," "system:addon-manager,uid:system:addon-manager,system:masters"
|
||||||
fi
|
fi
|
||||||
|
if [[ -n "${KONNECTIVITY_SERVER_TOKEN:-}" ]]; then
|
||||||
|
append_or_replace_prefixed_line "${known_tokens_csv}" "${KONNECTIVITY_SERVER_TOKEN}," "system:konnectivity-server,uid:system:konnectivity-server"
|
||||||
|
create-kubeconfig "konnectivity-server" ${KONNECTIVITY_SERVER_TOKEN}
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n "${EXTRA_STATIC_AUTH_COMPONENTS:-}" ]]; then
|
if [[ -n "${EXTRA_STATIC_AUTH_COMPONENTS:-}" ]]; then
|
||||||
# Create a static Bearer token and kubeconfig for extra, comma-separated components.
|
# Create a static Bearer token and kubeconfig for extra, comma-separated components.
|
||||||
IFS="," read -r -a extra_components <<< "${EXTRA_STATIC_AUTH_COMPONENTS:-}"
|
IFS="," read -r -a extra_components <<< "${EXTRA_STATIC_AUTH_COMPONENTS:-}"
|
||||||
@ -810,7 +815,8 @@ egressSelections:
|
|||||||
proxyProtocol: HTTPConnect
|
proxyProtocol: HTTPConnect
|
||||||
transport:
|
transport:
|
||||||
uds:
|
uds:
|
||||||
udsName: /etc/srv/kubernetes/konnectivity/konnectivity-server.socket
|
udsName: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket
|
||||||
|
|
||||||
- name: master
|
- name: master
|
||||||
connection:
|
connection:
|
||||||
proxyProtocol: Direct
|
proxyProtocol: Direct
|
||||||
@ -1652,13 +1658,17 @@ function prepare-konnectivity-server-manifest {
|
|||||||
params+=("--log-file=/var/log/konnectivity-server.log")
|
params+=("--log-file=/var/log/konnectivity-server.log")
|
||||||
params+=("--logtostderr=false")
|
params+=("--logtostderr=false")
|
||||||
params+=("--log-file-max-size=0")
|
params+=("--log-file-max-size=0")
|
||||||
params+=("--uds-name=/etc/srv/kubernetes/konnectivity/konnectivity-server.socket")
|
params+=("--uds-name=/etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket")
|
||||||
params+=("--cluster-cert=/etc/srv/kubernetes/pki/apiserver.crt")
|
params+=("--cluster-cert=/etc/srv/kubernetes/pki/apiserver.crt")
|
||||||
params+=("--cluster-key=/etc/srv/kubernetes/pki/apiserver.key")
|
params+=("--cluster-key=/etc/srv/kubernetes/pki/apiserver.key")
|
||||||
params+=("--mode=http-connect")
|
params+=("--mode=http-connect")
|
||||||
params+=("--server-port=0")
|
params+=("--server-port=0")
|
||||||
params+=("--agent-port=$1")
|
params+=("--agent-port=$1")
|
||||||
params+=("--admin-port=$2")
|
params+=("--admin-port=$2")
|
||||||
|
params+=("--agent-namespace=kube-system")
|
||||||
|
params+=("--agent-service-account=konnectivity-agent")
|
||||||
|
params+=("--kubeconfig=/etc/srv/kubernetes/konnectivity-server/kubeconfig")
|
||||||
|
params+=("--authentication-audience=system:konnectivity-server")
|
||||||
konnectivity_args=""
|
konnectivity_args=""
|
||||||
for param in "${params[@]}"; do
|
for param in "${params[@]}"; do
|
||||||
konnectivity_args+=", \"${param}\""
|
konnectivity_args+=", \"${param}\""
|
||||||
@ -2469,7 +2479,7 @@ function setup-node-termination-handler-manifest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setup-konnectivity-agent-manifest {
|
function setup-konnectivity-agent-manifest {
|
||||||
local -r manifest="/etc/kubernetes/addons/konnectivity-agent/daemonset.yaml"
|
local -r manifest="/etc/kubernetes/addons/konnectivity-agent/konnectivity-agent-ds.yaml"
|
||||||
sed -i "s|__APISERVER_IP__|${KUBERNETES_MASTER_NAME}|g" "${manifest}"
|
sed -i "s|__APISERVER_IP__|${KUBERNETES_MASTER_NAME}|g" "${manifest}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2777,6 +2787,10 @@ function main() {
|
|||||||
if [[ "${ENABLE_APISERVER_INSECURE_PORT:-false}" != "true" ]]; then
|
if [[ "${ENABLE_APISERVER_INSECURE_PORT:-false}" != "true" ]]; then
|
||||||
KUBE_BOOTSTRAP_TOKEN="$(secure_random 32)"
|
KUBE_BOOTSTRAP_TOKEN="$(secure_random 32)"
|
||||||
fi
|
fi
|
||||||
|
if [[ "${ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE:-false}" == "true" ]]; then
|
||||||
|
KONNECTIVITY_SERVER_TOKEN="$(secure_random 32)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
setup-os-params
|
setup-os-params
|
||||||
config-ip-firewall
|
config-ip-firewall
|
||||||
|
@ -39,7 +39,7 @@ spec:
|
|||||||
mountPath: /etc/srv/kubernetes/pki
|
mountPath: /etc/srv/kubernetes/pki
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: konnectivity-uds
|
- name: konnectivity-uds
|
||||||
mountPath: /etc/srv/kubernetes/konnectivity
|
mountPath: /etc/srv/kubernetes/konnectivity-server
|
||||||
readOnly: false
|
readOnly: false
|
||||||
volumes:
|
volumes:
|
||||||
- name: varlogkonnectivityserver
|
- name: varlogkonnectivityserver
|
||||||
@ -51,5 +51,5 @@ spec:
|
|||||||
path: /etc/srv/kubernetes/pki
|
path: /etc/srv/kubernetes/pki
|
||||||
- name: konnectivity-uds
|
- name: konnectivity-uds
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /etc/srv/kubernetes/konnectivity
|
path: /etc/srv/kubernetes/konnectivity-server
|
||||||
type: DirectoryOrCreate
|
type: DirectoryOrCreate
|
||||||
|
Loading…
Reference in New Issue
Block a user