搭建及使用K8s集群 <k8s dashboard pod方式部署>

k8s dashboard pod方式部署

  • 编写yaml文件
  • 创建pod
  • 浏览器打开webui

编写yaml文件

# cat dashboard.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
# Keep the name in sync with image version and
# gce/coreos/kube-manifests/addons/dashboard counterparts
  name: kubernetes-dashboard-latest
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
        version: latest
        kubernetes.io/cluster-service: "true"
    spec:
      containers:
      - name: kubernetes-dashboard
        image: huanwei/kubernetes-dashboard-amd64:latest
        resources:
          # keep request = limit to keep this container in guaranteed class
          limits:
            cpu: 100m
            memory: 50Mi
          requests:
            cpu: 100m
            memory: 50Mi
        ports:
        - containerPort: 9090
        args:
         -  --apiserver-host=http://192.168.6.150:8080
        livenessProbe:
          httpGet:
            path: /
            port: 9090
          initialDelaySeconds: 30
          timeoutSeconds: 30
---
kind: Service
metadata:
  name: kubernetes-dashboard
  namespace: kube-system
  labels:
    k8s-app: kubernetes-dashboard
    kubernetes.io/cluster-service: "true"
spec:
  type: NodePort
  selector:
    k8s-app: kubernetes-dashboard
  ports:
  - port: 80
    targetPort: 9090

其中- –apiserver-host=http://192.168.6.45:8080 为master的ip,此处不能使用主机名称【如果非要用就要在所有的节点添加host,因为部署pod的时候不知道会分配到哪一个node】

创建pod

# kubectl create -f dashboard.yaml 
deployment "kubernetes-dashboard-latest" created
service "kubernetes-dashboard" created

如上代码显示则创建成功

浏览器打开webui

==,ip、端口 我都不知道怎么知道webui的地址?so 命令查看pod是部署在哪一台node上,

# kubectl get pods --namespace=kube-system
No resources found.

悲剧,创建pod 失败了,
那怎么查看kube日志?
如果 kubernetes 的启动参数中有 –logtostderr=true 表示使用 systemd 接管 kubernetes 的输出,可以用 journalctl 查看
在Linux系统上systemd系统来管理kubernetes服务,并且journal系统会接管服务程序的输出日志,可以通过systemctl status 或journalctl -u -f来查看kubernetes服务的日志。
其中kubernetes组件包括:

k8s组件涉及日志内容
kube-apiserver
kube-controller-managerPod扩容相关或RC相关
kube-schedulerPod扩容相关或RC相关
kubeletPod生命周期相关:创建、停止等
etcd

转自博客 http://blog.csdn.net/huwh_/article/details/71308301

# journalctl -u kube-controller-manager | tail
FailedCreate' Error creating: No API token found for service account "default", retry after the token is automatically created and added to the service account

通过上面错误信息得知失败原因 身份认证
解决的方法有两种 跳过认证 和 添加认证,
参考博客 http://blog.csdn.net/jinzhencs/article/details/51435020
本次采用跳过认证来解决,修改/etc/kubernetes/apiserver

# cat /etc/kubernetes/apiserver
###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#

# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"

# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

# Add your own!
KUBE_API_ARGS=""

KUBE_ADMISSION_CONTROL 去掉 ServiceAccount 我前面一篇 搭建k8s集群的博客中有提到过。

重启master再执行一次第二步。

查看pod明细

# kubectl describe service/kubernetes-dashboard --namespace="kube-system"
Name:                   kubernetes-dashboard
Namespace:              kube-system
Labels:                 k8s-app=kubernetes-dashboard
                        kubernetes.io/cluster-service=true
Selector:               k8s-app=kubernetes-dashboard
Type:                   NodePort
IP:                     10.254.235.156
Port:                   <unset> 80/TCP
NodePort:               <unset> 31081/TCP
Endpoints:              172.17.26.2:9090
Session Affinity:       None
No events.

在 node中执行docker ps,查看进程存在哪个node上

# docker ps
CONTAINER ID        IMAGE                                                        COMMAND                  CREATED              STATUS              PORTS               NAMES
62630e335fc1        huanwei/kubernetes-dashboard-amd64:latest                    "/dashboard --port=90"   About a minute ago   Up About a minute                       k8s_kubernetes-dashboard.44479d71_kubernetes-dashboard-latest-2748740746-dj9m0_kube-system_a0cfa399-b218-11e7-a8b9-080027cd4201_90a07124
90f1a6ddaa03        registry.access.redhat.com/rhel7/pod-infrastructure:latest   "/usr/bin/pod"           About a minute ago   Up About a minute                       k8s_POD.28c50bab_kubernetes-dashboard-latest-2748740746-dj9m0_kube-system_a0cfa399-b218-11e7-a8b9-080027cd4201_bd775cdb

