k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。
那么,K8S实现了什么?
从架构设计层面,我们关注的可用性,伸缩性都可以结合k8s得到很好的解决,如果你想使用微服务架构,搭配k8s,真的是完美,再从部署运维层面,服务部署,服务监控,应用扩容和故障处理,k8s都提供了很好的解决方案。
具体来说,主要包括以下几点:
服务发现与调度
负载均衡
服务自愈
服务弹性扩容
横向扩容
存储卷挂载
总而言之,k8s可以使我们应用的部署和运维更加方便。
主节点,承载 k8s 的控制和管理整个集群系统的控制面板
工作节点,运行用户实际的应用
Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件。
Rancher2.0基于Kubernetes构建,使用Rancher,DevOps团队可以轻松测试、部署和管理应用程序,运维团队可以部署、管理和维护一切Kubernetes集群,无论集群运行在何基础设施之上。
curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
yum makecache fast
yum install -y docker-ce
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/enforcing/disabled/g' /etc/selinux/config; setenforce 0
systemctl start docker && systemctl enable docker
docker run -d --privileged --name rancher -v /home/volume/rancher:/var/lib/rancher --restart=unless-stopped -p 70:80 -p 442:443 rancher/rancher:v2.6.2
.
docker ps -a
查看运行日志
docker ps | grep rancher | awk '{print $1}' | xargs docker logs -f
查看密码
docker logs container-id 2>&1 | grep "Bootstrap Password:"
docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.6 --server https://192.168.30.128 --token tr5bb5j4nhz29kxnwkcmmn6sx9pqzslkfptsfmnsfmgtc77fkncxkm --ca-checksum 9dee301ba8c6172b431de0a8d2bdfe4717f75fc17a894f2ce6560753c61f151a --internal-address 192.168.30.128 --etcd --controlplane --worker
注册成功
的提示:错误1:问题
如果不出意外,你会一直卡在Pre-pulling kubernetes images这里(我自己尝试了6-7次),这一步大概就是拉取k8s镜像,因为kubernetes镜像是托管在gcr.io下,国内正常网络直接拉,估计也没几个能成功的吧,rancher考虑到这个问题,在阿里云镜像仓库中同步了一份原版的镜像,镜像地址是
registry.cn-hangzhou.aliyuncs.com,我们可以在rancher ui界面的settings的system-default-registry进行设置rancher默认的仓库地址
active
状态集群就搭建完成:错误1:Cluster health check failed: Failed to communicate with API server: Get https://10.0.2.15:6443/api/v1/namespaces/kube-system?timeout=45s: dial tcp 127.0.0.1:6443: connect: connection refused
服务器没有关防火墙
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/enforcing/disabled/g' /etc/selinux/config; setenforce 0
执行kubectl命令行
:
角色配置一目了然
操作十分方便
启动
:可以看到,nginx服务已经正常运行
Pod副本数
+
:可以看到下面运行的nginx pod数立马增加1,这就实现了动态伸缩。
之前容器挂载目录是/var/www/html
,新增一个网页