各位老铁们,大家好,今天由我来为大家分享Kubernetes可视化构建集群,Web界面一键操作,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
安装部署的架构图如下图所示。
注:运行ku8eye-web开发环境的服务器应在待安装Kubernetes集群的服务器范围之外,并能够与待安装服务器网络连通。
文件名为:ku8eye-web.tar.gz 用gunzip解压后得到文件ku8eye-web.tar。
导入docker镜像:
# docker load -i ku8eye-web.tar
标记图像:
# docker 标签6f46b1372b52 ku8eye-web
运行开发环境: docker run -tid --name ku8eye-web -p 3306:3306 -p 8080:8080 -p 9001:9001 ku8eye-web 其中3306为mysql服务端口,8080为tomcat服务端口,9001为supervisor服务端口,全部映射到上级主机。
映射sshd的22端口,需要添加-p参数,例如-p 2222:22
容器启动成功后,需要等待15秒左右,mysql数据库和Web应用才能启动。
ku8eye-web的使用方式:
1. 命令行方式
进入容器:docker exec -ti ku8eye-web bash
使用命令行完成Kubernetes集群的一键安装。脚本是:
/root/ku8eye-startup.sh $1 $2 $3
需要输入的三个参数是:
$1: 要安装的主机的IP 地址列表,以逗号分隔。第一个主机将充当Kubernetes Master。例如:192.168.1.2,192.168.1.3
$2: Docker0 的B 类IP 地址。系统自动为每个主机设置docker0的C类地址。例如,如果输入172.0.0.0/16,则两台机器上docker0的地址将分别设置为172.0.1.0/24和172.0。 2.0/24
$3: root 用户的密码。目前仅支持所有主机使用相同的密码,例如:123456
完整的命令行如下: /root/ku8eye-startup.sh '192.168.1.2,192.168.1.3' '172.0.0.0/16' '123456'
注意:每个参数都需要用双引号括起来
然后你可以观察输出。
2. 网页方式
打开浏览器,在地址栏输入主机IP和8080端口,即可进入ku8eye-web页面,操作Kubernetes集群。
登录账号:guest/123456
点击左侧“K8s Cluster”菜单,选择“Cluster Inf”进行安装。
---- 容器内包含的软件 ----
1. Ansible安装环境,以及安装Kubernetes所需的全部软件
Ansible 的使用方法请参见下面的“Ansible 安装Kubernetes 集群说明”。
2. JRE1.8
环境变量JAVA_HOME=/root/jre1.8.0_65
3. MySQL 5.7.9
数据库名称:ku8eye
数据库用户名:ku8eye,密码:123456
4. ku8eye-web 应用
jar包:/root/ku8eye-web.jar
Dockerfile以及打包所需的文件在以下目录:
src\ku8eye-ansible 子目录和文件包括:
db_scriptsjre1.8.0_65 -- 需要自己补充二进制文件kubernetes_cluster_setup group_vars pre-setup multi-password-sssh-key roles docker-registry defaults files -- 需要你自己补充二进制文件 tasks templates etcd defaults files -- 你需要自己补充二进制文件 tasks templates kube-master defaults files -- 需要自己补充二进制文件 tasks templates kube-node defaults files -- 需要自己补充二进制文件 tasks templatesshell_scripts
---- ku8eye-web镜像的Dockerfile说明 ----
完整的Dockerfile:
FROM centos:latestMAINTAINER ku8eye.bestcloud@github # 设置时区ENV TZ Asia/Shanghai # 如果需要设置http 代理# ENV http_proxy='http://:' https_proxy='http://:' # 1. 安装ansible (来自互联网)RUN yum clean all \ yum -y install epel-release \ yum -y 安装PyYAML python-jinja2 python-httplib2 python-keyczar python-paramiko python-setuptools git python-pipRUN mkdir /etc/ansible/echo -e '[local]\nlocalhost' /etc/ansible/hostsRUN pip install ansible# 2. 安装sshpass,并生成ssh 密钥(来自互联网)RUN yum -y install sshpassRUN ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa# 使ansible 不进行密钥检查from ~/.ssh/known_hosts fileENV ANSIBLE_HOST_KEY_CHECKING false # 3. 安装MariaDB (mysql)(来自互联网)COPY MariaDB.repo /etc/yum.repos.d/MariaDB.repoRUN yum -y install MariaDB-server MariaDB-client # 4 。安装管理程序(来自互联网)RUN pip install Supervisor # 5. 添加JRE1.8COPY jre1.8.0_65 /root/jre1.8.0_65ENV JAVA_HOME='/root/jre1.8.0_65' PATH='$PATH:/root/jre1. 8.0_65/bin'RUN chmod +x /root/jre1.8.0_65/bin/* # 6. 安装opensshRUN yum install -y openssh openssh-serverRUN mkdir -p /var/run/sshd echo 'root:root' | 8.0_65/bin'RUN chmod +x /root/jre1.8.0_65/bin/* chpasswdRUN /usr /sbin/sshd-keygenRUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config #7 .添加ku8eye-ansible 二进制文件和配置文件COPY kubernetes_cluster_setup /root/kubernetes_cluster_setup # 8. 复制shell 脚本、SQL 脚本、配置文件(将来可能会更新)# db init SQLCOPY db_scripts /root/db_scripts# shell scriptsCOPY shell_scripts /root/shell_scriptsRUN chmod +x /root/shell_scripts/*.shCOPY ku8eye-install-kubernetes.sh /root/ku8eye-install-kubernetes.shRUN chmod +x /root/ku8eye-install-kubernetes.sh# 最新jarCOPY ku8eye-web.jar/root/ku8eye-web.jar # 9.启动mariadb,初始化db数据,并启动ku8eye-web应用#supervisor配置文件COPYsupervisord.conf /etc/supervisord.confENTRYPOINT /usr/bin/supervisord基础镜像为CentOS官方docker镜像: centos:最新
主要步骤:
1. 安装ansible,参考 centos-ansible镜像的Dockerfile
注意:设置环境变量ANSIBLE_HOST_KEY_CHECKING=false 表示ssh 登录其他机器时,ansible 不会根据known_hosts 文件执行密钥检查操作。这样可以跳过第一次ssh连接输入yes的操作。
2. 为ansible安装 sshpass,并执行 ssh-keygen 生成密钥
3. 新增MariaDB.repo yum源配置,执行yum安装MariaDB-Server
MariaDB.repo配置如下:(根据MariaDB的更新,需要手动修改baseurl地址)
[mariadb]name=MariaDBbaseurl=http://yum.mariadb.org/10.1/centos7-amd64/gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=0
4. 安装 supervisor (pip install)
6. 安装openssh
supervisord.conf 文件的内容如下:
其中,将nodaemon设置为true表示supervisord将在前台运行。

