kubectl get nodes 查看集群信息
kubectl delete node k8s-node1 删除节点
kubectl get service 查看service的信息
kubectl get pods --all-namespaces 查看所有名称空间内的资源
kubectl get pod,svc -n kube-system 同时查看多种资源信息
kubectl cluster-info 查看主节点
kubectl api-versions api查询
kubectl get namespace 查看所有命名空间
kubectl get namespace 命名空间名称 查看某一个命名空间 -n= namespace缩写
kubectl delete namespace 命名空间名称 删除命名空间
kubectl cp my-pod:/var/log/ /tmp/ 把pod里的文件拷贝出来
kubectl cp /tmp my-pod:/var/log/ 把文件或者目录拷贝进pod容器 目录无需加参数
kubectl describe pod pod-name 输出 Pod 的详细信息,包括容器的状态、事件信息和日志信息等。 通过查看 Pod 的事件和描述信息,可以确定 Pod 的状态和容器的运行情况,有助于排查 Pod 运行失败的原因。
创建命名空间操作
1.编写 yaml文件
vim namespace.yml
---
apiVersion: v1 #api版本
kind: Namespace #类型---固定的
metadata: #元数据
name: ns-monitor #名字自定义
labels:
name: ns-monitor
kubectl apply -f namespace.yml 创建资源
kubectl get namespace 查看资源是否生成
k8s发布容器化应用操作
Kubernetes 跟 Docker 等很多项目最大的不同,就在于它不推荐你使用命令行的方式直接运行容器(虽然 Kubernetes 项目也支持这种方式,比如:kubectl run),而是希望你用 YAML 文件的方式,即:把容器的定义、参数、配置,统统记录在一个 YAML 文件中,然后用这样一句指令把它运行起来:
YAML文件,对应到k8s中,就是一个API Object(API 对象)。当你为这个对象的各个字段填好值并提交给k8s之后,k8s就会负责创建出这些对象所定义的容器或者其他类型的API资源。
编写yaml文件内容如下
vim pod.yml
---
apiVersion: v1 #api版本,支持pod的版本
kind: Pod #Pod,定义类型注意语法开头大写
metadata: #元数据
name: website #pod名字自定义
labels:
app: website #自定义,但是不能是纯数字
spec: #指定的意思
containers: #定义容器
- name: test-website #容器名自定义
image: daocloud.io/library/nginx #使用镜像
ports:
- containerPort: 80 #容器暴露的端口
nodeName: k8s-node2 加此参数可以指定node节点的名称
kubectl apply -f pod.yml 创建pod
kubectl apply -f pod.yaml --validate 想看报错信息,加上--validate参数
kubectl get pods -o wide 查看pod运行在那个机器上
kubectl exec -it website /bin/bash 通过pod名称进入容器内部
kubectl delete pod website 、kubectl delete -f pod.yml 删除pod
create与apply的区别:
create创建的应用如果需要修改yml文件,必须先指定yml文件删除,在创建新的pod。
如果是apply创建的应用可以直接修改yml文件,继续apply创建,不用先删掉。
k8sYAML语法规则:
1. 大小写敏感
2. 使用缩进表示层级关系
3. 缩进时不允许使用Tab键,只允许使用空格
4. 缩进的空格数不重要,只要相同层级的元素左侧对齐即可
5. 表示注释,从这个字符一直到行尾,都会被解析器忽略
与本机的Namespace共享
vim pod.yml
---
apiVersion: v1
kind: Pod
metadata:
name: webapp
labels:
app: webapp
spec:
hostNetwork: true #共享宿主机网络可以直接访问宿主机ip访问
hostIPC: true #共享ipc通信
hostPID: true #共享宿主机的pid
containers:
- name: test-webapp
image: daocloud.io/library/nginx
ports:
- containerPort: 80
- name: busybos
image: daocloud.io/library/busybox
stdin: true
tty: true