关于k8s的原理我不多说,官网文档都有,https://www.kubernetes.org.cn/k8s

本章主要将如何搭建k8s以及使用图形化界面(dashbroad)管理k8s

1.准备四台主机

一台作为master,3台为节点机node

2 设置 ip 和主机名

以自己的主机ip和主机名为主,四台主机都需要配置
  /etc/hosts

192.168.1.7 master

192.168.1.8 node1

192.168.1.9 node2

192.168.1.10 node3

#开启路由转发,每台都需要
  echo "1" > /proc/sys/net/ipv4/ip_forward

3 配置 yum 源

[依赖包下载]https://github.com/ck784101777/kubernetes

containernetworking-cni-0.6.0-3.el7.x86_64.rpm  kubernetes-kubeadm-1.10.3-0.el7.x86_64.rpm
etcd-3.3.11-2.el7.centos.x86_64.rpm             kubernetes-master-1.10.3-0.el7.x86_64.rpm
flannel-0.7.1-4.el7.x86_64.rpm                  kubernetes-node-1.10.3-0.el7.x86_64.rpm
kubernetes-1.10.3-0.el7.x86_64.rpm        kubernetes-client-1.10.3-0.el7.x86_64.rpm

yum -y install vsftp                    #装ftp,只在master上

mkdir /var/ftp/kubernetes

cp *  /var/ftp/kubernetes/           #将依赖包放到kubernetes下

systemctl start vsftpd

yum -y install createrepo           #安装createrepo用来生成yum仓库

createrepo .                               #创建yum仓库,有一个字符点不要忘记

vim /etc/yum.repos.d/kub.repo    #创建yum配置文件,每一台主机都要配置

[kub]
name=kub
baseurl=ftp://192.168.1.11/kubernetes
gpgcheck=0
enabled=1

4 配置私有仓库 registry 

 [依赖包下载]https://github.com/ck784101777/kubernetes

centos.tar
      kubernetes-dashboard.tar
      pod-infrastructure.tar

四台主机都需要安装

yum -y install docker                   #docker安装包

yum install docker-distribution    #docker仓库依赖包

在master上配置私有仓库,修改配置文件

vim /etc/sysconfig/docker                                                                 #每台主机上都要修改
   ADD_REGISTRY='--add-registry 192.168.1.7:5000'         #添加一个仓库,ip地址填你master的ip
   INSECURE_REGISTRY='--insecure-registry 192.168.1.7:5000'   #将这个仓库通过安全授权

systemctl start docker docker-distribution              #启动docker,docker-distribution每台都要起

docker -i load centos.tar                                      #上传镜像,在master上操作

docker -i load kubernetes-dashboard.tar

docker -i load  pod-infrastructure.tar

docker tag  docker.io/centos:latest 192.168.1.7:5000/docker.io/centos:latest         #打包镜像,在master上操作

docker tag  kubernetes-dashboard-amd64:v1.8.3  192.168.1.7:5000/kubernetes-dashboard-amd64:v1.8.3

docker tag  pod-infrastructure.tar 192.168.1.7:5000/pod-infrastructure:latest

docker push  192.168.1.7:5000/docker.io/centos:latest         #上传镜像到镜像仓库,master上操作

docker push  192.168.1.7:5000/kubernetes-dashboard-amd64:v1.8.3

docker push  192.168.1.7:5000/pod-infrastructure:latest

docker pull  192.168.1.7:5000/docker.io/centos:latest         #下载镜像,node上操作

docker pull  192.168.1.7:5000/kubernetes-dashboard-amd64:v1.8.3

docker pull  192.168.1.7:5000/pod-infrastructure:latest

5 配置 kubernets - master

 yum -y install etcd kubernetes-master kubernetes-client       #安装依赖包
 
 vim /etc/etcd/etcd.conf                     #修改etcd.cnf 第六行,改成master的ip
        6: ETCD_LISTEN_CLIENT_URLS="http://192.168.1.7:2379"
 vim /etc/kubernetes/config               #修改config第22行,改成master的ip
       22: KUBE_MASTER="--master=http://192.168.1.7:8080"

vim /etc/kubernetes/apiserver          #修改第8行,改成0.0.0.0,第17行,改成master的ip,第23行,删除双引号下的ServiceAccount
        8: KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"          
       17: KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.1.7:2379"

23: 删除 ServiceAccount 参数

