1. 소개

Pixie 설치 후기.


2. 다운로드

$ bash -c "$(curl -fsSL https://withpixie.ai/install.sh)"

  ___  _       _
 | _ \(_)__ __(_) ___
 |  _/| |\ \ /| |/ -_)
 |_|  |_|/_\_\|_|\___|

==> Info:
Pixie gives engineers access to no-instrumentation, streaming &
unsampled auto-telemetry to debug performance issues in real-time,
More information at: https://www.pixielabs.ai.

This command will install the Pixie CLI (px) in a location selected
by you, and performs authentication with Pixie's cloud hosted control
plane. After installation of the CLI you can easily manage Pixie
installations on your K8s clusters and execute scripts to collect
telemetry from your clusters using Pixie.

Docs:
  https://work.withpixie.ai/docs

==> Terms and Conditions https://www.pixielabs.ai/terms
I have read and accepted the Terms & Conditions [y/n]:

3. 인증 단계

==> Authenticating with Pixie Cloud:
Pixie CLI
Starting browser... (if browser-based login fails, try running `px auth login --manual` for headless login)
Fetching refresh token ...
Failed to perform browser based auth. Will try manual auth error=browser failed to open

Please Visit:
     https://work.withpixie.ai:443/login?local_mode=true

Copy and paste token here:

토큰은 위 주소에 접속하여 얻을 수 있다. (계정 있어야 함, 금방 만들어짐)


4. 설치 완료

Fetching refresh token
Authentication Successful

==> Next steps:
- PX CLI has been installed to: /home/azureking/pixie. Make sure this directory is in your PATH.
- Run px deploy to deploy Pixie on K8s.
- Run px help to get started, or visit our UI: https://work.withpixie.ai
- Further documentation:
    https://work.withpixie.ai/docs

5. px deploy

위 과정을 거치면 지정한 PATH에 px 파일이 생성된다. 이 파일을 이용하여 K8S에 pixie를 배포한다.

아래 --pem_memory_limit 설정은 메모리를 제한하는 옵션이다. 기본이 2G인데 난 1G로 설정했다. 최소 1G다.

$ ./px deploy --pem_memory_limit=1Gi
Pixie CLI

Running Cluster Checks:
 ✔    Kernel version > 4.14.0
 ✔    Cluster type is supported
 ✔    K8s version > 1.16.0
 ✔    Kubectl > 1.10.0 is present
 ✔    User can create namespace
 ✔    Cluster type is in list of known supported types
Installing Vizier version: 0.11.7
Generating YAMLs for Pixie
Deploying Pixie to the following cluster: <내정보>
Is the cluster correct? (y/n) [y] :
Is the cluster correct? (y/n) [y] : y
Found 5 nodes
 ✔    Installing OLM CRDs
 ✔    Deploying OLM
 ✔    Deploying Pixie OLM Namespace
 ✔    Installing Vizier CRD
 ✔    Deploying OLM Catalog
 ✔    Deploying OLM Subscription
 ✔    Creating namespace
 ✔    Deploying Vizier
 ✔    Waiting for Cloud Connector to come online
Waiting for Pixie to pass healthcheck
 ✕    Wait for PEMs/Kelvin  ERR: Failed to schedule pems:
'vizier-pem-9dlb9': '0/5 nodes are available: 1 Insufficient memory, 1 Too many pods, 4 node(s) didn't match Pod's node affinity/selector.'
'vizier-pem-rfc5d': '0/5 nodes are available: 1 Insufficient memory, 4 node(s) didn't match Pod's node affinity/selector.'
'vizier-pem-d7wqp': '0/5 nodes are available: 1 Insufficient memory, 4 node(s) didn't match Pod's node affinity/selector.'
Failed Pixie healthcheck error=Failed to schedule pems:
'vizier-pem-9dlb9': '0/5 nodes are available: 1 Insufficient memory, 1 Too many pods, 4 node(s) didn't match Pod's node affinity/selector.'
'vizier-pem-rfc5d': '0/5 nodes are available: 1 Insufficient memory, 4 node(s) didn't match Pod's node affinity/selector.'
'vizier-pem-d7wqp': '0/5 nodes are available: 1 Insufficient memory, 4 node(s) didn't match Pod's node affinity/selector.'

아 자원 캐파 문제로 불완전하게 설치되었다. 그래도 일단 Pixie 웹 상에서 전체적인 확인은 가능하게 됨.


6. Pixie 삭제

# Delete Pixie operator.
kubectl delete namespace px-operator
# Delete Pixie vizier.
kubectl delete namespace pl
# Delete Pixie ClusterRole, ClusterRoleBinding objects.
kubectl delete clusterroles -l "app=pl-monitoring"
kubectl delete clusterrolebindings -l "app=pl-monitoring"