admin 管理员组文章数量: 887021
k8s
我崇拜生命中的真诚,喜欢被岁月见证过的友情,感恩生命中的不离不弃的人。
kubectl命令
1、直接通过命令去操作k8s资源
kubectl是k8s集群的命令行工具。基本语法如下
kubectl [command] [type] [name] [flag]
-
command: 资源执行的操作,create get delete
-
type:指定资源类型 pod service deployment
-
name: 指定资源名称
-
flags: 额外可选参数
#查看所有pod
kubectl get pod#查看所有node
kubectl get node#查看wangzi 这个pod
kubectl get pod wangzi#查看王子pod以json/yaml形式展示数据
kubectl get pod wangzi -o json
kubectl get pod wangzi -o yaml#查看王子pod的详细信息
kubectl get pod wangzi -o wide#描述资源信息(如果当前pod未启动成功,pullimageerror等就可以使用,查看报错信息)
kubectl describe pod wangzi
#创建一个wangzi的namespace
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_nginxnamespace:wangzi
spec:containers:-name:wangzi_container_nginximage: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_nginxnamespace:wangzi
labels:version: "1.0"env: "test"
spec:containers:-name:wangzi_container_nginximage:nginx:1.17.1
- 给wangzi pod 打标签
kubectl label pod wangzi -n wangzi version=1.0
- 覆盖之前的label
kubectl label pod wangzi -n wangzi version=1.0 --overwrite
- 展示wangzi pod的标签
kubectl get pod -n --show-label
- 通过参数 -l 搜索对应的标签
kubectl get pod -l "pod-template-hash=74774dbd69" -n default --show-labels
- 删除标签 tier-
kubectl label pod wangzi -n wangzi tier-
②deployment
k8s通过控制器来控制pod.
- 文件配置
apiVersion: apps/v1
kind: Deployment
metadata:name: wangzi
spec:replicas: 3selector:matchLabels:run: wangzitemplate: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关联起来。
- 创建集群内部可以访问的service
#通过wangzi这个控制器找到对应的pod,暴露该pod 80端口,成功后会产生一个service的ClusterIP,这个地址在生命周期内不会变动
- kubectl expose deployment wangzi --name=wangi1 --type=ClusterIP --port=80 --target-port=80 -n wangzi
- 创建集群外部可以访问的service
- 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: ClusterIPports:- port: 80targetPort: 80protocol: TCPselector:app: wangzirelease: heihei
Pod 资源清单:
- 查看容器一级属性
- 查看容器二级属性
KIND: Pod
VERSION: v1DESCRIPTION:Pod is a collection of containers that can run on a host. This resource iscreated by clients and scheduled onto hosts.apiVersion: v1 #版本号
kind: Pod #资源类型
metadata: #元数据name: #pod名称namespace: #pod所属命名空间labels: #标签列表key1: value1key2: value2annotations: #资源注解,与label不同在于他不能用于挑选资源对象,仅用于为对象提供“元数据”。key1: value1key2: value2
spec: #必选,pod中容器的详细定义containers: #pod中的容器列表,可以有多个容器- name: #容器名称image: #容器的镜像名称imagePullPolicy: (Always, Never, IfNotPresent) #获取镜像的策略,Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像,如果镜像tag是lastest默认为Always,否则默认为IfNotPresentcommand: #容器的启动命令列表,如不指定,使用打包时使用的启动命令,需要指定bash shell,对应Dockerfile的ENTRYPOINT,定义command后,只会运行command下的命令(优先执行与其他子字段下的command)args: #容器的启动命令参数列表,向command中传参数workingDir: #容器的工作目录resources:#西元配额limits: #资源限制上线cpu: "2" #cpu限制memory: 10G #内存限制requests:#资源限制下线cpu: "4"memory: 20Gports: #需要暴露的端口列表- name: #端口号名称containerPort: #容器所在pod的IP地址上暴露的端口protocol: #端口协议,支持TCP和UDP,默认TCPvolumeMounts: #挂载到容器内部的存储卷配置- name: #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名mountPath: #存储卷在容器内mount的绝对路径
本文标签: k8s
版权声明:本文标题:k8s 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686542456h8054.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论