分类 docker 中的文章

使用ansible在多台客户机安装docker

Install ansible on server Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。Ansible可以用来自动化日常任务,比如,服务器的初始化配置、安全基线配置、更新和打补丁系统,安装软件包等 Ansible包括控制节点(Control node)也叫主机,受控节点(Managed nodes)也叫客户机,只在控制节点安装就好了 ansible 优点 只需要在主机上安装ansible软件,客户机不需要安装 通讯协议SSH协议和SFTP 可并行执行程序,默认情况下,forks值为5,可以按需,在配置文件中增大该值 ansible(centos)安装和配置 yum install ansible 为了使Ansible与客户端通信,需要使用用户帐户配置管理机和客户机。为了方便快捷安全,一般会配置证书方式连接客户机 ssh-keygen ssh-copy-id ansible@node ip 使用ad-hoc 在客户执行命令,相当于命令行 /etc/ansible/hosts,最好谨慎使用hosts配置,安全问题需要解决 [docker] 192.168.25.173 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="xxx" 执行以下ping,命令里面的docker对应的上面文件的docker ansible docker -m ping 使用ad-hoc命令管理软件包,安装 ansible docker -m yum -a "name=docker state=present" -b 使用ad-hoc命令管理软件包,设置默认启动 ansible docker -b -m service -a "name=docker enabled=yes" 使用ad-hoc命令管理软件包,启动 ansible docker -b -m service -a "name=httpd state=started" 使用ansible-playbook 部署docker test-ansile.……

阅读全文

我们为什么需要K8S

我们为什么需要K8S 我们用最常用的一个例子LAMP(Linux/Apache/Mysql/PHP or Python or perl)搭建一個負載均均衡的多節點的網站,假如不考慮mysql環節,我們只考慮負載均衡和多節點的問題。 1:如果我们在本地数据中心进行产品部署的话,我们需要那些服务 负载均衡 LB 扩容和缩放 auto scaling 高可用 HA,一個節點挂掉,如果有新的節點自動產生take over他的服務 日志如何同步到一個中心? Docker部署或者裸程序 反向代理服務 那么问题来了,几乎所有的服务都需要我们自己部署和搭建,我们的基础设施,完全依赖裸的操作系统,我们要全部搭建,举几个最简单的例子:如何决定部署多少个Docker容器?如何让这些容器的服务负载均衡?每个容器里面的日志如何同步?任何一个docker容器服务挂掉该如何处理? 我们操作系统的优化,硬件和网络高可用性,等等目前这些问题都需要我们在本地数据中心来实现,无论是复杂度还是需要硬件成本和技术都是非常高的。 2:如果在aws云上我们使用服务 LB(health check等配置) autoscaling cloudwatch logs 创建Lauch configuration 创建image 里面包含我们应用程序或者包含docker 日志的同步可以同步到elasticsearch服務 反向代理(使用lb的或者image裏面自己搭建nginx根據需要) 我们发现如果我们使用aws来构建我们的服务的话,这里面有很多成熟的服务我们可以拿来使用,这里面我们需要完成各个服务的配置,如果我们使用alicloud或者azure等各个服务平台的配置都是不一样的,即便我们有devops,我们使用terraform和assible来做devops也需要很多不同的代码,跨平台的移植非常麻煩 3. 使用K8s 是否需要負載均衡?是,k8s service本身就是負載均衡 是否需要考慮需要節點的擴容和縮放?是,K8s pod本身就支持autoscaling擴容和縮放 日志如何同步?可以直接使用K8s的存儲管理,可以不用第三方的服務 是否支持容器?一直都是以容器為基本單位就行部署的 系統的可移植性如何?你的程序無論在本地數據中心的K8S還是在各個云服務平臺的k8s上,devops的代碼的改動幾乎沒有多少,完全是跨平臺的。無論是開發者還是devops都可以聚焦於你的業務實現 6.反向代理,直接使用service ingress 就可以很容易解決 總之,k8S提供了你需要的完美的一體化的解決方案,所有的這些服務都集成在K8S内部,如果使用一些定制化的k8S平臺,比如openshit還集成了更多的開發和devops的工具在裏面,可以更快的開發和測試和部署,讓我們的用戶效率大大提高。……

阅读全文

k8s使用ingress总结

安装准备 Centos7.7 vm 或者真实的物理机三台(master一台,node两台) 硬件要求2GB ram,最低2CPU,最少32GB 硬盘 节点之间最好网络互通,如果不考虑安全可以关闭firewalld 可以访问到外部网络,因为需要网络资源,比如yum源和其他k8s需要的yaml文件 需要安装和配置 yum源配置 防火墙selinux的关闭与配置 swap分区配置 桥接ipv4流量交给iptables 文件句柄数的限制 Docker的安装 Kubeadmin,flannel 创建deployment,service,pod,ingress,ingress controller,kubernets-dashboard 具体安装步骤 VM 网络选择bridge模式 master:192.168.25.200 node:192.168.25.187⁄192.168.25.188 防火墙 $ systemctl stop firewalld $ systemctl disable firewalld Selinux $ sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config $ sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config $ setenforce 0 关闭swap swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab 网络转发 cat > /etc/sysctl.d/k8s.conf << EOF net.……

阅读全文