array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Centos7 k8s安装部署 - 爱码网

一、概念

  k8s(Kubernetes):因为中间有八个字母,所以国人称k8s。

二、安装方法

  yum安装:最简单,默认1.5.2版

  编译安装:最难(大佬级别)  golang环境

  二进制安装:最繁琐

  kubeadm:官方安装(网络)kubelet二进制,其他k8s组件全是容器

  minikube:单机版,只适合体验    

  注意:默认yum安装docker是1.13版的,但是会出现容器之间通信不了,必须要降到1.12版的。

三、安装以往的docker版本(1.12)。

  1、下载地址:http://vault.centos.org/7.4.1708/extras/x86_64/Packages/

wget http://vault.centos.org/7.4.1708/extras/x86_64/Packages/docker-common-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm
wget http://vault.centos.org/7.4.1708/extras/x86_64/Packages/docker-client-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm
wget http://vault.centos.org/7.4.1708/extras/x86_64/Packages/docker-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm

  2、安装

yum localinstall docker-common-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm -y
yum localinstall docker-client-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm -y
yum localinstall docker-1.12.6-71.git3e8e77d.el7.centos.x86_64.rpm -y

  3、查看版本

docker version

  4、master节点安装etcd(k8s数据库kv类型存储),原生支持做集群

[root@k8s-master opt]# yum install etcd.x86_64 -y

  5、修改配置文件第6行,第21行。

vim /etc/etcd/etcd.conf

Centos7 k8s安装部署

   6、启动服务

[root@k8s-master opt]# systemctl start etcd.service
[root@k8s-master opt]# systemctl enable etcd.service
[root@k8s-master opt]# netstat -ntl

  Centos7 k8s安装部署

   7、写入测试数据

[root@k8s-master opt]# etcdctl set testdir/testkey0 oldboy             写入值
[root@k8s-master opt]# etcdctl get testdir/testkey0                    获取值

  8、集群健康检查

[root@k8s-master opt]# etcdctl -C http://192.168.125.130:2379 cluster-health
member 8e9e05c52164694d is healthy: got healthy result from http://192.168.125.130:2379
cluster is healthy

  9、安装

[root@k8s-master opt]# yum install kubernetes-master.x86_64 -y
[root@k8s-master opt]# vim /etc/kubernetes/apiserver

  Centos7 k8s安装部署

   23行,不删除,会有一个坑,后面这里会报错

Centos7 k8s安装部署

  修改配置文件:

[root@k8s-master opt]# vim /etc/kubernetes/config

  Centos7 k8s安装部署

   10、启动服务

[root@k8s-master ~]# systemctl enable kube-apiserver.service
[root@k8s-master ~]# systemctl start kube-apiserver.service 
[root@k8s-master ~]# systemctl enable kube-controller-manager.service 
[root@k8s-master ~]# systemctl start kube-controller-manager.service
[root@k8s-master ~]# systemctl enable kube-scheduler.service
[root@k8s-master ~]# systemctl start kube-scheduler.service

    api-server:接受并响应用户的请求

    controller:控制器的概念,保证容器存活

    schedule:调度器,选择启动容器的node节点

    kubelet:通过调用docker管理容器的生命周期

    kube-proxy :让容器被外界访问

   11、在两个node节点安装服务

yum install kubernetes-node.x86_64 -y

   12、修改配置文件

[root@k8s-node1 ~]# vim /etc/kubernetes/config

Centos7 k8s安装部署

[root@k8s-node1 ~]# vim /etc/kubernetes/kubelet

Centos7 k8s安装部署

    13、两个node节点启动服务

[root@k8s-node1 ~]# systemctl start kubelet
[root@k8s-node1 ~]# systemctl enable kubelet
[root@k8s-node1 ~]# systemctl start kube-proxy
[root@k8s-node1 ~]# systemctl enable kube-proxy
[root@k8s-node1 ~]# systemctl status docker

[root@k8s-master ~]# setenforce 0
[root@k8s-node1 ~]# setenforce 0
[root@k8s-node2 ~]# setenforce 0
[root@k8s-master ~]# systemctl stop firewalld
[root@k8s-master ~]# systemctl disable firewalld
[root@k8s-master ~]# kubectl get nodes 查看哪些node节点可用

Centos7 k8s安装部署

    14、三台节点都要安装flannel网络

