我崇拜生命中的真诚,喜欢被岁月见证过的友情,感恩生命中的不离不弃的人。
kubectl命令
1、直接通过命令去操作k8s资源
kubectl是k8s集群的命令行工具。基本语法如下
kubectl [command] [type] [name] [flag]
kubectl get pod
kubectl get node
kubectl get pod wangzi
kubectl get pod wangzi -o json
kubectl get pod wangzi -o yaml
kubectl get pod wangzi -o wide
kubectl describe pod wangzi
kubectl create ns wangzi
#查看当前的namespace kubectl get ns k8s在集群启动之后,集群中的组件也是通过pod方式运行的,kube-system是集群本身组件所占用的一些pod
#运行一个pod,命名空间指定刚创建的wangzi kubectl run pod --image=nignx -n wangzi #查看在wangzi命名空间下的pod kubectl get pod -n wangzi #描述pod kubectl describe pods pod -n wangzi #删除pod kubectl delete pods pod -n wangzi
2、通过命令配置和配置文件去操作资源(增删改查资源)
kubectl create -f nginx.yaml
apiVersion:V1
kind:Namespace
matadata:
name:wangzi
---
apiVersion:V1
kind: Pod
metadata:
name:wangzi_nginx
namespace:wangzi
spec:
containers:
-name:wangzi_container_nginx
image:nginx:1.17.1
#创建了两个资源
kubectl create -f wangzi.yaml
#删除资源
kubectl delete -f wangzi.yaml
3、通过apply命令和配置文件操作资源(新增和更新资源)
kubectl apply -f wangzi.yaml
4、其他
删除pod,当前wangzi的pod被删除了,会重新创建一个新的pod
kubectl delete pod wangzi
查看控制器,需要删除对应的控制器,然后就不会自动重新创建了
kubectl get deployment -n wangzi
5、资源的类型
①label
apiVersion:V1
kind: Pod
metadata:
name:wangzi_nginx
namespace:wangzi
labels:
version: "1.0"
env: "test"
spec:
containers:
-name:wangzi_container_nginx
image:nginx:1.17.1
kubectl label pod wangzi -n wangzi version=1.0
kubectl label pod wangzi -n wangzi version=1.0 --overwrite
kubectl get pod -n --show-label
- 通过参数 -l 搜索对应的标签
kubectl get pod -l "pod-template-hash=74774dbd69" -n default --show-labels
kubectl label pod wangzi -n wangzi tier-
②deployment
k8s通过控制器来控制pod.
apiVersion: apps/v1
kind: Deployment
metadata:
name: wangzi
spec:
replicas: 3
selector:
matchLabels:
run: wangzi
template:
metadata:
labels:
run: wangzi
--replicas=3 指定副本数量,维护当前容器的个数
kubectl run nginx --image=nginx:latest --port=80 --replicas=3
③Namespace
④pod
- pod是K8S集群进行管理的最小单元。一个pod中可以运行一个或则多个容器。
⑤service
pod重建之后ip会随之变化,ip是集群内部可见的虚拟ip,外部无法访问。service可以实现服务发现和负载均衡。service通过标签选择机制与控制器创建的pod关联起来。
- kubectl expose deployment wangzi --name=wangi1 --type=ClusterIP --port=80 --target-port=80 -n wangzi
- kubectl expose deployment wangzi --name=wangi1 --type=Nodeport--port=80 --target-port=80 -n wangzi
创建成功之后 PORT一栏显示如下:80:19998/TCP 可以通过当前主机的ip:19998 通过ClusterIP 转发到80端口
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 80
protocol: TCP
selector:
app: wangzi
release: heihei
Pod 资源清单:
- 查看容器一级属性
- 查看容器二级属性
KIND: Pod
VERSION: v1
DESCRIPTION:
Pod is a collection of containers that can run on a host. This resource is
created by clients and scheduled onto hosts.
apiVersion: v1
kind: Pod
metadata:
name:
namespace:
labels:
key1: value1
key2: value2
annotations:
key1: value1
key2: value2
spec:
containers:
- name:
image:
imagePullPolicy: (Always, Never, IfNotPresent)
command:
args:
workingDir:
resources:
limits:
cpu: "2"
memory: 10G
requests:
cpu: "4"
memory: 20G
ports:
- name:
containerPort:
protocol:
volumeMounts:
- name:
mountPath:
|