本文共 3860 字,大约阅读时间需要 12 分钟。
目前K8S是大趋所示,对容器的编排管理有一统江湖的意思。
基于如上的种种原因我们直接从Rancher2.X开始学习,没有必要再去学习一定会被取代的东西和知识点了。
本文主要内容来自于:
如果内置启动创建K8S会有很多问题,这时候就需要清空下实例,重新搭建.方法如下(心酸的血泪史,建议不要安装最新版本的rancher因为未知的坑在等待你,选择rancher/rancher:stable版本):
docker stop $(docker ps -aq)docker system prune -fdocker volume rm $(docker volume ls -q)for mount in $(mount | grep tmpfs | grep '/var/lib/kubelet' | awk '{ print $3 }') /var/lib/kubelet /var/lib/rancher; do umount $mount; donerm -rf /etc/ceph \ /etc/cni \ /etc/kubernetes \ /opt/cni \ /opt/rke \ /run/secrets/kubernetes.io \ /run/calico \ /run/flannel \ /var/lib/calico \ /var/lib/etcd \ /var/lib/cni \ /var/lib/kubelet \ /var/lib/rancher/rke/log \ /var/log/containers \ /var/log/pods \ /var/run/calico
首先需要安装Docker,具体参考
#修改时区[cuiyaonan2000@mzdssop soft]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#首先同步时间,这个在集群环境中非常重要[cuiyaonan2000@mzdssop soft]# yum -y install ntp[cuiyaonan2000@mzdssop soft]# systemctl enable ntpd[cuiyaonan2000@mzdssop soft]# systemctl start ntpd[cuiyaonan2000@mzdssop soft]# timedatectl set-ntp yes[cuiyaonan2000@mzdssop soft]# ntpdate -u cn.pool.ntp.org[cuiyaonan2000@mzdssop soft]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime [cuiyaonan2000@mzdssop soft]# watch -n 1 'date'#关闭Selinux[cuiyaonan2000@mzdssop soft]# sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config#修改语言环境[cuiyaonan2000@mzdssop soft]# sudo echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile#安装anchore最新版本 #注意这里增加了一个 --privileged,如果不加则会报错#privileged 的作用其实就是启动的 container内的root拥有真正的root权限#2.4.X即以前不需要使用privileged#2.5.X需要使用privileged[cuiyaonan2000@mzdssop soft]# sudo docker run -d --restart=unless-stopped --name myRancher -p 80:80 -p 443:443 rancher/rancher
设置账号密码,以及设置能访问该rancher的ip或者域名
右下角将英文切换成中文,左下角是rancher的版本号
点击集群选项卡右上角的----添加集群--》选择自定义创建
可以看到K8S的服务商有很多哈,这里我们是选择从现有节点中创建。cuiyaonan2000@163.com
这里只输入个集群名称就行了,同时也可以选择K8S的版本这里我就用的默认
如下的这个步骤很重要(这里的命令是用于添加集群,同时给运行的集群设置角色,------即不同机器添加不同的角色,运行不同的命令)
Etcd
与 Control
两个选项,复制命令,然后在 master
主机执行命令---如此表示该主机是管理机器Worker
,复制命令,然后在 node
主机执行命令----如此表示该主机是工作主机执行完上面的步骤后--其实要很长时间这里我就做了2台虚拟机。
如下所示:红色字体表示当前正在做的事情-----全自动。中间如果服务器挂掉了也没事它也会自动重启然后在继续搭建k8s服务器
因为--restart=unless-stopped 总之这是个很漫长的过程 慢慢等待吧,除非有什么问题。
如下可以看到2个角色 一个是 所有角色 一个 worker角色,且都在配置阶段------这个有点坑为啥呢,因为中间如果有问题你不知道啊,然后程序就会不断的重启去搭建K8S。。。。。。很坑
最终如果现实如下的内容就表示成功了.状态是active,处理器和内存占有率可以看到,最新版本的安装把我坑惨了,各种问题~~~~~~~~~~~~~~~~~~~~~~~~~
工作负载即 Kubernetes 对一组 Pod 的抽象模型,用于描述业务的运行载体,包括 Deployment、Statefulset、Daemonset、Job、CronJob 等多种类型,详情请参考。
官网上提供了两种类型的工作负载:它们都是将集群外部流量导入到集群内的方式,只是实现方式不同-----cuiyaonan2000。
NodePort 服务是引导外部流量到你的服务的最原始方式。
NodePort,正如这个名字所示,在所有节点(虚拟机)上开放一个特定端口,任何发送到该端口的流量都被转发到对应服务。
Ingress 事实上不是一种服务类型。相反,它处于多个服务的前端,扮演着“智能路由”或者集群入口的角色。
例如:任何发往域名 foo.yourdomain.com 的流量转到 foo 服务,将路径 yourdomain.com/bar/path 的流量转到 bar 服务。
Rancher Server 中存在一个项目的概念,默认存在两个项目:default
和 system
,类似于 namespaces
但是并不是 namespaces
,而且 namespaces
还率属于某项目下,项目可以配置 Pod 安全策略以及资源配额,可以理解为更好的划分各个项目资源隔离。default
项目可以理解为非系统项目的个人自定义项目,system
项目可以理解为具有所有 Kubernetes 和 Rancher 系统命名空间的系统项
在我们成功创建一个集群后,系统会自动创建2个项目一个是Default,一个是System,如下图所示.这里我们选择Default里面进行相关容器的部署
选择-->部署服务
你可以在部署页中输入你的应用名称,可以指定部署多少个Pod(k8s中的概念),选择对应的镜像,然后配置各种参数策略,
如果你想进行数据持久化可以到数据卷的tab中进行配置,
如果你有参数的定义可以到环境变量的tab中进行指定,最后再启动它。
这看起来似乎是更方便的让我们执行了docker run命令,前提是你得熟悉docker中各种命令的使用及含义
如下我们启动一个tomcat镜像----这里有个小问题就是tomcat镜像没法用,启动了访问不了,使用tomcat:alpine镜像就没问题cuiyaonan2000@163.com
转载地址:http://hbcmf.baihongyu.com/