背景
之前写了一篇有关k8s对象,组件,安装的介绍博客–k8s基础概念,本文就通过简单命令操作和yaml文件再进一步了解下k8s吧。
环境介绍
ip/hostname | docker | k8s | pod cidr | service cidr | 规格 |
---|---|---|---|---|---|
172.20.2.84/master | 1.18.06 | 1.16.3 | 10.10.0.0/16 | 10.244.0/16 | 4C4G |
172.20.2.199/node1 | 1.18.06 | 1.16.3 | 10.10.0.0/16 | 10.244.0.0/16 | 4C4G |
172.20.2.234/node2 | 1.18.06 | 1.16.3 | 10.10.0.0/16 | 10.244.0.0/16 | 4C4G |
通过命令创建
kubectl: apiserver的客户端管理工具,对k8s上各种资源进行增删改查等基本操作
其实命令一般都没什么可说的,只要熟练使用–help基本就可以了解。k8s命令解释是很详细的,如:
kubectl set --help
, kubectl set image --help
常用参数
-
get: 列出一个或多个资源的信息。
-
run: 创建并运行一个或多个容器镜像,并通过deploy管理
-
expose: 暴露服务,指定资源映射为service
-
edit: 编辑k8s上定义的资源
-
label: 编辑标签
-
scale: 扩缩容 Deployment、ReplicaSet、Replication Controller 中Pod数量
-
set: 配置应用资源,如更改pod镜像
-
rollout: 对资源Deployment,DaemonSet版本管理,如查看历史版本,版本回退等
-
describe: 查看资源详细信息,包括构建状态
-
create: 通过配置文件名或stdin创建一个集群资源对象。支持JSON和YAML格式的文件。
-
apply: 类似create,不过创建后还可以继续更新
操作对象
nodes,pods(po),deploymet(deploy),service(svc),namespace(ns),label
get
kubectl get nodes # 查看集群中的nodes
kubectl get pods -n kube-system # 查看命名空间kube-system中的pods
kubectl get ns #查看k8s的命名空间,默认使用default
kubectl get pods -o wide # 查看默认命名空间中的pods,-o wide查看详细信息
kubectl get cs #查看组件状态,不过1.16不能查询组件状态,通过下面命令可查询,参考https://segmentfault.com/a/1190000020912684?utm_source=tag-newest
kubectl get cs -o=go-template='{
{printf "|NAME|STATUS|MESSAGE|\n"}}{
{range .items}}{
{$name := .metadata.name}}{
{range .conditions}}{
{printf "|%s|%s|%s|\n" $name .status .message}}{
{end}}{
{end}}'
run
kubectl run nginx-deploy --image=nginx:1.16.1-alpine --replicas=2 --port=80 #创建一个deploymet,包含两个pods
kubectl describe deployment nginx-deploy #查看deploy信息
# kubectl get po -w #监控pods的实时状态
NAME READY STATUS