KUBE_ADMISSION_CONTROL="--admission-     control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ResourceQuota"

systemctl start  kube-apiserver kube-controller-manager  kube-scheduler etcd

6 配置 kubernets - node

yum -y install  kubernetes-node        #安装节点服务

vim   /etc/kubernetes/config      #修改config第22行,改成master的ip
       22: KUBE_MASTER="--master=http://192.168.1.7:8080"

vim  /etc/kubernetes/kubelet

#修改kubelet第5行,改成0.0.0.0,修改11行修改成本机ip,修改第14行,请复制我的(修改一下ip,为master的ip的地址)    
        5: KUBELET_ADDRESS="--address=0.0.0.0"
       11: KUBELET_HOSTNAME="--hostname-override=本机名称"
       14:KUBELET_ARGS="--cgroup-driver=systemd --fail-swap-on=false --kubeconfig=/etc/kubernetes/kubelet.kubeconfig --pod-infra-container-image=192.168.1.7:5000/pod-infrastructure:latestt

vim   /etc/kubernetes/kubelet.kubeconfig     #创建一个kubelet.kubeconfig,配置信息如下,修改一下ip,为master的ip的地址
apiVersion: v1
kind: Config
clusters:
  - cluster:
      server: http://192.168.1.7:8080                ###Master的IP,即自身IP
    name: local
contexts:
  - context:
      cluster: local
    name: local
current-context: local

systemctl start  kubelet kube-proxy  docker         #启动一下服务

此时kubernate节点已经建立成功了,可以去master主机上验证一下

kubectl get node              #为Ready说明已经启动成功

NAME      STATUS    ROLES     AGE       VERSION
node1      Ready     <none>    1d        v1.10.3
node2      Ready     <none>    1d        v1.10.3
node3      Ready     <none>    1d        v1.10.3

7.网络

完成了上面的配置,k8s已经配置成功了,但是还是无法通信,下面是配置网络,实现容器与真机,容器与容器之间的通信

 master配置:

vim  /etc/etcd/etcd.conf           #修改第6行,为0.0.0.0
      ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

#输入命令etcdctl mk 创建虚拟网络

etcdctl mk /atomic.io/network/config '{"Network": "10.254.0.0/16", "Backend": {"Type": "vxlan"}}'

#查看是否创建成功

etcdctl get  /atomic.io/network/config  
{"Network": "10.254.0.0/16", "Backend": {"Type": "vxlan"}}

#输入ifconfig可以看到有个10.254.0.0的网络

ifconfig 
 docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 10.254.92.1  netmask 255.255.255.0  broadcast 0.0.0.0

node配置:

   yum install flannel            #安装flannel

#修改第4行,改成master的ip
    vim  /etc/sysconfig/flanneld  
     FLANNEL_ETCD_ENDPOINTS="http://192.168.1.7:2379"
  
     systemctl stop docker         #必须关闭docker

systemctl start flanneld       #必须先启动flanneld再启动docker

systemctl start docker

连通性测试:

#在node1上创建一个docker容器,放在后台

docker run -itd 192.168.1.7:5000/docker.io/centos

#查看id号

docker ps

#查看容器的ip

docker inspect id号

#在node2节点上ping这个容器的ip,若ping通说明网络配置成功

ping ip

#配置失败的解决方案:

#将路由转发默认规则设置为接受

iptables -I FORWARD -j ACCEPT

8 创建容器,测试

[baseos.yaml和kube-dashboard.yaml下载地址]https://github.com/ck784101777/kubernetes

#通过k8s创建容器

kubectl create -f baseos.yaml

#查看容器
 kubectl get pod -o wide

#执行容器
 kubectl exec -it test-os-3826630470-jc5j4 -- /bin/bash

#创建kube-dashboard图形化管理
  kubectl create -f kube-dashboard.yaml

#查看容器,需要切换命名空间.
 kubectl get pod -o wide -n kube-system

NAME                                   READY     STATUS    RESTARTS   AGE       IP                      NODE
kubernetes-dashboard-8c7f65475-gm788   1/1       Running   0          1h        10.254.17.2   node2

#我的dashboard运行在node2上,使用firefox访问管理网站,端口为30090

firefox node2:30090

