Get Pixie fully managed with Pixie Community Cloud (free forever) or run on your own infrastructure with the following self-managed option.
Review Pixie's requirements to make sure that your Kubernetes cluster is supported.
Determine if you already have Operator Lifecycle Manager (OLM) deployed to your cluster, possibly to the default
olm namespace. Pixie uses the Kubernetes Operator pattern to manage its Vizier, which handles data collection and query execution (see the Architecture diagram). The OLM is used to install, update and manage the Vizier Operator.
Ensure that your cluster supports Pixie creating and using PersistentVolumes.
git clone https://github.com/pixie-io/pixie.gitcd pixie
mkcert following the directions here. Pixie uses SSL to securely communicate between Pixie Cloud and the UI. Self-managed Pixie Cloud requires managing your own certificates.
mkcert is a simple tool to create and install a local certificate authority (CA) in the system root store in order to generate locally-trusted certificates.
mkcert. This command will set up local CA and create a root certificate that Chrome and your CLI will now trust. To access Pixie Cloud from different machine that the one it was set up on, you will need to install this certificate there as well.
plcnamespace. This namespace is not currently configurable. Several of the install scripts expect Pixie Cloud to be deployed to the
kubectl create namespace plc
kustomize following the directions here.
Deploy Pixie Cloud dependencies and wait for all pods within the
plc namespace to become ready and available before proceeding to the next step.
kustomize build k8s/cloud_deps/public/ | kubectl apply -f - --namespace=plc
kustomize build k8s/cloud/public/ | kubectl apply -f - --namespace=plc
plcnamespace to become ready and available. Note that you may have one or more
create-hydra-client-jobpod errors, but as long as long as another instance of that pod successfully completes, that is ok.
kubectl get pods -n plc
dev_dns_updaterbinary in the top level
go build src/utils/dev_dns_updater/dev_dns_updater.go
./dev_dns_updater --domain-name="dev.withpixie.dev" --kubeconfig=$HOME/.kube/config --n=plc
dev.withpixie.devin your browser. Make sure that the network you are on can access your cluster.
Self-managed Pixie Cloud only supports one organization.
create-admin-jobpod by running:
kubectl log create-admin-job-<pod_string> -n plc
identifierand your new password.
dev.withpixie.dev/admin/invitein your browser. Fill out the necessary information to send invite links to anyone who you'd like to share access with. Note that this link expires after a certain amount of time and cannot be recreated for the expired email address.
The easiest way to install Pixie's CLI is using the install script:
# Copy and run command to install the Pixie CLI.bash -c "$(curl -fsSL https://withpixie.ai/install.sh)"
For alternate install options (Docker, Debian package, RPM, direct download of the binary) see the CLI Install page.
To deploy Pixie using the CLI:
# Deploy the Pixie Platform in your K8s cluster (No OLM present on cluster).px deploy --dev_cloud_namespace plc# Deploy the Pixie Platform in your K8s cluster (OLM already exists on cluster).px deploy --dev_cloud_namespace plc --deploy_olm=false
Pixie will deploy pods to the
olm(if deploying the OLM) namespaces.
Learn how to use Pixie for
There are two options for deploying Pixie to another Kubernetes cluster.
This will spin up a separate instance of Pixie Cloud for each Pixie deployment that you have.
If you select this option, each of your Pixie deployments will point to the same instance of Pixie Cloud. In order to ensure that all of your clusters can access Pixie Cloud, you will need to do the following: