kubernetes(k8s)从入门到精通--配置dashboard及基础命令-第一章-第二节【入门篇】

意义

           在Kubernetes Dashboard 中可以查看集群中应用的运行状态,也能够创建和修改各种 Kubernetes 资源,比如 Deployment、Job、DaemonSet 等。用户可以 Scale Up/Down Deployment、执行 Rolling Update、重启某个 Pod 或者通过向导部署新的应用。Dashboard 能显示集群中各种资源的状态以及日志信息。

可以说,Kubernetes Dashboard 提供了 kubectl 的绝大部分功能,大家可以根据情况进行选择。

但对于我们来说,我们可以通过配置dashboard了解一些K8S基本命令,熟悉K8S基本操作。所以这一节的重点便是通过配置dashboard熟悉某些K8S命令。(以下操作均在k8s-master中执行

一、安装dashboard

1.1、下载yaml文件到本地

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

ps:dashboard版本有很多,您可以在github搜索dashboard自己选择适合自己的版本,在此我选择的是V1.10.1

1.2、修改yaml文件

由于国内无法从谷歌仓库k8s.gcr.io下载镜像,这里需要使用其他镜像仓库拉取。我们只需在kubernetes-dashboard.yaml中修改镜像地址:

vim kubernetes-dashboard.yaml
1、将k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 修改为 mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1

2、修改Dashboard Service 为NodePort类型:

      拖到文件最底部,添加type: NodePort    nodePort: 30001  在添加时请注意空格。如下:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard

1.3、部署

 执行以下命令:

kubectl create -f kubernetes-dashboard.yaml

(此命令是加载部署该yaml文件 其中的create参数也可以替换为apply)

部署完成后输入 :

kubectl get pods --all-namespaces   

此命令查看节点是否正常运行,如果是RUNNING则代表部署成功

输入:

kubectl get svc --all-namespaces

此命令可查看dashboard外部端口,其中30001就是我们dashboard绑定的端口。

若出现了其他状况,则可以输入delete命令重新部署:

kubectl delete -f kubernetes-dashboard.yaml

1.4、添加ssl证书(可略,但不添加证书只能通过火狐等浏览器访问,谷歌不行)

以下命令请一行一行复制执行

mkdir key && cd key
openssl genrsa -out dashboard.key 2048 

openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.238.10'

openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt 

kubectl delete secret kubernetes-dashboard-certs -n kube-system

kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kube-system  #新的证书

kubectl delete pod kubernetes-dashboard-746dfd476-b2r5f -n kube-system    #重启服务

其中192.168.238.10为master节点IP ,您需要替换成您自己的masterIP,当然由于dashboard一般是装在node节点上,所以您也可以将IP换为装有dashboard仪表盘的node节点上。

查看dashboard被k8s分配到了哪一台机器上:

kubectl get pods --all-namespaces -o wide

1.5、访问

1.请在浏览器中输入https://192.168.238.10

ps(在输入网址时需要手动添加https://,不然会报错,其中192.168.238.10为masterIP,可替换成装有dashboard的nodeIP)

2.若出现安全限制则点击高级---接受风险继续

3.若出现仪表板如下图片则代表成功:

二、创建管理员进行令牌认证

若不创建管理员即使在用令牌进入的情况下,依然会有警告提醒错误,所以为了眼角舒服,我们首先创建管理员进行认证。

1.   vim k8s-admin.yaml  写入

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin
  namespace: kube-system

2.   输入:

kubectl create -f k8s-admin.yaml

3.查看mountable secrets

输入:

kubectl describe serviceaccount admin -n kube-system

保存mountable secrets对应的字符串

4.利用mountable secrets查看token

输入:

kubectl describe secret <mountable secrets> -n kube-system

例如:

kubectl describe secret admin-token-pm94h -n kube-system

其中admin-token-pm94h为<mountable secrets>的值。

执行上述命令后,将返回token的值,我们可以将此token点击web上的令牌登录仪表板,如图:

5..登录仪表板

复制此token点击web上的令牌登录仪表板,如图则代表部署成功:

 

三、基础命令

      kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。运行kubectl命令的语法如下所示:

 kubectl [command] [TYPE] [NAME] [flags]


comand:指定要对资源执行的操作,例如create、get、describe和delete

TYPE:指定资源类型,资源类型是大小学敏感的,开发者能够以单数、复数和缩略的形式。例如:

$ kubectl get pod pod1 -n kube-system
$ kubectl get pods pod1 -n kube-system
$ kubectl get po pod1 -n kube-system
NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源,例如:
 $ kubectl get pods --all -namespaces
flags:指定可选的参cccc数。例如,可以使用-s或者–server参数指定Kubernetes API server的地址和端口。
另外,可以通过kubectl help命令获取更多的信息。

ps:我们可以看见kubectl在执行命令时,[command] [TYPE] [NAME] [flags]都是必填参数,

如果获取所有则需加上参数,比如: kubectl get [TYPE] --all -namespaces

若单独获取则也需加上参数,比如::kubectl get [TYPE] [name ] -n kube-system

四、常用命令

1.查看pods

kubectl get pods --all-namespaces

2.查看svc

kubectl get svc --all-namespaces

3.创建/删除

kubectl delete/create pod -f xxx.yaml

4.查看dashboard被k8s分配到了哪一台机器上

kubectl get pods --all-namespaces -o wide

5.查看管理员密钥

kubectl describe serviceaccount admin -n kube-system

6.查看管理员token

kubectl describe secret admin-token-pm94h -n kube-system

7.查看集群状态

kubectl cluster-info

8.查看组件状态

kubectl get cs

~~~~未完待续

      到此为止dashboard配置完成,我们通过配置熟悉了K8S的一些基本操作命令,也搭建好了今后会经常使用的仪表板。下一节,我们将学习通过yaml创建pod对象,并启动nginx服务感兴趣的朋友,可以继续更进,在此小编祝大家生活愉快。有技术交流的朋友请加微信:laughing_jk。

                                                                                                                                                           ~~您身边喜欢绿色的朋友

                                                                                                                                                             帅吉帅哥(Spring)

发布了20 篇原创文章 · 获赞 0 · 访问量 3806

猜你喜欢

转载自blog.csdn.net/Laughing_G/article/details/102499081