|
|
查看相关命令
; {2 x) z( P" j6 {0 S% ~* m#查看kubeadm生成的token8 Z9 A% u" b: v) |0 _! G6 \( N
kubeadm token list* ]$ y. ~4 S" E: n3 U3 N, R
2 |0 L, u; J# q; v8 hkubectl get nodes #查看节点的状态:
' Q- ~* x d3 I! Wkubectl get pod --all-namespaces #查看pod的状态
% }8 x% N& S6 z#–all-namespaces #查看全部namespaces的pod
0 `, Y# d9 U: ?8 I$ nkubectl get pod --all-namespaces -o wide #查看pod在各个node上面的分布% K2 W: H' X2 ^( O4 C/ {3 n
#-o wide #查看pod的分布情况
. g' n* {* v" @kubectl get deployment [nginx-deployment] #查看部署状态5 N2 H1 t- z- I2 P
kubectl get deployment --namespace=kube-system #查看系统namespa中的kube-dns组件
, v: s# v6 V, O- Mkubectl get replicaset #查看部署状态
* q0 w& S z, v9 H pkubectl get daemonset --namespace=kube-system #查看用daemonset运行的系统组件
. A. x8 O. f. x; U$ k4 P& Y1 Wkubectl get node --show-labels #查看node的label
* l- ^5 ^( \2 mkubectl get job --show-all #查看job任务
: u: x$ G) V2 c: d; N6 Ekubectl get cronjob #查看cronjob任务; f$ L, ~; E+ M# Y! o
kubectl get namespace #查看运行中的namespace
; M; A+ [ _5 ~# y: X; lkubectl get pv #查看pv: J" S% L' ?9 i" g+ @4 L4 ^
kubectl get pvc #查看pvc
8 J2 L" T) }* _1 ], R- S! F- B. ekubectl get secret [mysecret] #查看存在的secret, u$ }8 i* w: B2 R6 q! ^% [
kubectl get configmap [myconfigmap] #查看存在的configmap
6 l5 U0 q6 a1 S* B9 K' Z- e4 g
* _1 Y7 f3 `) m* U* T- xkubectl describe pod [–namespace=kube-system] #查看pod的具体运行情况,或者启动日志& Q q! b0 P3 |! n; c" F0 B
kubectl describe deployment #了解deployment的详细信息
5 Z8 D5 \' k2 W hkubectl describe replicaset #了解replicaset的详细信息
; z+ S( d& a/ S% M v! m( n; Kkubectl describe secret [mysecret] #查看secret条目的key
; e$ V" e/ g5 y5 N( f/ pkubectl describe configmap [myconfigmap] #查看configmap# m0 c$ \- y+ W+ k; g' k/ J
$ i4 Z/ n0 Z" P5 b1 J
kubectl logs myjob-nfkxk #查看job执行的结果! m& S5 G9 h* L9 u$ ^4 v7 L0 K
8 ~+ T# F, f) h创建相关命令# Q+ x9 B; T: [: B4 ?2 `5 n
#创建token
6 X7 U' O- h' H) _4 h) p4 ~; x/ I: U3 Zkubeadm token create
8 g- W) |% @1 ]#获取ca证书sha256编码hash值+ `* i" `% Q/ Z4 t
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^.* //’' ~5 n' b$ f$ y7 A
! p6 a- Q. F8 Q% e" B
kubectl run httpd-app --image=httpd --replicas=2 #运行俩个pod
# A, f7 t; }) q6 x. [' k7 d#httpd-app #命名为httpd-app
5 ~2 ?- ]* r( R0 ]0 z2 A6 C$ I7 \#–image=httpd #镜像名) N/ B c9 J% k; H, @6 M; w
#replicas=2 #启动俩个pod
5 V9 n0 b! Z* w n* n) I h# P& V6 L; y( L! W$ E2 E$ a
#通过配置文件启动
" x: G9 g/ @6 V _kubectl apply -f nginx.yaml
$ N0 S/ d6 T6 n. ]5 S/ K; L6 Z3 w+ h) r
kubectl apply -f httpd.v1.yml --record
# _6 E/ x+ f1 H# E) C/ J#–record 作用是将当前命令记录到revision记录中,这样就知道每个revison对应的那个配置文件。2 m, n5 O }0 A8 L: I
#可以通过kubectl rollout history deployment httpd来查看revison历史记录
V8 q1 J) T0 D1 k- y9 s/ e. X#创建namespace:( ~! A2 |. W$ k
kubectl create namespace weave; C1 u6 `0 V/ z1 v$ k) B1 N6 E+ \
; ~1 a1 m8 I4 k' j! ]6 L4 v' i/ t8 I
kubectl create configmap myconfigmap --from-file=./logging.conf #通过–from-file方式创建configmap
2 q/ E/ n1 {( n! I& T; ?, Wkubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=12345 #通过–from-literal方式创建secret- P! u- E% u1 @: W* n1 @* B
+ u0 d8 e7 H* j* _: n2 O j; L+ S% O
删除相关命令
; k% J9 e: q' pkubectl delete deployment nginx-deployment #删除deployment任务
O, P1 `3 N( K3 l$ hkubectl delete -f nginx.yml #删除deployment任务
5 o0 [7 K4 f% S) X( {
, P3 x% M2 U6 d' lkubectl delete pods --grace-period=0 --force #删除pod. n' g; f0 o" \" [
% Z5 [! L j p# O: o: t
kubectl delete pvc mypvc1 #删除pvc中的mypvc1
: Y& D; r; d4 \! W0 y* b4 D
, U, E$ }3 T8 r" [1 ]用label控制Pod的位置0 w* F9 k8 u) }0 b: y
kubectl label node k8s-node1 disktype=ssd #标注node1的磁盘类型是ssd) s& ]: o& N1 f; Q, d1 e9 M
kubectl get node --show-labels #查看node的label' N5 ^# x8 ?6 R/ t, J7 |
kubectl lable node k8s-node1 disktype-2 Q7 q: j6 c- f, {
8 ^: G7 l2 X' M7 u/ }
edit命令
x& a# }' X* E" K* t2 zkubectl edit daemonset kube-proxy --namespace=kube-system #查看kube-proxy的yml文件
. N& C1 j9 s5 x% S. m7 A( l6 M/ E% P
kubectl edit secret mysecret #查看value
; a1 A6 w0 E! `, d
- l$ u! J n$ Y; c3 q; iupdate rollout命令
* [/ q4 O# T' Y2 W& i2 Dkubectl apply -f httpd.v1.yml --record
+ j0 N1 c$ t; m4 Z' ^& U4 }#–record 作用是将当前命令记录到revision记录中,这样就知道每个revison对应的那个配置文件。5 a$ A; ^8 D9 Q3 J/ j4 V
#可以通过kubectl rollout history deployment httpd来查看revison历史记录2 t* a6 ~5 C6 R$ p
, Z1 F1 m8 r6 B; u6 Z U+ H
kubectl rollout history history deployment #查看revison历史记录
4 ]( u1 e" T" u0 }8 G0 Q% d
$ l; k+ J, U1 Y( ?* P4 {kubectl rollout undo deployment httpd --to-revision=1 #指定一个版本,回滚
9 b7 s4 e6 t4 ?7 a+ ~0 h/ N2 k( K; B
其他命令
6 }" o1 g6 t2 B5 R2 W+ ?echo -n root | base64 #base64加密
9 T: t, x# C- w4 l7 b0 eecho -n MSDF32D | base64 --decode #反解码
) M* E6 b' s; C; t6 I J
x# k/ X) M9 r8 h#自动补全功能
; M/ [+ I+ `- V/ J! I4 c) Mecho “source <(kubectl completion bash)” >> ~/.bashrc1 F2 J" ~* Z0 K) f1 ^
#helm自动补全功能
' P; c2 h, Z, shelm completion bash > .helmrc echo “source .helmrc” >> .bashrc
/ W; z6 H/ V3 ~' D# b# H: X* c
2 g2 N4 u- _) k1 r#查看集群信息
; v; T1 i2 Y; t" vkubectl cluster-info
- }0 P) j" r# \; X9 A, A#查看apiserver的版本,和已经使用的api+ f8 [) S* R4 {$ i
kubectl api-versions+ y8 k. {0 U7 b, p3 g5 P
0 J& ?* R- B) r1 p6 D: d3 C, A" F
#将master当做node使用; T. Y$ e/ I1 z' N1 L3 _3 O
kubectl taint node master node-role.kubernetes.io/master-
, R1 u- m3 o% x7 g#取消master当做node
! a+ x1 z$ }, S0 }6 P Qkubectl taint node master node-role.kubernetes.io/master="":NoSchedule
1 U2 H, ]4 r* T' V7 j0 c
! P" ^, t' I+ G F8 Y, s9 @: b# r7 B( \#踢出节点
9 w: z+ j3 u" _# Y0 `' k Fkubectl drain nodeName --delete-local-data --force --ignore-daemonsets
9 T0 q8 v3 N% x5 gkubectl delete node nodeName
4 u) \$ K/ b! `, D3 j) G7 Y
0 P+ Z' S. Y2 ]#kubectl top查看k8s pod的cpu , memory使用率情况
. W2 s' E3 D5 ]" f! V8 }kubectl top pod --all-namespaces
; K3 F- f" m% l. W( e, L1 V3 C& x% P6 \( e: P! X
# ?$ v" |4 a/ T5 |7 N5 d3 _
|
|