kubectl 위치 찾기
vagrant@slave3:~/workspace/khagor$ which kubectl
/usr/bin/kubectl
kubectl 과 config 파일을 현재 프로젝트로 복사
vagrant@slave3:~/workspace/khagor$ cp ~/.kube/config .
vagrant@slave3:~/workspace/khagor$ cp /usr/bin/kubectl .
vagrant@slave3:~/workspace/khagor$ ls
Cargo.lock Cargo.toml config dockerfile job.yml kubectl README.md src target
vagrant@slave3:~/workspace/khagor$ vi .gitignore
target
kubectl
config
use std::thread;
use std::process::{Command};
fn main() {
thread::scope(|s| {
s.spawn(|| {
let output = Command::new("kubectl")
.arg("get")
.arg("po")
.output()
.expect("failed to execute process");
let stdout = String::from_utf8(output.stdout).unwrap();
println!("{}", stdout);
});
});
}
vagrant@slave3:~/workspace/khagor$ cargo build --release
Compiling khagor v0.1.0 (/home/vagrant/workspace/khagor)
Finished `release` profile [optimized] target(s) in 1.50s
vagrant@slave3:~/workspace/khagor$ ./target/release/khagor
NAME READY STATUS RESTARTS AGE
mariadb-0 1/1 Running 2 (87m ago) 3d
mariadb-1 1/1 Running 2 (88m ago) 3d
mariadb-2 1/1 Running 2 (87m ago) 3d
maxscale-1-6ccd8599b-lsnqn 1/1 Running 2 (87m ago) 2d23h
vagrant@slave3:~/workspace/khagor$ k get po
NAME READY STATUS RESTARTS AGE
khagor-29qtf 0/1 Completed 0 61m
mariadb-0 1/1 Running 2 (81m ago) 3d
mariadb-1 1/1 Running 2 (82m ago) 3d
mariadb-2 1/1 Running 2 (80m ago) 3d
maxscale-1-6ccd8599b-lsnqn 1/1 Running 2 (81m ago) 2d23h
도커파일을 통해 kubectl 과 config 파일 이미지에 복사
vi dockerfile
FROM ubuntu:20.04
WORKDIR /app
COPY ./target/release /usr/local/bin
COPY kubectl /usr/local/bin
COPY config /app
RUN chmod +x /usr/local/bin/khagor
CMD ["khagor"]
docker build -t khagor .
docker tag khagor:latest chojeonghak/khagor:0.6
docker push chojeonghak/khagor:0.6
k run khagor --image=chojeonghak/khagor:0.6
vagrant@slave3:~/workspace/khagor$ k get po -w
NAME READY STATUS RESTARTS AGE
khagor 0/1 Completed 0 8s
mariadb-0 1/1 Running 2 (129m ago) 3d1h
mariadb-1 1/1 Running 2 (130m ago) 3d1h
mariadb-2 1/1 Running 2 (129m ago) 3d1h
maxscale-1-6ccd8599b-lsnqn 1/1 Running 2 (129m ago) 3d
khagor 0/1 Completed 1 (2s ago) 9s
k delete po khagor
vi myjob.yml
apiVersion: batch/v1
kind: Job
metadata:
name: khagor
spec:
template:
spec:
containers:
- name: khagor
image: chojeonghak/khagor:0.6
restartPolicy: Never
backoffLimit: 5
vagrant@slave3:~/workspace/khagor$ k get po
NAME READY STATUS RESTARTS AGE
khagor-7fth5 0/1 Completed 0 2s
mariadb-0 1/1 Running 2 (132m ago) 3d1h
mariadb-1 1/1 Running 2 (133m ago) 3d1h
mariadb-2 1/1 Running 2 (131m ago) 3d1h
maxscale-1-6ccd8599b-lsnqn 1/1 Running 2 (132m ago) 3d
vagrant@slave3:~/workspace/khagor$ k logs khagor-7fth5
NAME READY STATUS RESTARTS AGE
khagor-7fth5 0/1 ContainerCreating 0 1s
mariadb-0 1/1 Running 2 (132m ago) 3d1h
mariadb-1 1/1 Running 2 (133m ago) 3d1h
mariadb-2 1/1 Running 2 (131m ago) 3d1h
maxscale-1-6ccd8599b-lsnqn 1/1 Running 2 (132m ago) 3d