k8s平台搭建,dashboard图形化管理,纯实例相关推荐

  1. docker swarm k8s比较_Docker 图形化管理又有更新了

    1. 前言 您是否还在命令行窗口中来监视 Docker 容器?乐此不彼地敲着 Docker 相关的命令,虽然这些命令并不是很复杂.今天介绍几款 Docker 的 GUI 监视工具来解放你的双手,把它们 ...

  2. 云原生|kubernetes |部署k8s图形化管理组件 kuboard v3

    前言: kubernetes的图形化管理工具是非常多的,比较常用的比如官方的kubernetes dashboard,青云的kubesphere,私有化部署的rancher等等.官方的dashboar ...

  3. 第五篇:kubernetes部署dashboard(图形化界面)

    说明: 总的目标是在k8s集群部署gitlab.jenkins,并且在本地提交代码到gitlab后jenkin流水线可以自动编译打包成为docker镜像然后部署到k8s中并实现客户端外部域名访问,在文 ...

  4. kuboard使用mysql_基于 Kubernetes 的微服务图形化管理界面 Kuboard

    Kuboard介绍 Kubernetes 容器编排已越来越被大家关注,然而学习 Kubernetes 的门槛却依然很高,主要体现在这几个方面:集群的安装复杂 Kubernetes相较于容器,引入了许多 ...

  5. 常用MySQL图形化管理工具

    MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考. MySQL是一个非常流行的小型关系型数据 ...

  6. 11 款超赞的 MySQL 图形化管理工具,推荐收藏!

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! ​ MySQL 是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购.目前 MySQL ...

  7. 阿里云 OSS browser 官方提供的图形化管理工具

    ossbrowser 是 OSS 官方提供的图形化管理工具,提供类似 Windows 资源管理器的功能.使用 ossbrowser,您可以方便地浏览.上传.下载和管理文件. 注意事项 上传文件最大不能 ...

  8. Docker图形化管理工具之Portainer

    What is Portainer? Portainer是一款轻量级的图形化管理工具,通过它我们可以轻松管理不同的docker环境.Portainer部署和使用都非常的简单,它由一个可以运行在任何do ...

  9. Git图形化管理工具

    Git图形化管理工具 注意:必须在创建的仓库中进行右键打开 复制这段内容后打开百度网盘App,操作更方便哦. 链接:https://pan.baidu.com/s/1eXIk01LXSmzmXvYfw ...

最新文章

  1. android LaunchMode之SingleTask
  2. zbb20180929 thread java并发编程之Condition
  3. [Android Pro] 通过IMSI判断手机是移动、联通、电信
  4. linux创建特殊文件rules,RHEL5 Oracle Linux 5上生成正确的udev rule 规则文件
  5. 大量的数据做字符串匹配_Python Flashtext 实现大数据集下高效的关键词查找和替换...
  6. MUI框架开发HTML5手机APP
  7. 基于Java+SpringBoot+vue+node.js的智能农场管理系统详细设计和实现
  8. Python入门-网络编程
  9. 【JavaScript】JavaScript模拟实现面向对象一张图帮助你深刻理解原型链和原型对象
  10. 推荐系统多场景联合建模经验
  11. ChatGLM-6B【完全转载】
  12. TcaplusDB君 · 行业新闻汇编(11月08号)
  13. C语言之运算符练习题
  14. 光流法——Opencv
  15. 抓INOVANCE 汇川屏与汇川PLC通信
  16. Java实现聊天软件(一)界面编写
  17. 在ros中使用opencv启动例程 rosrun robot_vision cv_bridge_test.py 遇到的问题
  18. mysql 查找相似数据_MySQL性能优化做得好的人,都懂的索引绝技
  19. 普中科技51纯代码(按键)
  20. ESP32 开发笔记(八)ESP32 MP3 播放器

热门文章

  1. 收藏一些比较好的网址
  2. 《古剑奇谭》迅速蹿红的启示
  3. 遍历set、tuple、list哪个速度最快呢?
  4. 《零基础看得懂的C语言入门教程 》——(一)脱离学习误区
  5. ipmi nf5280m5 浪潮_浪潮英信NF5280M5
  6. 克鲁斯卡尔算法---(韩顺平数据结构)笔记
  7. Angular终极教程
  8. linux i217 v网卡驱动,英特尔 I217/I218 网卡驱动 intel-PChome下载中心
  9. MySQL数据库5.7版本安装部署及常规命令 增删改查 索引 事务 优化
  10. MySQL—— MySQL的执行计划详解(Explain)