kubernetes 初学命令
基础命令
kubectl
运维命令常用:
#查看pod创建过程以及相关日志
kubectl describe pod pod-command -n dev
#查看某个pod,以yaml格式展示结果
kubectl get pod nginx -o yaml
#查看pod 详情 以及对应的集群IP地址
kubectl get pods -o wide
1. kubetcl get
#查看node节点状态
kubectl get nodes#查看pods节点状态
kubectl get pods
2.kubectl run
#kubectl run 命令在 pod 中创建并运行特定的镜像
kubectl run nginx --image=nginx --port 80
3.kubectl describe
#看到pod 的详情
kubectl describe pod nginx
4. kubectl delete
#kubectl delete 删除pod
kubectl delete pod nginx
5.kubectl create/apply
vim nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginxports:- containerPort: 80
#创建pods
kubectl create -f nginx-deployment.yaml
#删除pods
kubectl delete -f nginx-deployment.yaml
[root@k8s-master ~]# kubectl apply -f nginx-deployment.yaml
deployment.apps/nginx created
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-d46f5678b-tljff 1/1 Running 0 20s
[root@k8s-master ~]# kubectl delete -f nginx-deployment.yaml
deployment.apps "nginx" deleted
create 和 apply 之间的区别。
在 kubectl create 命令中,我们指定了一个特定行为,也就是 create ,因此它
是一种更具命令式的方法。
在 kubectl apply 命令中,我们指定系统的目标状态,而不指定一个特定的行为
6.kubectl get pod nginx -o yaml
#查看某个pod,以yaml格式展示结果
7.kubectl get cs
#查看健康状态
kubectl get cs
8.kubectl get namespace
也可指定查看某个命名空间
9.kubectl get namespace default

10.kubectl get all --namespace=kube-system
#用于在 kube-system
命名空间中获取所有资源的详细信息。
kubectl create namespace ns1
kubectl delete namespace ns1
10.kubectl get pods -o wide
#查看pod 详情 以及对应的集群IP地址
11.kubectl explain pod
#kubectl explain 资源类型 查看某种资源可以配置的一级属性
# kubectl explain 资源类型.属性 查看属性的子属性
kubectl explain pod
kubectl explain pod.spec.containers
namespace
#创建一个namespace
kubectl create namespace namepase-test
#查看namespacekubectl get namespace
#查看namespace ns
kubectl get ns
#删除namespace
kubectl delete namespace namepase-test
pod
#创建pod
kubectl run nginx --image=nginx:1.17.1 --port=80
#访问podkubectl get pod -o wide
url http://10.244.1.14
Label
kubectl run nginx --image=nginx:1.17.1 --port=80
#给pod打标签
kubectl label pod nginx version=1.0
#查看pod的标签
kubectl get pods --show-labels#更新pod的标签
kubectl label pod nginx version=2.0 --overwrite
#筛选pod的标签
kubectl get pod -l version=2.0 --show-labels
#删除pod标签
kubectl label pod nginx version-
version-
表示删除标签version

deployment
#创建namespace
kubectl delete ns dev
#删除namespacekubectl create ns dev
#创建deployment 名称叫nginx
kubectl create deployment nginx --image=nginx:1.17.1 -n dev
#查看deploymet -n指的是在dev 的名称空间下看
kubectl get deployment -n dev
#删除deployment
kubectl delete deploy nginx -n dev
#查看dev 下的deployment和pod,pod随着deployment 删除
kubectl get deployment,pod -n dev
-
deployment nginx
:指定要调整的资源类型(deployment
)和资源名称(nginx
)。 -
--replicas=4
:指定目标副本数,这里是4
-
修改其deployment的副本数实现删除
kubectl scale deployment nginx --replicas=4
kubectl scale --replicas=0 deployment nginx


server
kubectl scale deployment nginx --replicas=3
kubectl get pod -o wide
kubectl delete pod nginx-59975f44cf-8vsg4kubectl get pod -o wide
demo1 集群内部访问type=ClusterIP
#暴露端口 type=ClusterIP 这个IP只能集群内部访问 如果需要外部 type=NodePort
kubectl expose deployment nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80
#获取service 信息
kubectl get service
#获取service信息 svc 简写
kubectl get svc
#访问集群IP
curl 10.107.19.254
demo集群外部访问type=NodePort
#集群外部访问
kubectl expose deployment nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80
#查看service 注意post 中的32432对应的就是master的端口
kubectl get service
#删除servicekubectl delete service svc-nginx1