Kubernetes----双master节点二进制群集(部署Web管理界面)+kubectl 命令管理

前言:
  • 基于上一篇多master节点二进制部署的环境,部署Web管理页面,多master节点二进制部署入口:多master二进制集群

    通过对管理界面的操作,会调用集群中master节点的apiserver,创建Pod资源。

  • kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理(删除、更新、回滚)控制着Pod的生命周期,同时能够在集群上进行容器化应用的安装部署。

一、Kubectl 概述
1.1 kuerber 命令行的语法
  • 语法:
kubectl [command] [TYPE] [NAME] [flags]
  • 基本参数介绍

    • ① command

      子命令,用于操作kubernetes集群资源对象的命令,例如create、delete、describe、get、apply等。

    • ② TYPE

      指定资源类型。资源类型不区分大小写,您可以指定单数,复数或缩写形式。例如,以下命令产生相同的输出

      kubectl get pod pod1

      kubectl get pods pod1

      kubectl get po pod1

    • ③ NAME

      指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息

      例如:kubectl gets pods

      对多个资源执行操作时,可以按类型和名称指定每个资源,也可以指定一个或多个文件 :

    • Ⅰ 通过类型和名称指定资源:

    • 如果资源均为同一类型,则将其分组

      格式:TYPE1 name1 name2 name<#>

      示例:kubectl get pod pod1 example-pod2

    • 若分别指定多个资源类型

      格式: TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>

      示例: kubectl get pod/example-pod1 replicationcontroller/example-rc1

    • Ⅱ 若需要使用一个或多个文件指定资源:

      格式: -f file1 -f file2 -f file<#>

      示例: kubectl get pod -f ./pod.yaml

      一般使用YAML而不是JSON,主要因为YAML往往更加的友好,尤其是对配置文件

    • ④ flags

      指定可选标志。例如,可以使用 -s 或 --server 标志来指定Kubernetes API服务器的地址和端口

      PS: 在命令行中指定的标志将覆盖默认值和任何相应的环境变量。

1.2 Kubectl 常用命令
1.2.1 常用子命令
  • kubectl作为kubernetes的命令行工具,主要的职责就是对集群中的资源的对象进行操作,这些操作包括对资源对象的创建、删除和查看等。下表中显示了kubectl支持的所有操作,以及这些操作的语法和描述信息

在这里插入图片描述

1.2.2 常用参数

在这里插入图片描述

1.2.3 kubectl 输出选项
  • kubectl 默认的输出格式为纯文本格式,可以通过-o或者-output字段指定命令的输出格式

    语法如下

kubectl [command] [TYPE] [NAME] -o=<output_format>
  • 以下为可选的输出格式及对应功能
-o=custom-columns=<spec>		根据自定义列名进行输出,以逗号分隔

-o=custom-columns-file=<filename>	从文件中获取自定义列名进行输出

-o=json				
以JSON格式显示结果	

-o=jsonpath=<template>			输出jsonpath表达式定义的字段信息

-o=jsonpath-file=<filename>		
输出jsonpath表达式定义的字段信息,来源于文件

-o=name			
仅输出资源对象的名称

-o=wide			
输出额外信息,对于pod,将输出pod所在的Node名称

-o=yaml			
以YAML格式显示结果
  • 输出pod额外信息,示例
kubectl get pod <pod-name> -o wide
  • 以YAML格式显示Pod详细信息,示例
kubect get pod <pod-name> -o yaml
  • 自定义列表显示Pod信息,示例
kubectl get pod <pod-name> -o=custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
  • 基于文件的自定义列名输出
kubectl get pods <pod-name> -o=custom-columns-file=template.txt
  • kubectl 还可以将输出的结果按指定字段进行排序,使用–sort-by参数以jsonpath表达式进行指定即可~

    示例

格式:kebuctl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>

按照名称进行排序
示例:
kubectl get pods --sort-by=.metadata.name
二、部署流程
2.1 环境
  • 基于上一篇博客部署的多master集群的环境,部署Web界面,然后进行kubectl 命令操作演示
  • 首先,需要至dashboard官网下载5个YAML文件,官方入口:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard

在这里插入图片描述

  • 下载后,在master1节点上创建dashboard工作目录,并上传已下载的五个文件,如下:
[root@master ~]# mkdir dashboard
[root@master ~]# cd dashboard/
[root@master dashboard]# rz -E
[root@master dashboard]# ls
dashboard-configmap.yaml   dashboard-rbac.yaml    dashboard-service.yaml
dashboard-controller.yaml  dashboard-secret.yaml  k8s-admin.yaml
    
#k8s-admin.yaml  是在本地创建的管理员命令资源配置,下文会进行说明
  • 创建顺序:rbac.yaml---->secret.yaml---->configmap.yaml---->controller.yaml----->dashboard.yaml
2.1 创建、加载所有文件
  • ① dashboard-rbac.yaml 角色控制,访问控制资源
kind: Role				#角色
apiVersion: rbac.authorization.k8s.io/v1	#api版本号(有专门的版本号控制)
metadata:			#源信息
  labels:
    k8s-app: kubernetes-dashboard
    addonmanager.kubernetes.io/mode: Reconcile
  name: kubernetes-dashboard-minimal	#创建的资源名称
  namespace: kube-system
rules:				#参数信息的传入
  # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
- apiGroups: [""]
  resources: ["secrets"]
  resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]
  verbs: ["get", "update", "delete"]
  # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["kubernetes-dashboard-settings"]
  verbs: ["get", "update"]
  # Allow Dashboard to get metrics from heapster.
- apiGroups: [""]
  resources: ["services"]
  resourceNames: ["heapster"]
  verbs: ["proxy"]
- apiGroups: [""]
  resources: ["services/proxy"]
  resourceNames: ["heapster", "http:heapster:", "https:heapster:"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: kubernetes-dashboard-minimal
  namespace: kube-system
  labels:
    k8s-app: kubernetes-dashboard
    addonmanager.kubernetes.io/mode: Reconcile
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kubernetes-dashboard-minimal
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kube-system	#名称空间的管理(默认为default)
  • 创建dashboard-rbac.yaml资源
#-f 以文件的格式创建yaml资源
[root@master dashboard]# kubectl create -f dashboard-rbac.yaml 
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
  • 使用-n 查看Role角色kube-system名称空间中的资源
[root@master dashboard]# kubectl get Role -n kube-system
NAME                                             AGE
extension-apiserver-authentication-reader        5d18h
kubernetes-dashboard-minimal                     9m43s			#此项就是刚刚创建的资源
system::leader-locking-kube-controller-manager   5d18h
system::leader-locking-kube-scheduler            5d18h
system:controller:bootstrap-signer               5d18h
system:controller:cloud-provider                 5d18h
system
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值