带你玩转kubernetes-k8s(第二篇:dashboard的安装和简单实例的运行)

      哈喽!大家好,近几周在公司写了一套shell脚本,用来检查宿主机的各项指标,以及docker里面的服务,k8s等。有需要的朋友可以私聊哈。

      我们言归正传,接着昨天的内容开始讲。

 一.安装dashboard

  以下操作均在k8s-master中执行。

  下载yaml文件到本地

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

  由于国内无法从谷歌仓库k8s.gcr.io下载镜像,这里使用另一个镜像仓库拉取

在kubernetes-dashboard.yaml中修改镜像地址
k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 为 mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1

修改Dashboard Service 为NodePort类型

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

2.进行部署

kubectl create -f kubernetes-dashboard.yaml

3.进行检查

4.创建管理员

[root@k8s-1master ~]#  cat 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
kubectl create -f k8s-admin.yaml 

5.查看token

6.使用token登录

二、部署一个简单的实例mysql+webapp

1.创建MySQL的RC定义文件

# cat mysql-rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"

2.创建与之关联的SVC文件

# cat mysql-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
    - port: 3306
  selector:
    app: mysql

3.创建tomcat的RC文件

# cat web-rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
  replicas: 2
  selector:
    app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: kubeguide/tomcat-app:v1
        ports:
        - containerPort: 8080
        env:
        - name: MYSQL_SERVICE_HOST
          value: 'mysql'
        - name: MYSQL_SERVICE_PORT
          value: '3306'

4.创建对应的SVC文件

# cat web-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30002
  selector:
    app: myweb

5.分别将MySQL和tomcat的RC,SVC在K8S上发布

# kubectl create -f mysql-rc.yaml          
# kubectl create -f mysql-svc.yaml
# kubectl create -f web-rc.yaml
# kubectl create -f web-svc.yaml 

6.查看pod和svc

7.网页登录

8.清除

# kubectl delete -f mysql-rc.yaml
# kubectl delete -f mysql-svc.yaml 
# kubectl get pod
No resources found.

小结:

        至此,我们得k8s就安装完成了,并进创建了一个简单的实例。可能到现在很多朋友们还不知道其中的很多命令,以及yaml的一些参数,不要焦急!下节我们就来讲解概念,下节我们先大致的讲解以下k8s的大致架构。如果有时间,可以再给大家带来一个小实例。大家有什么问题可以及时提问哦!

 

 

 

执行 `kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml` 命令后输出信息的含义如下: ```plaintext namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created ``` - `namespace/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的命名空间,用于隔离 Kubernetes Dashboard 相关的资源。 - `serviceaccount/kubernetes-dashboard created`:在 `kubernetes-dashboard` 命名空间中创建了一个名为 `kubernetes-dashboard` 的服务账户,用于 Kubernetes Dashboard 与集群进行交互。 - `service/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的服务,用于暴露 Kubernetes Dashboard 的应用。 - `secret/kubernetes-dashboard-certs created`:创建了一个名为 `kubernetes-dashboard-certs` 的密钥,用于存储 Kubernetes Dashboard 的证书。 - `secret/kubernetes-dashboard-csrf created`:创建了一个名为 `kubernetes-dashboard-csrf` 的密钥,用于防止跨站请求伪造(CSRF)攻击。 - `secret/kubernetes-dashboard-key-holder created`:创建了一个名为 `kubernetes-dashboard-key-holder` 的密钥,用于存储一些关键信息。 - `configmap/kubernetes-dashboard-settings created`:创建了一个名为 `kubernetes-dashboard-settings` 的配置映射,用于存储 Kubernetes Dashboard 的配置信息。 - `role.rbac.authorization.k8s.io/kubernetes-dashboard created`:在 `kubernetes-dashboard` 命名空间中创建了一个名为 `kubernetes-dashboard` 的角色,用于定义对命名空间内资源的访问权限。 - `clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的集群角色,用于定义对整个集群资源的访问权限。 - `rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created`:在 `kubernetes-dashboard` 命名空间中创建了一个名为 `kubernetes-dashboard` 的角色绑定,将服务账户与角色进行绑定。 - `clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的集群角色绑定,将服务账户与集群角色进行绑定。 - `deployment.apps/kubernetes-dashboard created`:创建了一个名为 `kubernetes-dashboard` 的部署,用于管理 Kubernetes Dashboard 的 Pod。 - `service/dashboard-metrics-scraper created`:创建了一个名为 `dashboard-metrics-scraper` 的服务,用于暴露指标收集器的应用。 - `deployment.apps/dashboard-metrics-scraper created`:创建了一个名为 `dashboard-metrics-scraper` 的部署,用于管理指标收集器的 Pod。 ### 后续操作 #### 1. 检查资源状态 使用以下命令检查创建的资源状态: ```bash kubectl get all -n kubernetes-dashboard ``` 确保所有的 Pod 都处于 `Running` 状态。 #### 2. 配置访问方式 可以通过 NodePort 类型的 Service 从外部访问 Kubernetes Dashboard。编辑 `recommended.yaml` 文件,添加 `nodePort` `type: NodePort` 配置: ```yaml --- kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: ports: - port: 443 targetPort: 8443 nodePort: 30002 type: NodePort selector: k8s-app: kubernetes-dashboard ``` 保存修改后,再次应用配置文件: ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml ``` #### 3. 创建访问令牌 为了登录 Kubernetes Dashboard,需要创建一个 Service Account 对应的令牌。以下是创建 Service Account 令牌的示例命令: ```bash kubectl create serviceaccount admin-user -n kubernetes-dashboard kubectl create clusterrolebinding admin-user-binding --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:admin-user kubectl -n kubernetes-dashboard create token admin-user ``` 复制获取到的令牌,用于登录 Dashboard。 #### 4. 访问 Kubernetes Dashboard 在浏览器中输入 `https://<节点 IP>:30002`(30002 为之前配置的 `nodePort`),打开 Kubernetes Dashboard 登录页面。选择 `Token` 登录方式,粘贴之前获取的令牌,点击 `Sign in` 登录。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值