yum install flannel -y

    15、三台节点都执行,修改flannl配置文件

 sed -i 's#http://127.0.0.1:2379#http://192.168.125.130:2379#g' /etc/sysconfig/flanneld 

Centos7 k8s安装部署

   16、重启服务

    master节点执行:

[root@k8s-master /]# etcdctl mk /atomic.io/network/config '{"Network":"172.16.0.0/16"}'                              设置网段
[root@k8s-master /]# systemctl enable flanneld.service
[root@k8s-master /]# systemctl start flanneld.service
[root@k8s-master /]# service docker restart
[root@k8s-master /]# systemctl restart kube-apiserver.service 
[root@k8s-master /]# systemctl restart kube-controller-manager.service 
[root@k8s-master /]# systemctl restart kube-scheduler.service 

     node:节点执行:

[root@k8s-node2 ~]# systemctl enable flanneld
[root@k8s-node2 ~]# systemctl start flanneld.service
[root@k8s-node2 ~]# service docker restart
[root@k8s-node2 ~]# systemctl restart kubelet.service
[root@k8s-node2 ~]# systemctl restart kube-proxy.service

  17、测试容器网络连通性

[root@k8s-master ~]# ifconfig                                                                  查看flannel网卡IP地址
[root@k8s-master ~]# docker pull busybox                                                       pull一个专门测试网络的小镜像
[root@k8s-master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/busybox latest 1c35c4412082 11 days ago 1.219 MB

[root@k8s-master ~]# docker save docker.io/busybox:latest >docker_busybox.tar.gz               下载镜像
[root@k8s-master ~]# scp docker_busybox.tar.gz root@192.168.125.132:/opt 拷贝镜像至其他node节点上
[root@k8s-node1 opt]# docker load -i docker_busybox.tar.gz 导入镜像
[root@k8s-master opt]# docker run -it docker.io/busybox /bin/sh 进入容器,三台一起执行

Centos7 k8s安装部署

   18、创建本地仓库

[root@k8s-node2 opt]# vim /etc/sysconfig/docker         修改docker配置文件,三台主机上都要修改,由于这个docker版本低,所以是修改这个文件
加上 --registry-mirror=https://registry.docker-cn.com --insecure-registry=192.168.125.130:5000 这一句

Centos7 k8s安装部署

   19、创建私有仓库

[root@k8s-master opt]# docker pull hub.c.163.com/library/registry:latest                          从网上pull包
[root@k8s-master opt]# docker images 查看镜像
[root@k8s-master opt]# docker tag 751f286bc25e registry:latest 重命名
[root@k8s-master opt]# docker rmi hub.c.163.com/library/registry:latest 删除原来的镜像
[root@k8s-master opt]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry 起一个私有仓库
[root@k8s-master opt]# docker ps

  20、pull安装nginx镜像

[root@k8s-master opt]# docker pull nginx:latest
[root@k8s-master opt]# docker run -it docker.io/nginx:latest /bin/bash
root@ff33fb456480:/# nginx -v 查看版本
nginx version: nginx/1.19.0
在容器中安装vim命令
apt-get update
apt-get install vim

   21、上传至私有仓库

[root@k8s-master opt]# docker tag docker.io/nginx:latest 192.168.125.130:5000/nginx:1.19
[root@k8s-master opt]# docker push 192.168.125.130:5000/nginx:1.19

   22、扩展拉取mysql镜像

[root@k8s-master opt]# docker pull mysql:5.7
[root@k8s-master opt]# docker images
[root@k8s-master opt]# docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7             必须要初始化mysql的密码,容器才能拉起来
[root@k8s-master opt]# sudo docker exec -it mysql bash
root@52d7ccd55eaa:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 推荐:需要租用云服务器,域名等其他服务的可以扫描下方二维码,价格优惠,华为云服务,不懂得随时问,专人解答:

    Centos7 k8s安装部署

 

  

相关文章:

  • 2018-06-10
  • 2019-10-01
  • 2019-12-10
  • 2019-12-31
  • 2021-08-23
  • 2019-08-08
  • 2018-12-29
猜你喜欢
  • 2019-01-09
  • 2018-10-23
  • 2021-11-14
  • 2019-01-22
  • 2019-07-01
  • 2019-03-29
  • 2019-01-20
  • 2018-04-16
相关资源
相似解决方案