故访问地址为:
http://node2:31081/#/workload?namespace=default

每次重启 ip和端口都会改变,怎么能用固定地址访问?
在我的另外一篇博客使用ingress 暴露服务会提及

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 搭建一个Kubernetes集群需要以下步骤: 1. 准备节点:至少需要两台机器作为Master和Node。 2. 安装依赖:在所有节点上安装必要的依赖,如Docker,etcd,kubeadm等。 3. 初始化Master:使用kubeadm在Master节点上执行初始化。 4. 加入Node:在Node节点上执行kubeadm join命令,加入集群。 5. 安装网络组件:安装Kubernetes的网络组件,如Calico,Flannel等。 6. 部署应用:使用kubectl在集群部署应用。 这些步骤中的每一步都需要仔细按照说明来执行,以确保集群的正确搭建。因为Kubernetes集群搭建是一个复杂的过程,所以建议从官方文档或其他权威教程入手。 ### 回答2: 要搭建一个Kubernetes(简称K8s集群,通常需要按照以下步骤进行: 1. 配置一组服务器:首先需要选择一组服务器来构建集群。这些服务器可以是物理机、虚拟机或云服务器。确保服务器之间可以相互通信,并具备足够的计算和存储资源来支持集群中的各种工作负载。 2. 安装Docker和Kubernetes组件:在每个服务器上安装Docker引擎,用于容器化应用程序。然后,根据Kubernetes的官方文档,安装其他Kubernetes组件,如kubelet、kube-proxy、kube-controller-manager和kube-scheduler。 3. 初始化集群:选择一个服务器作为主节点(Master),使用kubeadm工具初始化集群。这将安装和配置所需的所有Kubernetes组件,并为集群生成一个唯一的证书和密钥。 4. 部署网络插件:选择和安装适当的网络插件,以便集群中的Pod可以相互通信。常见的网络插件包括Calico、Flannel和Weave等。配置网络插件以与Kubernetes集群一起工作。 5. 添加工作节点(Node):使用kubeadm命令将其他服务器添加为工作节点,这样它们就可以参与集群中的工作负载。根据需要,可以将多个工作节点添加到集群中。 6. 运行应用程序:通过创建Deployment等资源对象,将应用程序部署到Kubernetes集群中。这些资源定义了容器的副本数量、访问策略和其他相关配置。 7. 管理和监控集群使用命令行工具(如kubectl)或Kubernetes的Web界面(如Kubernetes Dashboard)来管理和监控集群。可以查看节点状态、应用程序日志、扩展集群等。 总结起来,搭建一个Kubernetes集群需要配置服务器、安装Docker和Kubernetes组件、初始化集群部署网络插件、添加工作节点和运行应用程序。随着Kubernetes的不断演进和发展,有关搭建集群的最佳实践也可能会有所变化。因此,在开始搭建之前,建议仔细阅读官方文档和相关文档,并参考社区中的经验和建议。 ### 回答3: 搭建一个k8s集群需要以下步骤: 1. 准备环境:首先,需要一台或多台运行Linux操作系统的主机作为k8s节点。确保这些主机具有稳定的网络连接,并且它们的操作系统版本符合k8s的要求。 2. 安装Docker:k8s使用Docker来创建和管理容器。因此,在开始搭建k8s集群之前,需要在每个节点上安装Docker。可以从Docker官网下载适应你的操作系统版本的Docker安装程序,并按照官方文档进行安装。 3. 设置主机名:为了方便管理和识别节点,可以设置每个节点的主机名。可以使用命令行或修改主机的/etc/hostname文件来设置主机名。 4. 安装kubeadm、kubelet和kubectl:kubeadm是k8s的命令行工具,用于初始化和管理集群。kubelet是k8s的组件之一,负责管理主机上的容器。kubectl是k8s的命令行工具,用于与集群进行交互。在每个节点上安装kubeadm、kubelet和kubectl,可以使用官方提供的安装脚本或按照官方文档的步骤进行安装。 5. 初始化主节点:在搭建k8s集群的过程中,需要选择一个节点作为主节点,其他节点将作为工作节点加入到主节点中。在主节点上使用kubeadm init命令初始化集群,该命令会生成一个加入命令,用于将工作节点加入到集群中。 6. 加入工作节点:使用上一步骤生成的加入命令,在工作节点上执行命令,将其加入到集群中。 7. 配置网络插件:k8s需要一个网络插件来为容器提供网络功能。根据实际需求选择合适的网络插件,例如Calico、Flannel等,并按照插件提供的文档进行配置和安装。 8. 验证集群:最后,使用kubectl命令验证集群的状态和可用性。可以运行一些简单的测试应用程序来确保集群正常工作。 以上是搭建一个k8s集群的基本步骤,可以根据实际需求进行适当的调整和配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值