Skip to content

Commit

Permalink
Adding Sysdig Cloud example
Browse files Browse the repository at this point in the history
  • Loading branch information
03cranec committed Jul 18, 2016
1 parent 1e1d4b0 commit cd7f4ab
Show file tree
Hide file tree
Showing 3 changed files with 174 additions and 0 deletions.
22 changes: 22 additions & 0 deletions examples/sysdig-cloud/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[Sysdig Cloud](http://www.sysdig.com/) is the first and only monitoring, alerting, and troubleshooting solution designed from the ground up to provide unprecedented visibility into containerized infrastructures.

Sysdig Cloud comes with built-in, first class support for Kubernetes. In order to instrument your Kubernetes environment with Sysdig Cloud, you simply need to install the Sysdig Cloud agent container on each underlying host in your Kubernetes cluster. Sysdig Cloud will automatically begin monitoring all of your hosts, apps, pods, and services, and will also automatically connect to the Kubernetes API to pull relevant metadata about your environment.

# Example Installation Files

Provided here are two example sysdig.yaml files that can be used to automatically deploy the Sysdig Cloud agent container across a Kubernetes cluster.

The recommended method is using daemon sets - minimum kubernetes version 1.1.1.

If daemon sets are not available, then the replication controller method can be used (based on [this hack](https://stackoverflow.com/questions/33377054/how-to-require-one-pod-per-minion-kublet-when-configuring-a-replication-controll/33381862#33381862 )).

# Latest Files

See here for the latest maintained and updated versions of these example files:
https://github.com/draios/sysdig-cloud-scripts/tree/master/agent_deploy/kubernetes

# Install instructions

Please see the Sysdig Cloud support site for the latest documentation:
http://support.sysdigcloud.com/hc/en-us/sections/200959909

72 changes: 72 additions & 0 deletions examples/sysdig-cloud/sysdig-daemonset.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#Use this sysdig.yaml when Daemon Sets are enabled on Kubernetes (minimum version 1.1.1). Otherwise use the RC method.

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: sysdig-agent
labels:
app: sysdig-agent
spec:
template:
metadata:
labels:
name: sysdig-agent
spec:
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: dev-vol
hostPath:
path: /dev
- name: proc-vol
hostPath:
path: /proc
- name: boot-vol
hostPath:
path: /boot
- name: modules-vol
hostPath:
path: /lib/modules
- name: usr-vol
hostPath:
path: /usr
hostNetwork: true
hostPID: true
containers:
- name: sysdig-agent
image: sysdig/agent
securityContext:
privileged: true
env:
- name: ACCESS_KEY #REQUIRED - replace with your Sysdig Cloud access key
value: 8312341g-5678-abcd-4a2b2c-33bcsd655
# - name: TAGS #OPTIONAL
# value: linux:ubuntu,dept:dev,local:nyc
# - name: COLLECTOR #OPTIONAL - on-prem install only
# value: 192.168.183.200
# - name: SECURE #OPTIONAL - on-prem install only
# value: false
# - name: CHECK_CERTIFICATE #OPTIONAL - on-prem install only
# value: false
# - name: ADDITIONAL_CONF #OPTIONAL pass additional parameters to the agent such as authentication example provided here
# value: "k8s_uri: https://myacct:mypass@localhost:4430\nk8s_ca_certificate: k8s-ca.crt\nk8s_ssl_verify_certificate: true"
volumeMounts:
- mountPath: /host/var/run/docker.sock
name: docker-sock
readOnly: false
- mountPath: /host/dev
name: dev-vol
readOnly: false
- mountPath: /host/proc
name: proc-vol
readOnly: true
- mountPath: /host/boot
name: boot-vol
readOnly: true
- mountPath: /host/lib/modules
name: modules-vol
readOnly: true
- mountPath: /host/usr
name: usr-vol
readOnly: true
80 changes: 80 additions & 0 deletions examples/sysdig-cloud/sysdig-rc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
#Use this sysdig.yaml when Daemon Sets are NOT enabled on Kubernetes (minimum version 1.1.1). If Daemon Sets are available, use the other example sysdig.yaml - that is the recommended method.

apiVersion: v1
kind: ReplicationController
metadata:
name: sysdig-agent
labels:
app: sysdig-agent
spec:
replicas: 100 #REQUIRED - replace with the maximum number of slave nodes in the cluster
template:
metadata:
labels:
name: sysdig-agent
spec:
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: dev-vol
hostPath:
path: /dev
- name: proc-vol
hostPath:
path: /proc
- name: boot-vol
hostPath:
path: /boot
- name: modules-vol
hostPath:
path: /lib/modules
- name: usr-vol
hostPath:
path: /usr
hostNetwork: true
hostPID: true
containers:
- name: sysdig-agent
image: sysdig/agent
ports:
- containerPort: 6666
hostPort: 6666
securityContext:
privileged: true
env:
- name: ACCESS_KEY #REQUIRED - replace with your Sysdig Cloud access key
value: 8312341g-5678-abcd-4a2b2c-33bcsd655
# - name: K8S_DELEGATED_NODE #OPTIONAL - only necessary when connecting remotely to API server
# value: <DELEGATED NODE IP>
# - name: K8S_API_URI #OPTIONAL - only necessary when connecting remotely to API server
# value: "http[s]://[username:passwd@]host[:port]"
# - name: TAGS #OPTIONAL
# value: linux:ubuntu,dept:dev,local:nyc
# - name: COLLECTOR #OPTIONAL
# value: 192.168.183.200
# - name: SECURE #OPTIONAL
# value: false
# - name: CHECK_CERTIFICATE #OPTIONAL
# value: false
# - name: ADDITIONAL_CONF #OPTIONAL
# value: "app_checks:\n - name: nginx\n check_module: nginx\n pattern:\n comm: nginx\n conf:\n nginx_status_url: "http://localhost:{port}/nginx_status\""
volumeMounts:
- mountPath: /host/var/run/docker.sock
name: docker-sock
readOnly: false
- mountPath: /host/dev
name: dev-vol
readOnly: false
- mountPath: /host/proc
name: proc-vol
readOnly: true
- mountPath: /host/boot
name: boot-vol
readOnly: true
- mountPath: /host/lib/modules
name: modules-vol
readOnly: true
- mountPath: /host/usr
name: usr-vol
readOnly: true

0 comments on commit cd7f4ab

Please sign in to comment.