mirror of https://github.com/k3s-io/k3s
commit
0351ffcbd4
|
@ -35,3 +35,10 @@ MINION_IP_RANGES=($(eval echo "10.244.{1..${NUM_MINIONS}}.0/24"))
|
|||
MINION_SCOPES=""
|
||||
POLL_SLEEP_INTERVAL=3
|
||||
PORTAL_NET="10.0.0.0/16"
|
||||
|
||||
# Optional: Install node monitoring.
|
||||
ENABLE_NODE_MONITORING=true
|
||||
|
||||
# Optional: Install node logging
|
||||
ENABLE_NODE_LOGGING=true
|
||||
LOGGING_DESTINATION=elasticsearch # options: elasticsearch, gcp
|
||||
|
|
|
@ -22,8 +22,9 @@ mkdir -p /srv/salt-overlay/pillar
|
|||
cat <<EOF >/srv/salt-overlay/pillar/cluster-params.sls
|
||||
node_instance_prefix: $NODE_INSTANCE_PREFIX
|
||||
portal_net: $PORTAL_NET
|
||||
use-fluentd-es: $FLUENTD_ELASTICSEARCH
|
||||
use-fluentd-gcp: $FLUENTD_GCP
|
||||
enable_node_monitoring: $ENABLE_NODE_MONITORING
|
||||
enable_node_logging: $ENABLE_NODE_LOGGING
|
||||
logging_destination: $LOGGING_DESTINATION
|
||||
EOF
|
||||
|
||||
mkdir -p /srv/salt-overlay/salt/nginx
|
||||
|
|
|
@ -106,14 +106,14 @@ function ensure-temp-dir {
|
|||
}
|
||||
|
||||
function setup-monitoring {
|
||||
if [ ${MONITORING-} ]; then
|
||||
if [[ "${ENABLE_CLUSTER_MONITORING}" == "true" ]]; then
|
||||
# TODO: Implement this.
|
||||
echo "Monitoring not currently supported on AWS"
|
||||
fi
|
||||
}
|
||||
|
||||
function teardown-monitoring {
|
||||
if [ ${MONITORING-} ]; then
|
||||
if [[ "${ENABLE_CLUSTER_MONITORING}" == "true" ]]; then
|
||||
# TODO: Implement this.
|
||||
echo "Monitoring not currently supported on AWS"
|
||||
fi
|
||||
|
@ -255,8 +255,9 @@ function kube-up {
|
|||
echo "readonly AWS_ZONE='${ZONE}'"
|
||||
echo "readonly MASTER_HTPASSWD='${htpasswd}'"
|
||||
echo "readonly PORTAL_NET='${PORTAL_NET}'"
|
||||
echo "readonly FLUENTD_ELASTICSEARCH='${FLUENTD_ELASTICSEARCH:-false}'"
|
||||
echo "readonly FLUENTD_GCP='false'"
|
||||
echo "readonly ENABLE_NODE_MONITORING='${ENABLE_NODE_MONITORING:-false}'"
|
||||
echo "readonly ENABLE_NODE_LOGGING='${ENABLE_NODE_LOGGING:-false}'"
|
||||
echo "readonly LOGGING_DESTINATION='${LOGGING_DESTINATION:-}'"
|
||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/create-dynamic-salt-files.sh"
|
||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/download-release.sh"
|
||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/salt-master.sh"
|
||||
|
|
|
@ -35,14 +35,16 @@ MINION_SCOPES=("storage-ro" "compute-rw")
|
|||
# Increase the sleep interval value if concerned about API rate limits. 3, in seconds, is the default.
|
||||
POLL_SLEEP_INTERVAL=3
|
||||
PORTAL_NET="10.0.0.0/16"
|
||||
# When set to true, heapster will be setup as part of the cluster bring up.
|
||||
MONITORING=true
|
||||
# Turn on Elasticsearch logging unless Google Cloud Logging has been selected or
|
||||
# if Elasticsearch logging has been specifically turned off.
|
||||
if [[ "${FLUENTD_GCP-}" != "true" ]]; then
|
||||
if [[ "${FLUENTD_ELASTICSEARCH-}" != "false" ]]; then
|
||||
FLUENTD_ELASTICSEARCH="true"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Optional: Install node monitoring.
|
||||
ENABLE_NODE_MONITORING=true
|
||||
|
||||
# Optional: When set to true, heapster will be setup as part of the cluster bring up.
|
||||
ENABLE_CLUSTER_MONITORING=true
|
||||
|
||||
# When set to true, Docker Cache is enabled by default as part of the cluster bring up.
|
||||
ENABLE_DOCKER_REGISTRY_CACHE=true
|
||||
|
||||
# Optional: Enable node logging.
|
||||
ENABLE_NODE_LOGGING=true
|
||||
LOGGING_DESTINATION=elasticsearch # options: elasticsearch, gcp
|
||||
|
|
|
@ -35,7 +35,13 @@ MINION_SCOPES=("storage-ro" "compute-rw")
|
|||
# Increase the sleep interval value if concerned about API rate limits. 3, in seconds, is the default.
|
||||
POLL_SLEEP_INTERVAL=3
|
||||
PORTAL_NET="10.0.0.0/16"
|
||||
MONITORING=false
|
||||
|
||||
# When set to true, Docker Cache is enabled by default as part of the cluster bring up.
|
||||
ENABLE_DOCKER_REGISTRY_CACHE=true
|
||||
|
||||
ENABLE_NODE_MONITORING=true
|
||||
|
||||
ENABLE_NODE_LOGGING=true
|
||||
LOGGING_DESTINATION=elasticsearch # options: elasticsearch, gcp
|
||||
|
||||
ENABLE_CLUSTER_MONITORING=false
|
||||
|
|
|
@ -22,8 +22,9 @@ mkdir -p /srv/salt-overlay/pillar
|
|||
cat <<EOF >/srv/salt-overlay/pillar/cluster-params.sls
|
||||
node_instance_prefix: $NODE_INSTANCE_PREFIX
|
||||
portal_net: $PORTAL_NET
|
||||
use-fluentd-es: $FLUENTD_ELASTICSEARCH
|
||||
use-fluentd-gcp: $FLUENTD_GCP
|
||||
enable_node_monitoring: $ENABLE_NODE_MONITORING
|
||||
enable_node_logging: $ENABLE_NODE_LOGGING
|
||||
logging_destination: $LOGGING_DESTINATION
|
||||
EOF
|
||||
|
||||
mkdir -p /srv/salt-overlay/salt/nginx
|
||||
|
|
|
@ -283,8 +283,9 @@ function kube-up {
|
|||
echo "readonly SALT_TAR_URL='${SALT_TAR_URL}'"
|
||||
echo "readonly MASTER_HTPASSWD='${htpasswd}'"
|
||||
echo "readonly PORTAL_NET='${PORTAL_NET}'"
|
||||
echo "readonly FLUENTD_ELASTICSEARCH='${FLUENTD_ELASTICSEARCH:-false}'"
|
||||
echo "readonly FLUENTD_GCP='${FLUENTD_GCP:-false}'"
|
||||
echo "readonly ENABLE_NODE_MONITORING='${ENABLE_NODE_MONITORING:-false}'"
|
||||
echo "readonly ENABLE_NODE_LOGGING='${ENABLE_NODE_LOGGING:-false}'"
|
||||
echo "readonly LOGGING_DESTINATION='${LOGGING_DESTINATION:-}'"
|
||||
grep -v "^#" "${KUBE_ROOT}/cluster/gce/templates/common.sh"
|
||||
grep -v "^#" "${KUBE_ROOT}/cluster/gce/templates/create-dynamic-salt-files.sh"
|
||||
grep -v "^#" "${KUBE_ROOT}/cluster/gce/templates/download-release.sh"
|
||||
|
@ -292,17 +293,13 @@ function kube-up {
|
|||
) > "${KUBE_TEMP}/master-start.sh"
|
||||
|
||||
# Report logging choice (if any).
|
||||
if [[ "${FLUENTD_ELASTICSEARCH-}" == "true" ]]; then
|
||||
echo "+++ Logging using Fluentd to Elasticsearch"
|
||||
fi
|
||||
if [[ "${FLUENTD_GCP-}" == "true" ]]; then
|
||||
echo "+++ Logging using Fluentd to Google Cloud Logging"
|
||||
fi
|
||||
|
||||
if [[ "${ENABLE_NODE_LOGGING-}" == "true" ]]; then
|
||||
echo "+++ Logging using Fluentd to ${LOGGING_DESTINATION:-unknown}"
|
||||
# For logging to GCP we need to enable some minion scopes.
|
||||
if [[ "${FLUENTD_GCP-}" == "true" ]]; then
|
||||
if [[ "${LOGGING_DESTINATION-}" == "gcp" ]]; then
|
||||
MINION_SCOPES="${MINION_SCOPES}, https://www.googleapis.com/auth/logging.write"
|
||||
fi
|
||||
fi
|
||||
|
||||
gcloud compute instances create "${MASTER_NAME}" \
|
||||
--project "${PROJECT}" \
|
||||
|
@ -566,7 +563,7 @@ function restart-kube-proxy {
|
|||
|
||||
# Setup monitoring using heapster and InfluxDB
|
||||
function setup-monitoring {
|
||||
if [[ "${MONITORING}" == "true" ]]; then
|
||||
if [[ "${ENABLE_CLUSTER_MONITORING}" == "true" ]]; then
|
||||
echo "Setting up cluster monitoring using Heapster."
|
||||
|
||||
if ! gcloud compute firewall-rules describe monitoring-heapster &>/dev/null; then
|
||||
|
@ -604,7 +601,7 @@ function setup-monitoring {
|
|||
}
|
||||
|
||||
function teardown-monitoring {
|
||||
if [[ "${MONITORING}" == "true" ]]; then
|
||||
if [[ "${ENABLE_CLUSTER_MONITORING}" == "true" ]]; then
|
||||
detect-project
|
||||
|
||||
local kubectl="${KUBE_ROOT}/cluster/kubectl.sh"
|
||||
|
|
|
@ -37,3 +37,10 @@ MINION_TAG="tags=${INSTANCE_PREFIX}-minion"
|
|||
MINION_NAMES=($(eval echo ${INSTANCE_PREFIX}-minion-{1..${RAX_NUM_MINIONS}}))
|
||||
KUBE_NETWORK=($(eval echo "10.240.{1..${RAX_NUM_MINIONS}}.0/24"))
|
||||
PORTAL_NET="10.0.0.0/16"
|
||||
|
||||
# Optional: Install node monitoring.
|
||||
ENABLE_NODE_MONITORING=true
|
||||
|
||||
# Optional: Enable node logging.
|
||||
ENABLE_NODE_LOGGING=true
|
||||
LOGGING_DESTINATION=elasticsearch
|
||||
|
|
|
@ -184,6 +184,9 @@ rax-boot-minions() {
|
|||
sed -e "s|DISCOVERY_ID|${DISCOVERY_ID}|" \
|
||||
-e "s|INDEX|$((i + 1))|g" \
|
||||
-e "s|CLOUD_FILES_URL|${RELEASE_TMP_URL//&/\&}|" \
|
||||
-e "s|ENABLE_NODE_MONITORING|${ENABLE_NODE_MONITORING:-false}|" \
|
||||
-e "s|ENABLE_NODE_LOGGING|${ENABLE_NODE_LOGGING:-false}|" \
|
||||
-e "s|LOGGING_DESTINATION|${LOGGING_DESTINATION:-}|" \
|
||||
$(dirname $0)/rackspace/cloud-config/minion-cloud-config.yaml > $KUBE_TEMP/minion-cloud-config-$(($i + 1)).yaml
|
||||
|
||||
|
||||
|
|
|
@ -8,12 +8,16 @@ base:
|
|||
- docker
|
||||
- kubelet
|
||||
- kube-proxy
|
||||
{% if pillar['enable_node_monitoring'] is defined and pillar['enable_node_monitoring'] %}
|
||||
- cadvisor
|
||||
{% if pillar['use-fluentd-es'] is defined and pillar['use-fluentd-es'] %}
|
||||
{% endif %}
|
||||
{% if pillar['enable_node_logging'] is defined and pillar['enable_node_logging'] %}
|
||||
{% if pillar['logging_destination'] is defined and pillar['logging_destination'] == 'elasticsearch' %}
|
||||
- fluentd-es
|
||||
{% endif %}
|
||||
{% if pillar['use-fluentd-gcp'] is defined and pillar['use-fluentd-gcp'] %}
|
||||
{% if pillar['logging_destination'] is defined and pillar['logging_destination'] == 'gcp' %}
|
||||
- fluentd-gcp
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
- logrotate
|
||||
{% if grains['cloud'] is defined and grains['cloud'] == 'azure' %}
|
||||
|
|
|
@ -37,3 +37,10 @@ for ((i=0; i < NUM_MINIONS; i++)) do
|
|||
MINION_NAMES[$i]="${MINION_IP[$i]}"
|
||||
VAGRANT_MINION_NAMES[$i]="minion-$[$i+1]"
|
||||
done
|
||||
|
||||
# Optional: Install node monitoring.
|
||||
ENABLE_NODE_MONITORING=true
|
||||
|
||||
# Optional: Enable node logging.
|
||||
ENABLE_NODE_LOGGING=true
|
||||
LOGGING_DESTINATION=elasticsearch
|
||||
|
|
|
@ -82,6 +82,9 @@ mkdir -p /srv/salt-overlay/pillar
|
|||
cat <<EOF >/srv/salt-overlay/pillar/cluster-params.sls
|
||||
portal_net: $PORTAL_NET
|
||||
cert_ip: $MASTER_IP
|
||||
enable_node_monitoring: $ENABLE_NODE_MONITORING
|
||||
enable_node_logging: $ENABLE_NODE_LOGGING
|
||||
logging_destination: $LOGGING_DESTINATION
|
||||
EOF
|
||||
|
||||
# Configure the salt-master
|
||||
|
|
|
@ -32,3 +32,10 @@ MINION_MEMORY_MB=2048
|
|||
MINION_CPU=1
|
||||
|
||||
PORTAL_NET="10.244.240.0/20"
|
||||
|
||||
# Optional: Install node monitoring.
|
||||
ENABLE_NODE_MONITORING=true
|
||||
|
||||
# Optional: Enable node logging.
|
||||
ENABLE_NODE_LOGGING=true
|
||||
LOGGING_DESTINATION=elasticsearch
|
||||
|
|
|
@ -22,6 +22,9 @@ mkdir -p /srv/salt-overlay/pillar
|
|||
cat <<EOF >/srv/salt-overlay/pillar/cluster-params.sls
|
||||
node_instance_prefix: $NODE_INSTANCE_PREFIX
|
||||
portal_net: $PORTAL_NET
|
||||
enable_node_monitoring: $ENABLE_NODE_MONITORING
|
||||
enable_node_logging: $ENABLE_NODE_LOGGING
|
||||
logging_destination: $LOGGING_DESTINATION
|
||||
EOF
|
||||
|
||||
mkdir -p /srv/salt-overlay/salt/nginx
|
||||
|
|
|
@ -291,6 +291,9 @@ function kube-up {
|
|||
echo "readonly MASTER_NAME='${MASTER_NAME}'"
|
||||
echo "readonly NODE_INSTANCE_PREFIX='${INSTANCE_PREFIX}-minion'"
|
||||
echo "readonly PORTAL_NET='${PORTAL_NET}'"
|
||||
echo "readonly ENABLE_NODE_MONITORING='${ENABLE_NODE_MONITORING:-false}'"
|
||||
echo "readonly ENABLE_NODE_LOGGING='${ENABLE_NODE_LOGGING:-false}'"
|
||||
echo "readonly LOGGING_DESTINATION='${LOGGING_DESTINATION:-}'"
|
||||
echo "readonly SERVER_BINARY_TAR='${SERVER_BINARY_TAR##*/}'"
|
||||
echo "readonly SALT_TAR='${SALT_TAR##*/}'"
|
||||
echo "readonly MASTER_HTPASSWD='${htpasswd}'"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Makefile for a synthetic logger to be logged
|
||||
# by GCP. The cluster must have been created with
|
||||
# the environment variable FLUENTD_GCP set to 'true'.
|
||||
# the variable LOGGING_DESTINATION=GCP.
|
||||
|
||||
.PHONY: up down logger-up logger-down get
|
||||
|
||||
|
|
|
@ -5,11 +5,15 @@
|
|||
### Logging with Fluentd and Elastiscsearch
|
||||
|
||||
To enable logging of the stdout and stderr output of every Docker container in
|
||||
a Kubernetes cluster set the shell environment
|
||||
variable ``FLUENTD_ELASTICSEARCH`` to ``true`` e.g. in bash:
|
||||
a Kubernetes cluster set the shell environment variables
|
||||
``ENABLE_NODE_LOGGING`` to ``true`` and ``LOGGING_DESTINATION`` to ``elasticsearch``.
|
||||
|
||||
e.g. in bash:
|
||||
```
|
||||
export FLUENTD_ELASTICSEARCH=true
|
||||
export ENABLE_NODE_LOGGING=true
|
||||
export LOGGING_DESTINATION=elasticsearch
|
||||
```
|
||||
|
||||
This will instantiate a [Fluentd](http://www.fluentd.org/) instance on each node which will
|
||||
collect all the Dcoker container log files. The collected logs will
|
||||
be targetted at an [Elasticsearch](http://www.elasticsearch.org/) instance assumed to be running on the
|
||||
|
@ -20,4 +24,5 @@ Elasticsearch service (more informaiton to follow shortly in the contrib directo
|
|||
### Logging with Fluentd and Google Compute Platform
|
||||
|
||||
To enable logging of Docker contains in a cluster using Google Compute
|
||||
Platform set the shell environment variable ``FLUENTD_GCP`` to ``true``.
|
||||
Platform set the config flags ``ENABLE_NODE_LOGGING`` to ``true`` and
|
||||
``LOGGING_DESTINATION`` to ``gcp``.
|
||||
|
|
Loading…
Reference in New Issue