kubernetes常用基础命令
创建资源对象
创建名为nginx-deploy的控制器资源对象
[root@master ~]# kubectl run nginx-deploy --image=nginx:1.12 --replicas=2
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx-deploy created
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client 1/1 Running 0 7d16h
nginx-deploy-54b5756c7-72c7d 0/1 ContainerCreating 0 17s
nginx-deploy-54b5756c7-phntx 0/1 ContainerCreating 0 17s
创建名为nginx-svc的Service对象
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client 1/1 Running 0 7d16h
nginx-deploy-54b5756c7-72c7d 1/1 Running 0 2m26s
nginx-deploy-54b5756c7-phntx 1/1 Running 0 2m26s
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d
[root@master ~]# kubectl expose deployment/nginx-deploy --name=nginx-svc --port=80
service/nginx-svc exposed
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d
nginx-svc ClusterIP 10.101.181.169 <none> 80/TCP 3s
[root@master ~]# kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d <none>
nginx-svc ClusterIP 10.101.181.169 <none> 80/TCP 9s run=nginx-deploy
也可以根据资源清单创建资源对象,即命令式对象配置文件,例如,假设存在定义了Deployment对象的nginx-deploy.yaml文件,和定义了Service对象的nginx-svc.yaml文件,使用kubectlcreate命令即可进行基于命令式对象配置文件的创建操作:
$kubectl create -f nginx-deploy.yaml -f nginx-svc.yaml
还可以将创建交由kubectl自行确定,用户只需要声明期望的状态,这种方式称为声明式对象配置。例如,假设存在定义了Deployment对象的nginx-deploy.yaml文件,以及定义了Service对象的nginx-svc.yaml文件,那么使用kubectlapply命令即可实现声明式配置:
$kubectl apply -f nginx-deploy.yaml -f nginx-svc.yaml
查看资源对象
# 查看service资源对象
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d
nginx-svc ClusterIP 10.101.181.169 <none> 80/TCP 3s
# 并列出其他信息
[root@master ~]# kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d <none>
nginx-svc ClusterIP 10.101.181.169 <none> 80/TCP 9s run=nginx-deploy
# 查看存在的namespace资源对象
[root@master ~]# kubectl get namespaces
NAME STATUS AGE
default Active 11d
kube-public Active 11d
kube-system Active 11d
# 同时查看
[root@master ~]# kubectl get pods,services -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/client 1/1 Running 0 7d16h 10.244.2.3 node2 <none> <none>
pod/nginx-deploy-54b5756c7-72c7d 1/1 Running 0 11m 10.244.2.4 node2 <none> <none>
pod/nginx-deploy-54b5756c7-phntx 1/1 Running 0 11m 10.244.1.4 node1 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d <none>
service/nginx-svc ClusterIP 10.101.181.169 <none> 80/TCP 6m39s run=nginx-deploy
# 查看namespace为kube-system中标签为k8s-app的所有Pod对象
[root@master ~]# kubectl get pods -l k8s-app -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-86c58d9df4-cm4pm 1/1 Running 1 11d
coredns-86c58d9df4-g2mf4 1/1 Running 1 11d
kube-proxy-bm4g7 1/1 Running 1 10d
kube-proxy-cm88s 1/1 Running 1 10d
kube-proxy-m8wsf 1/1 Running 2 11d
打印资源对象的详细信息
[root@master ~]# kubectl describe pods -l component=kube-apiserver -n kube-system
Name: kube-apiserver-master
Namespace: kube-system
Priority: 2000000000
PriorityClassName: system-cluster-critical
Node: master/192.168.18.64
Start Time: Mon, 14 Jan 2019 17:45:57 +0800
Labels: component=kube-apiserver
tier=control-plane
...
...
[root@master ~]# kubectl describe service nginx-svc
Name: nginx-svc
Namespace: default
Labels: run=nginx-deploy
Annotations: <none>
Selector: run=nginx-deploy
Type: ClusterIP
IP: 10.102.230.186
Port: <unset> 80/TCP
TargetPort: 80/TCP
Endpoints: 10.244.1.6:80,10.244.2.6:80
Session Affinity: None
Events: <none>
[root@master ~]# kubectl describe service -h
[root@master ~]# kubectl describe node -l kubernetes.io/hostname=node2
Name: node2
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/hostname=node2
Annotations: flannel.alpha.coreos.com/backend-data: {"VtepMAC":"ae:49:f9:62:b7:20"}
flannel.alpha.coreos.com/backend-type: vxlan
flannel.alpha.coreos.com/kube-subnet-manager: true
flannel.alpha.coreos.com/public-ip: 192.168.18.66
kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
node.alpha.kubernetes.io/ttl: 0
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Fri, 11 Jan 2019 17:12:49 +0800
Taints: <none>
Unschedulable: false
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
MemoryPressure False Tue, 22 Jan 2019 11:26:26 +0800 Fri, 11 Jan 2019 17:12:49 +0800 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Tue, 22 Jan 2019 11:26:26 +0800 Fri, 11 Jan 2019 17:12:49 +0800 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Tue, 22 Jan 2019 11:26:26 +0800 Fri, 11 Jan 2019 17:12:49 +0800 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Tue, 22 Jan 2019 11:26:26 +0800 Fri, 11 Jan 2019 17:25:56 +0800 KubeletReady kubelet is posting ready status
Addresses:
InternalIP: 192.168.18.66
Hostname: node2
Capacity:
cpu: 1
ephemeral-storage: 17394Mi
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 1867264Ki
pods: 110
Allocatable:
cpu: 1
ephemeral-storage: 16415037823
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 1764864Ki
pods: 110
System Info:
Machine ID: 03e8bf0f8b4c4319b2b27dff38620ba4
System UUID: 3F704D56-210E-A7C5-4544-32704D0FB1A2
Boot ID: 9dd190ac-8ff7-4a34-afc3-ff66f57f2c04
Kernel Version: 3.10.0-514.el7.x86_64
OS Image: CentOS Linux 7 (Core)
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://18.9.0
Kubelet Version: v1.13.1
Kube-Proxy Version: v1.13.1
PodCIDR: 10.244.2.0/24
Non-terminated Pods: (4 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
default client 0 (0%) 0 (0%) 0 (0%) 0 (0%) 7d17h
default nginx-deploy-54b5756c7-btwm4 0 (0%) 0 (0%) 0 (0%) 0 (0%) 16m
kube-system kube-flannel-ds-amd64-h9f9b 100m (10%) 100m (10%) 50Mi (2%) 50Mi (2%) 10d
kube-system kube-proxy-cm88s 0 (0%) 0 (0%) 0 (0%) 0 (0%) 10d
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 100m (10%) 100m (10%)
memory 50Mi (2%) 50Mi (2%)
ephemeral-storage 0 (0%) 0 (0%)
Events: <none>
打印容器中的日志信息
[root@master ~]# kubectl logs kube-apiserver-master -n kube-system
Flag --insecure-port has been deprecated, This flag will be removed in a future version.
I0114 09:45:58.640525 1 server.go:557] external host was not specified, using 192.168.18.64
I0114 09:45:58.640746 1 server.go:146] Version: v1.13.1
I0114 09:45:59.399233 1 plugins.go:158] Loaded 8 mutating admission controller(s) successfully in the following order: NamespaceLifecycle,LimitRanger,ServiceAccount,NodeRestriction,Priority,DefaultTolerationSeconds,DefaultStorageClass,MutatingAdmissionWebhook.
...
...
为上面命令加上-f选项,可以持续监控指定容器中的日志输出
在容器中执行命令
kubectl exec POD [-c CONTAINER] -- COMMAND [args...] [options]
例如
[root@master ~]# kubectl exec kube-apiserver-master -n kube-system -- ls
bin
boot
dev
etc
...
...
删除资源对象
[root@master ~]# kubectl delete deployments -l run=myapp
deployment.extensions "myapp" deleted
删除受控于控制器的对象来说,删除之后控制器会重建出类似的对象,所以删除此类对象可以考虑删除相关控制器
这里可以参考 kubectl delete -h
kubernetes常用基础命令的更多相关文章
- Linux常用基础命令整理:关机命令、查看目录下文件命令等
Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...
- CentOS常用基础命令大全
这篇文章主要介绍了CentOS常用基础命令大全,学习centos的朋友需要掌握的知识,需要的朋友可以参考下 1.关机 (系统的关机.重启以及登出 ) 的命令shutdown -h now 关闭系统(1 ...
- MySQL数据库入门常用基础命令
MySQL数据库入门———常用基础命令 数据——公司的生命线,因此在大多数的互联网公司,都在使用开源的数据库产品,MySQL也因此关注度与使用率非常的高,所以做为运维的屌丝们,掌握它的一些基 ...
- Docker 使用笔记-常用基础命令
常用基础命令 环境:Linux Ubuntu 1.查看docker信息 docker version | docker info 2.启动docker服务 sudo systemctl start d ...
- Linux常用基础命令(二)
Linux常用基础命令 一.-ls--列表显示目录内容 二.-alias--设置别名 三.-du--统计目录及文件空间占用情况 四.-mkdir--创建新目录 五.-touch--创建空文件 六.-l ...
- 前后端同学,必会的Linux常用基础命令
无论是前端还是后端同学,一些常用的linux命令还是必须要掌握的.发布版本.查看日志等等都会用到.以下是我简单的总结了一些简单又常用的命令,欢迎大家补充.希望能帮助到大家 本文首发于公众号 程序员共成 ...
- Docker 容器安装及常用基础命令
为什么用docker 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. Docker 在如下几个方面具有较大的优势: 更快速的交付和部署 Docker在整个开发周期都可以 ...
- MySQL 常用基础命令
一.启动与关闭 1.1 Linux下启动mysql 的命令: a. rpm包安装:service mysqld start b. 源码包安装:/usr/local/mysql/bin/mysqld_s ...
- windows CMD常用基础命令
一.ping 主要是测试本机TCP/IP协议配置正确性与当前网络现状. ping命令的基本使用格式是: ping IP地址/主机名/域名 [-t] [-a] [-n count] [-l size] ...
随机推荐
- SP2-0734: unknown command beginning "lsnrctl st..." - rest of line ignored.
SP2-0734: unknown command beginning "lsnrctl st..." - rest of line ignored. Cause(原因):Comm ...
- docker 17.09.0-ce 启动更换网络地址
一.环境准备 环境1 台虚拟机,系统为centos7 二.17.09.0-ce 安装 卸载安装的所有Docker组件 在 Docker17.03.0-ce 版本中,与在 Docker 1.12 中引入 ...
- iOS自动化-- 常用iOS命令
iOS命令: 获取设备的的UDID idevice_id --list # 显示当前所连接设备的 udid instruments -s devices # 列出所有设备,包括真机.模拟器.mac i ...
- TCP/IP 协议图--计算机网络体系结构分层
计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别.OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实 ...
- 深入理解php中的ini配置(2)
继续接着上一篇写. 运行时改变配置 在前一篇中曾经谈到,ini_set函数可以在php执行的过程中,动态修改php的部分配置.注意,仅仅是部分,并非所有的配置都可以动态修改.关于ini配置的可修改性, ...
- Python文件基础操作(IO入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...
- problem during schema drop, statement alter table ACT_RU_VARIABLE
将activiti的databaseSchemaUpdate设置为drop-create抛出DbSqlSession 错误 发布于2015-02-14 16:03:57 浏览7851次 Excepti ...
- 原生js模仿jq fadeIn fadeOut效果 兼容IE低版本
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 关于使用 CALayer 中 mask 的一些技巧
CALayer 拥有 mask 属性,Apple 的官方解释如下: An optional layer whose alpha channel is used to mask the layer’s ...
- TCP (传输控制协议)
http://baike.baidu.com/item/TCP/33012?fr=aladdin TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可 ...