两个程序将通过supervisor启动:sshd和脚本run.sh
[supervisord]nodaemon=true [program:sshd]command=/usr/sbin/sshd -Dautostart=trueautorestart=falseredirect_stderr=true [program:ku8eye-web]command=/root/shell_scripts/run.shautostart=trueautorestart=falseredirect_stderr=true 其中,/root /run.sh文件的内容包括启动mysql服务、创建ku8eye数据库、初始化数据、最后启动tomcat。内容是:
#!/bin/sh # 启动mysqld服务/root/shell_scripts/run_mysqld.sh#等待mysqld完全启动sleep 5echo '======`date +'[%Y-%m-%d %H:%M: %S]'' mysqld_safe 启动完成。======' # 运行ku8eye-web initsql.sql创建用户和表mysql /root/db_scripts/initsql.sqlecho '======`date +'[% Y-%m-%d %H: %M:%S]'' 为ku8eye-web 创建mysql 表已完成。======'sleep 1 # 启动ku8eye-web app/root/shell_scripts/run_tomcat.shecho '======`date +'[%Y-%m-%d %H:%M:%S] '' 启动ku8eye-web 完成。======'run_mysqld.sh脚本内容为:
nohup mysqld_safe run_tomcat.sh 脚本的内容为:
nohup $JAVA_HOME/bin/java -jar /root/ku8eye-web.jar org.ku8eye.App /root/tomcat.log 21 最后将启动命令设置为/usr/bin/supervisord
运行docker build完成镜像的创建
# docker build -t='ku8eye-web' --rm .
---- Ansible安装Kubernetes集群说明 ----
Ansible是基于Python开发的自动化运维工具。 ku8eye-web通过调用ansible-playbook完成Kubernetes集群的一键安装。
1. Ansible 安装环境准备
1.1。准备一台Linux服务器并安装docker。
2. Kubernetes集群环境准备
系统要求:CentOS 7 (RedHat 7) 及以上版本,Linux 内核3.10 及以上版本。 Kubernetes:推荐v1.1及以上版本etcd:推荐v2.2及以上版本Docker:推荐v1.9.0及以上版本
服务器IP地址角色192.168.1.200docker-registry192.168.1.201etcd192.168.1.201kube-master192.168.1.202kube-node192.168.1.203kube-node
注1:根据实际环境进行修改。注意2:不要将运行ansible的服务器包含到Kubernetes集群中。
3. Kubernetes集群安装前的准备工作
3.1 启动容器,进入容器
$ docker run -tid --name ku8eye-web -p 3306:3306 -p 8080:8080 -p 9001:9001 ku8eye-web $ docker exec -ti ku8eye-web bash
注意:无需进入容器,也可以直接在安装服务器上使用docker exec 来执行ansible-playbook 脚本。注意配置文件需要使用完整路径: $ docker exec -ti ku8eye-web ansible-playbook -i /root/kubernetes_cluster_setup/hosts /root/kubernetes_cluster_setup/pre-setup/ping.yml
3.2 修改 ansible 的 hosts 配置文件
修改/root/kubernetes_cluster_setup/hosts文件,内容为要安装的Kubernetes集群中各服务器的组和IP地址。
4. Kubernetes集群安装
注:ku8eye-web镜像中已经创建了所有目录和文件,只需修改配置文件内容即可(参见【4.6 修改配置文件内容】(#4.6 修改配置文件内容)配置文件)了解详细信息。
4.1 创建Role
在安装服务器的/root/kubernetes_cluster_setup目录下为不同的分组创建role(角色),包括:
docker-registryetcdkube-masterkube-node
4.2 在每个role下创建4个子目录:
4.3 在安装服务器的/root/kubernetes_cluster_setup目录中创建group_vars子目录存放全局变量
默认文件为all.yml
4.4 在安装服务器的/root/kubernetes_cluster_setup目录中创建setup.yml文件,内容为ansible-playbook在各host安装role的配置:
---- 主机: docker-registry 角色: - docker-registry - 主机: etcd 角色: - etcd - 主机: kube-master 角色: - kube-master - 主机: kube-node 角色: - kube-node
4.5 准备最新版本的二进制文件
待修改文件列表:
kubernetes_cluster_setuproles docker-registry files docker docker 主程序 docker-registry.tar docker 注册表镜像文件 kubernetes_pause.tar Kubernetes 暂停镜像文件 etcd files etcd etcd 主程序 etcdctl etcdctl 命令行工具 kube-master files hyperkube Kubernetes 相关文件 kube-apiserver kube-controller-manager kube-scheduler kubectl kube-node files docker docker 主程序georce_route_quagga.tar quaggar docker 镜像文件hyperkube Kubernetes 相关文件kube-proxy kubectl kubelet 说明:
etcd 下载地址:https://github.com/coreos/etcd/releasesKubernetes 下载地址:https://github.com/kubernetes/kubernetes/releasesdocker 下载地址:https://github.com/docker/docker/releases/dockerregistry 镜像下载地址:docker pullregistry:2 -- 导出镜像文件:docker save -o docker-registry.tarregistry:2Kubernetes Pause 镜像下载地址:docker pull gcr.io/google_containers/pause -- 导出镜像文件:docker save -o kubernetes_pause.tar gcr.io/google_containers/pauseQuagga 镜像文件下载地址:docker pull index.alauda.cn/georce/router --导出镜像文件:docker save -o georce_route_quagga.tar index.alauda.cn/georce/router
4.6 修改配置文件的内容
安装需要修改的配置文件列表Kubernetes集群如下:
kubernetes_cluster_setuphosts 主机列表,每个主机的个性化参数group_vars all.yml 全局参数roles docker-registry defaults main.yml docker 注册表相关参数 etcd defaults main.yml etcd 相关参数 kube-master defaults main.yml master 相关参数 kube-node defaults main.yml 节点相关参数特别说明:以下两组需要仔细规划IP地址范围,不能与物理机的IP地址范围重叠:每台主机上docker0 网桥的IP 地址。 b. Kubernetes中Service的集群IP地址范围。
1) 全局参数 group_vars\all.yml
cluster_domain_name: cluster.local 由kube-dns 服务设置的域名cluster_dns_ip: 20.1.0.100 kube-dns 服务IP 地址(需要在kube-apiserver 的apiserver_service_cluster_ip_range 内) docker_registry_server_name: yourcompany.com docker 注册表主机名docker_registry_server_ip: 192.168.1.202 泊坞窗注册表主机IP地址push_pau
se_image: true 是否将 Kubernetes pause 镜像push到 docker registrykubernetes_pause_image_id: 6c4579af347b pause镜像IDkubernetes_pause_image_tag: "{{docker_registry_url}}/google_containers/pause" pause镜像在 docker registry 的URL
2) docker registry 相关参数 roles\docker-registry\defaults\main.yml
docker0_ip: 172.17.253.1/24 docker0网桥的IP地址docker_runtime_root_dir: /hadoop1/docker docker运行根目录docker_registry_url: "{{docker_registry_server_name}}:5000" docker registry URLdocker_registry_root_dir: /hadoop1/docker_registry docker registry 运行目录docker_registry_image_id: 774242a00f13 docker registry 镜像IDdocker_registry_image_tag: registry:2.2.0 docker registry 镜像tag
3) etcd相关参数 roles\etcd\defaults\main.yml
peer_ip: 192.168.1.201 etcd所在主机的IP地址(cluster配置时使用)etcd_data_dir: /var/lib/etcd/etcd_data etcd数据存储目录
4) master相关参数 roles\kube-master\defaults\main.yml
-- for kube-apiserver
etcd_servers: http://192.168.1.201:4001 kube-apiserver所需etcd服务的URLapiserver_insecure_port: 1100 kube-apiserver监听的非安全端口号apiserver_service_cluster_ip_range: 20.1.0.0/16 Kubernetes Services可分配IP地址池apiserver_service_node_port_range: 1000-5000 NodePort 类型的 Service 可用端口范围,含两端-- for kube-controller-manager, kube-scheduler
kube_master_url: http://192.168.1.201:1100 kube-apiserver服务URLkube_node_sync_period: 10s master与node信息同步时间间隔-- to generate ssh keys on master server
ca_crt_CN: ecip.hp.com master ssh key内CA证书中CN参数server_key_CN: 192.168.1.201 master ssh key内CN参数
5) node相关参数 roles\kube-node\defaults\main.yml
-- for kubelet, kube-proxy
kube_master_url: http://192.168.1.201:1100 kube-apiserver服务URL-- quagga router docker image info
quagga_router_image_id: f96cfe685533 quagga router 镜像IDquagga_router_image_tag: index.alauda.cn/georce/router quagga router 镜像tag
6) 各node不同的参数,在主机列表kubernetes_cluster_setup/hosts文件中进行设置
[docker-registry] 192.168.1.202[etcd] 192.168.1.201[kube-master] 192.168.1.201[kube-node] 192.168.1.202 docker0_ip=172.17.1.1/24 docker_runtime_root_dir=/hadoop1/docker kubelet_hostname_override=192.168.1.202 install_quagga_router=false 192.168.1.203 docker0_ip=172.17.2.1/24 docker_runtime_root_dir=/hadoop1/docker kubelet_hostname_override=192.168.1.203 install_quagga_router=false[kube-node] 参数说明: docker0_ip=172.17.1.1/24 docker0网桥的IP地址,每个node上设置为不同的IP地址docker_runtime_root_dir=/hadoop1/docker docker运行根目录 kubelet_hostname_override=192.168.1.202 kubelet主机名 install_quagga_router=false 是否安装Quagga路由器(docker容器)
该文件的内容表示在哪些主机组(从hosts中读取)上安装哪些role。 通过修改 hosts 文件 和 setup.yml 文件的内容来实现在不同机器上安装不同软件的场景。
一个主机组可以安装多个role的内容多个主机组可以安装同一个role的内容hosts: docker-registry roles:docker-registryhosts: etcd roles:etcdhosts: kube-master roles:kube-masterhosts: kube-node roles:kube-node
5.7 运行 ansible-playbook 完成集群的安装
$ ansible-playbook -i hosts setup.yml PLAY *************************************************************************** TASK [setup] *******************************************************************ok: [192.168.1.200] TASK [docker-registry : copy docker to /usr/bin] *******************************ok: [192.168.1.200] TASK [docker-registry : copy config file docker to /etc/sysconfig] *************ok: [192.168.1.200] TASK [docker-registry : make docker runtime root directory /hadoop1/docker] ****ok: [192.168.1.200] TASK [docker-registry : copy docker.socket to /usr/lib/systemd/system] *********ok: [192.168.1.200]TASK [docker-registry : copy docker.service to /usr/lib/systemd/system] ********ok: [192.168.1.200] TASK [docker-registry : systemctl daemon-reload] *******************************changed: [192.168.1.200] TASK [docker-registry : restart docker.socket service] *************************changed: [192.168.1.200] TASK [docker-registry : enable docker service] *********************************ok: [192.168.1.200] TASK [docker-registry : restart docker service] ********************************changed: [192.168.1.200] TASK [docker-registry : check docker.socket service started ok] ****************changed: [192.168.1.200] TASK [docker-registry : check docker service started ok] ***********************changed: [192.168.1.200] TASK [docker-registry : check if registry image exists] ************************changed: [192.168.1.200] TASK [docker-registry : copy registry image file to /tmp] **********************skipping: [192.168.1.200] TASK [docker-registry : load registry image] ***********************************skipping: [192.168.1.200] TASK [docker-registry : tag registry image] ************************************skipping: [192.168.1.200] TASK [docker-registry : check if registry container exists] ********************changed: [192.168.1.200] TASK [docker-registry : start registry container] ******************************changed: [192.168.1.200] TASK [docker-registry : create running script] *********************************skipping: [192.168.1.200] TASK [docker-registry : start docker registry container] ***********************skipping: [192.168.1.200] TASK [docker-registry : check docker registry started ok] **********************ok: [192.168.1.200] TASK [docker-registry : copy pause image file to /tmp] *************************ok: [192.168.1.200] TASK [docker-registry : check if pause image exists] ***************************changed: [192.168.1.200] TASK [docker-registry : load pause image] **************************************skipping: [192.168.1.200] TASK [docker-registry : tag pause image] ***************************************skipping: [192.168.1.200] TASK [docker-registry : push pause image to private registry] ******************skipping: [192.168.1.200] PLAY RECAP *********************************************************************192.168.1.200 : ok=18 changed=9 unreachable=0 failed=0 PLAY *************************************************************************** TASK [setup] *******************************************************************ok: [192.168.1.201] TASK [etcd : copy etcd to /usr/bin] ********************************************ok: [192.168.1.201] TASK [etcd : copy etcdctl to /usr/bin] *****************************************ok: [192.168.1.201] TASK [etcd : make dir /etc/etcd] ***********************************************ok: [192.168.1.201] TASK [etcd : copy config file etcd.conf to /etc/etcd] **************************ok: [192.168.1.201] TASK [etcd : copy etcd.service to /usr/lib/systemd/system] *********************ok: [192.168.1.201] TASK [etcd : make dir /var/lib/etcd/ for etcd service] *************************ok: [192.168.1.201] TASK [etcd : systemctl daemon-reload] ******************************************changed: [192.168.1.201] TASK [etcd : enable etcd service] **********************************************ok: [192.168.1.201] TASK [etcd : start etcd service] ***********************************************changed: [192.168.1.201] TASK [etcd : test etcd started ok] *********************************************changed: [192.168.1.201] PLAY *************************************************************************** TASK [setup] *******************************************************************ok: [192.168.1.201] TASK [kube-master : copy kube-apiserver to /usr/bin] ***************************ok: [192.168.1.201] TASK [kube-master : copy kube-controller-manager to /usr/bin] ******************ok: [192.168.1.201] TASK [kube-master : copy kube-scheduler to /usr/bin] ***************************ok: [192.168.1.201] TASK [kube-master : copy kubectl to /usr/bin] **********************************ok: [192.168.1.201] TASK [kube-master : copy hyperkube to /usr/bin] ********************************ok: [192.168.1.201] TASK [kube-master : make dir /var/run/kubernetes] ******************************ok: [192.168.1.201] TASK [kube-master : create keys - ca.key] **************************************changed: [192.168.1.201] TASK [kube-master : create keys - ca.crt] **************************************changed: [192.168.1.201] TASK [kube-master : create keys - server.key] **********************************changed: [192.168.1.201] TASK [kube-master : create keys - server.csr] **********************************changed: [192.168.1.201] TASK [kube-master : create keys - server.crt] **********************************changed: [192.168.1.201] TASK [kube-master : make dir /etc/kubernetes] **********************************ok: [192.168.1.201] TASK [kube-master : copy config file apiserver to /etc/kubernetes] *************ok: [192.168.1.201] TASK [kube-master : copy config file config to /etc/kubernetes] ****************ok: [192.168.1.201] TASK [kube-master : copy config file controller-manager to /etc/kubernetes] ****ok: [192.168.1.201] TASK [kube-master : copy config file scheduler to /etc/kubernetes] *************ok: [192.168.1.201] TASK [kube-master : copy kube-apiserver.service to /usr/lib/systemd/system] ****ok: [192.168.1.201] TASK [kube-master : copy kube-controller-manager.service to /usr/lib/systemd/system] ***ok: [192.168.1.201] TASK [kube-master : copy kube-scheduler.service to /usr/lib/systemd/system] ****ok: [192.168.1.201] TASK [kube-master : systemctl daemon-reload] ***********************************changed: [192.168.1.201] TASK [kube-master : make dir /var/log/kubernetes] ******************************ok: [192.168.1.201] TASK [kube-master : enable kube-apiserver service] *****************************ok: [192.168.1.201] TASK [kube-master : start kube-apiserver service] ******************************changed: [192.168.1.201] TASK [kube-master : enable kube-controller-manager service] ********************ok: [192.168.1.201] TASK [kube-master : start kube-controller-manager service] *********************changed: [192.168.1.201] TASK [kube-master : enable kube-scheduler service] *****************************ok: [192.168.1.201] TASK [kube-master : start kube-scheduler service] ******************************changed: [192.168.1.201] TASK [kube-master : check kube-apiserver service started ok] *******************changed: [192.168.1.201] TASK [kube-master : check kube-controller-manager service started ok] **********changed: [192.168.1.201] TASK [kube-master : check kube-scheduler service started ok] *******************changed: [192.168.1.201] PLAY *************************************************************************** TASK [setup] *******************************************************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy docker to /usr/bin] *************************************ok: [192.168.1.202]ok: [192.168.1.203] TASK [kube-node : copy config file docker to /etc/sysconfig] *******************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : make docker runtime root directory /hadoop1/docker] **********ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy docker.socket to /usr/lib/systemd/system] ***************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy docker.service to /usr/lib/systemd/system] **************ok: [192.168.1.202]ok: [192.168.1.203] TASK [kube-node : systemctl daemon-reload] *************************************changed: [192.168.1.203]changed: [192.168.1.202] TASK [kube-node : start docker.socket service] *********************************changed: [192.168.1.203]changed: [192.168.1.202] TASK [kube-node : enable docker service] ***************************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : start docker service] ****************************************changed: [192.168.1.202]changed: [192.168.1.203] TASK [kube-node : check docker.socket service started ok] **********************changed: [192.168.1.202]changed: [192.168.1.203] TASK [kube-node : check docker service started ok] *****************************changed: [192.168.1.203]changed: [192.168.1.202] TASK [kube-node : install_quagga_router - delete all docker containers] ********skipping: [192.168.1.202]skipping: [192.168.1.203]TASK [kube-node : install_quagga_router - delete all docker images] ************skipping: [192.168.1.202]skipping: [192.168.1.203] TASK [kube-node : install_quagga_router - copy Quagga image to /tmp] ***********skipping: [192.168.1.202]skipping: [192.168.1.203] TASK [kube-node : install_quagga_router - load Quagga image] *******************skipping: [192.168.1.202]skipping: [192.168.1.203] TASK [kube-node : install_quagga_router - tag Quagga image] ********************skipping: [192.168.1.202]skipping: [192.168.1.203] TASK [kube-node : install_quagga_router - start Quagga container] **************skipping: [192.168.1.202]skipping: [192.168.1.203] TASK [kube-node : copy kubelet to /usr/bin] ************************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy kube-proxy to /usr/bin] *********************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy kubectl to /usr/bin] ************************************ok: [192.168.1.202]ok: [192.168.1.203] TASK [kube-node : copy hyperkube to /usr/bin] **********************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : make dir /var/run/kubernetes] ********************************ok: [192.168.1.202]ok: [192.168.1.203] TASK [kube-node : make dir /etc/kubernetes] ************************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy config file kubelet to /etc/kubernetes] *****************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy config file config to /etc/kubernetes] ******************ok: [192.168.1.202]ok: [192.168.1.203] TASK [kube-node : copy config file proxy to /etc/kubernetes] *******************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : copy kubelet.service to /usr/lib/systemd/system] *************ok: [192.168.1.202]ok: [192.168.1.203] TASK [kube-node : copy kube-proxy.service to /usr/lib/systemd/system] **********ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : make dir /var/lib/kubelet] ***********************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : systemctl daemon-reload] *************************************changed: [192.168.1.203]changed: [192.168.1.202] TASK [kube-node : make dir /var/log/kubernetes] ********************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : enable kubelet service] **************************************ok: [192.168.1.203]ok: [192.168.1.202] TASK [kube-node : start kubelet service] ***************************************changed: [192.168.1.203]changed: [192.168.1.202] TASK [kube-node : enable kube-proxy service] ***********************************ok: [192.168.1.202]ok: [192.168.1.203] TASK [kube-node : start kube-proxy service] ************************************changed: [192.168.1.203]changed: [192.168.1.202] TASK [kube-node : check kubelet service started ok] ****************************changed: [192.168.1.203]changed: [192.168.1.202] TASK [kube-node : check kube-proxy service started ok] *************************changed: [192.168.1.203]changed: [192.168.1.202] PLAY RECAP *********************************************************************192.168.1.201 : ok=42 changed=15 unreachable=0 failed=0 192.168.1.202 : ok=32 changed=10 unreachable=0 failed=0 192.168.1.203 : ok=32 changed=10 unreachable=0 failed=0
5.8 登录master服务器,验证Kubernetes集群正常启动
$ kubectl get nodesNAME LABELS STATUS192.168.1.202 kubernetes.io/hostname=192.168.1.202 Ready192.168.1.203 kubernetes.io/hostname=192.168.1.203 Ready
用户评论
终于不用再看命令行界面了!这真是个好工具,方便部署和管理 Kubernetes 集群,而且一键操作也太酷炫了吧!
有20位网友表示赞同!
对于刚接触Kubernetes的小白来说的确很友好。图形化界面直观易懂,也能快速了解集群的架构和状态。但我想知道它能支持更多监控指标吗?
有8位网友表示赞同!
我一直想弄一个可视化的kubernetes监控面板,这篇文章终于让我看到希望了!可惜我手头没有那么多资源去搭建,希望能有更轻量级的方案。
有16位网友表示赞同!
这工具确实省时省力,以前操作集群真是要看好多文件和命令行。一键部署这种感觉就太好了,以后学习Kubernetes应该更容易多了!
有11位网友表示赞同!
这个web界面虽然很好用,但我想知道它对安全性保障做了怎样的考虑?毕竟数据安全问题是特别重要的。
有6位网友表示赞同!
搭建了几个集群试玩了一下,感觉这个工具挺不错的,操作简单易上手,适合初学者使用。希望后期能继续完善功能。
有11位网友表示赞同!
我之前一直用自己写脚本管理Kubernetes,现在看来这个可视化平台真的更高效多了!以后可以腾出更多时间研究更复杂的应用
有7位网友表示赞同!
这玩意儿的UI做得还可以,至少比那些命令行界面看得顺眼多了。但我感觉配置选项还是太多了,希望能够更简化一些操作步骤。
有20位网友表示赞同!
看了下文章的代码示例,其实实现起来也很简单!我决定趁周末尝试一下搭建一个类似的平台来管理我的Kubernetes集群。
有10位网友表示赞同!
这个项目确实很不错,对 Kubernetes 运营和维护提供了很大的帮助。 但是它的商业模式是什么? 是免费开源的吗?
有12位网友表示赞同!
我觉得这篇文章写的比较详细,能够清楚地解释 Kubernetes 集群的搭建流程,而且还提供了可视化工具的示例代码,对于新手来说非常有帮助。
有20位网友表示赞同!
很期待后续能够支持更多平台和语言!
有9位网友表示赞同!
这个框架看起来很有潜力,希望能尽快得到社区的支持和完善。
有15位网友表示赞同!
这篇文章虽然介绍了 Kubernetes 可视化搭建集群的一些方法,但我觉得它并没有深入讲解一些关键技术细节,希望之后的版本能够更加全面地讲解技术的原理。
有8位网友表示赞同!
我已经开始使用这个软件管理我的kubernetes集群了,效率真的提高了很多!强烈推荐给想要学习和使用Kubernetes的开发者们!
有10位网友表示赞同!
这篇文章确实很有价值,它使我更好地理解了 Kubernetes 可视化平台的重要性。但我想知道该工具能否扩展到其他类型的云环境?
有13位网友表示赞同!
虽然这个工具看起来很强大,但我担心它的学习曲线会比较陡峭。对于经验不足的开发者来说可能会比较难上手。
有17位网友表示赞同!
希望这个项目能够得到足够的关注和支持,因为它有很大的潜力改变Kubernetes部署和管理的方式!
有15位网友表示赞同!