k8s平台搭建,dashboard图形化管理,纯实例
关于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图形化管理,纯实例相关推荐
- docker swarm k8s比较_Docker 图形化管理又有更新了
1. 前言 您是否还在命令行窗口中来监视 Docker 容器?乐此不彼地敲着 Docker 相关的命令,虽然这些命令并不是很复杂.今天介绍几款 Docker 的 GUI 监视工具来解放你的双手,把它们 ...
- 云原生|kubernetes |部署k8s图形化管理组件 kuboard v3
前言: kubernetes的图形化管理工具是非常多的,比较常用的比如官方的kubernetes dashboard,青云的kubesphere,私有化部署的rancher等等.官方的dashboar ...
- 第五篇:kubernetes部署dashboard(图形化界面)
说明: 总的目标是在k8s集群部署gitlab.jenkins,并且在本地提交代码到gitlab后jenkin流水线可以自动编译打包成为docker镜像然后部署到k8s中并实现客户端外部域名访问,在文 ...
- kuboard使用mysql_基于 Kubernetes 的微服务图形化管理界面 Kuboard
Kuboard介绍 Kubernetes 容器编排已越来越被大家关注,然而学习 Kubernetes 的门槛却依然很高,主要体现在这几个方面:集群的安装复杂 Kubernetes相较于容器,引入了许多 ...
- 常用MySQL图形化管理工具
MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考. MySQL是一个非常流行的小型关系型数据 ...
- 11 款超赞的 MySQL 图形化管理工具,推荐收藏!
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! MySQL 是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购.目前 MySQL ...
- 阿里云 OSS browser 官方提供的图形化管理工具
ossbrowser 是 OSS 官方提供的图形化管理工具,提供类似 Windows 资源管理器的功能.使用 ossbrowser,您可以方便地浏览.上传.下载和管理文件. 注意事项 上传文件最大不能 ...
- Docker图形化管理工具之Portainer
What is Portainer? Portainer是一款轻量级的图形化管理工具,通过它我们可以轻松管理不同的docker环境.Portainer部署和使用都非常的简单,它由一个可以运行在任何do ...
- Git图形化管理工具
Git图形化管理工具 注意:必须在创建的仓库中进行右键打开 复制这段内容后打开百度网盘App,操作更方便哦. 链接:https://pan.baidu.com/s/1eXIk01LXSmzmXvYfw ...
最新文章
- android LaunchMode之SingleTask
- zbb20180929 thread java并发编程之Condition
- [Android Pro] 通过IMSI判断手机是移动、联通、电信
- linux创建特殊文件rules,RHEL5 Oracle Linux 5上生成正确的udev rule 规则文件
- 大量的数据做字符串匹配_Python Flashtext 实现大数据集下高效的关键词查找和替换...
- MUI框架开发HTML5手机APP
- 基于Java+SpringBoot+vue+node.js的智能农场管理系统详细设计和实现
- Python入门-网络编程
- 【JavaScript】JavaScript模拟实现面向对象一张图帮助你深刻理解原型链和原型对象
- 推荐系统多场景联合建模经验
- ChatGLM-6B【完全转载】
- TcaplusDB君 · 行业新闻汇编(11月08号)
- C语言之运算符练习题
- 光流法——Opencv
- 抓INOVANCE 汇川屏与汇川PLC通信
- Java实现聊天软件(一)界面编写
- 在ros中使用opencv启动例程 rosrun robot_vision cv_bridge_test.py 遇到的问题
- mysql 查找相似数据_MySQL性能优化做得好的人,都懂的索引绝技
- 普中科技51纯代码(按键)
- ESP32 开发笔记(八)ESP32 MP3 播放器