资源概念
-
Pod
-
最小部署单元
-
一组容器的集合
-
一个pod中的容器共享网络命名空间
-
Pod是短暂的
-
-
Controllers
-
Deployment:无状态应用部署
-
StatefulSet:有状态应用部署
-
DaemonSet:确保所有Node运行同一个Pod
-
Job:一次性任务
-
Cronjob:定时任务
-
-
Service
-
放置Pod失联
-
定义一组Pod的访问策略
-
-
Label:标签,附加到某个资源上,用于关联对象、查询与筛选
# kubectl get ep NAME ENDPOINTS AGE kubernetes 10.0.0.100:6443 32h my-dep-svc 192.168.169.129:80,192.168.169.130:80,192.168.169.131:80 17m service 关联Pod是根据标签来关联的 查看 svc资源 # kubectl get svc my-dep-svc -o yaml 编辑 svc 资源 # kubectl edit my-dep-svc selector: app: my-dep sessionAffinity: None type: NodePort # =========== 命令行查询标签: # kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS my-dep-5b7868d854-dphc8 1/1 Running 0 26m app=my-dep,pod-template-hash=5b7868d854 my-dep-5b7868d854-sgr2k 1/1 Running 0 26m app=my-dep,pod-template-hash=5b7868d854 my-dep-5b7868d854-z9k5r 1/1 Running 0 26m app=my-dep,pod-template-hash=5b7868d854 # kubectl get deployment --show-labels(deployment 也是通过labels来管理pod的) NAME READY UP-TO-DATE AVAILABLE AGE LABELS my-dep 3/3 3 3 27m app=my-dep 根据标签列出对应的资源 # kubectl get pods -l app=my-dep NAME READY STATUS RESTARTS AGE my-dep-5b7868d854-dphc8 1/1 Running 0 28m my-dep-5b7868d854-sgr2k 1/1 Running 0 28m my-dep-5b7868d854-z9k5r 1/1 Running 0 28m 查看pod运行状态 # kubectl describe pods my-dep-5b7868d854-dphc8
-
Namespaces: 命名空间,将对象逻辑上隔离
Namespaces引入的目的: - 资源隔离 - 对命名空间进行权限控制 查看命名空间 # kubectl get namespace NAME STATUS AGE default Active 32h kube-node-lease Active 32h kube-public Active 32h kube-system Active 32h tigera-operator Active 32h 查看对应命名空间中的pod # kubectl -n kube-system get pods NAME READY STATUS RESTARTS AGE calico-kube-controllers-75f8f6cc59-mbxps 1/1 Running 5 (37m ago) 32h calico-node-5hx4d 1/1 Running 1 (32h ago) 32h calico-node-ddtjt 1/1 Running 2 (23h ago) 32h calico-node-n65kw 1/1 Running 2 (23h ago) 32h coredns-7f6cbbb7b8-mvd8x 1/1 Running 2 (23h ago) 32h coredns-7f6cbbb7b8-x7b2s 1/1 Running 2 (23h ago) 32h etcd-k8s-master 1/1 Running 2 (32h ago) 32h kube-apiserver-k8s-master 1/1 Running 2 (32h ago) 32h kube-controller-manager-k8s-master 1/1 Running 2 (32h ago) 32h kube-proxy-7rxb6 1/1 Running 2 (32h ago) 32h kube-proxy-9dch7 1/1 Running 3 (23h ago) 32h kube-proxy-vpjbr 1/1 Running 3 (23h ago) 32h kube-scheduler-k8s-master 1/1 Running 2 (32h ago) 32h 创建命名空间 # kubectl create namespace cka namespace/cka created 在指定命名空间中创建pod # kubectl create deployment my-web --image=nginx --replicas=2 -n cka deployment.apps/my-web created # kubectl get pod -n cka NAME READY STATUS RESTARTS AGE my-web-6b6c9df775-8bqdd 0/1 ContainerCreating 0 10s my-web-6b6c9df775-fbkzm 0/1 ContainerCreating 0 10s # kubectl expose deployment my-web -n cka --port=80 --target-port=80 --type=NodePort service/my-web exposed 查看资源 # kubectl get deploy,pod,svc -n cka NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/my-web 2/2 2 2 2m2s NAME READY STATUS RESTARTS AGE pod/my-web-6b6c9df775-8bqdd 1/1 Running 0 2m2s pod/my-web-6b6c9df775-fbkzm 1/1 Running 0 2m2s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/my-web NodePort 10.96.225.85 <none> 80:32655/TCP 75s # 删除资源 # kubectl delete deployment my-web -n default deployment.apps "my-web" deleted