curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt install pkg-config
sudo apt-get install libudev-dev
sudo apt install build-essential
vagrant@master:~$ cargo new khagor
Creating binary (application) khagor package
note: see more Cargo.toml keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
vagrant@master:~$ cd khagor
vi Cargo.toml
[package]
name = "khagor"
version = "0.1.0"
edition = "2021"
[dependencies]
kube = { version = "0.87.2", features = ["client","runtime", "derive", "rustls-tls"] }
k8s-openapi = { version = "0.20.0", features = ["latest"] }
tokio = { version = "1.0", features = ["full"] } # Use the latest version
[dev-dependencies]
k8s-openapi = { version = "0.20.0", features = ["latest"] }
async-std = "1.0" # Use the latest version
vi src/main.rs
use kube::{Client, Api};
use kube::api::ListParams;
use k8s_openapi::api::core::v1::Pod;
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// Load the kubeconfig file.
let config = kube::Config::from_kubeconfig(&kube::config::KubeConfigOptions::default()).await?;
let client = Client::try_from(config)?;
// Work with Kubernetes API.
let pods: Api<Pod> = Api::default_namespaced(client);
let lp = ListParams::default();
for p in pods.list(&lp).await? {
println!("Found Pod: {}", p.metadata.name.unwrap_or_default());
}
Ok(())
}
프로젝트 실행
vagrant@master:~/khagor$ cargo run
Compiling khagor v0.1.0 (/home/vagrant/khagor)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.67s
Running `target/debug/khagor`
Found Pod: mariadb-0
Found Pod: mariadb-1
Found Pod: mariadb-2
Found Pod: maxscale1-5b47c98f48-5kj8g
Found Pod: nginx-deployment-86dcfdf4c6-2gdm5
Found Pod: nginx-deployment-86dcfdf4c6-wh974
POD 목록 조회 후 비교
vagrant@master:~/khagor$ k get po
NAME READY STATUS RESTARTS AGE
mariadb-0 1/1 Running 5 (3h18m ago) 5d5h
mariadb-1 1/1 Running 5 (3h17m ago) 5d8h
mariadb-2 1/1 Running 4 (3h16m ago) 5d8h
maxscale1-5b47c98f48-5kj8g 1/1 Running 5 (3h19m ago) 6d1h
nginx-deployment-86dcfdf4c6-2gdm5 1/1 Running 0 29m
nginx-deployment-86dcfdf4c6-wh974 1/1 Running 0 29m