明晚8点30分,Rancher 2.4特别攻略第二期准时开播!本节课将由Rancher中国研发经理为你详细介绍Rancher 2.4中的核心功能,如CSI安全扫描、使用Rancher UI升级k3s等,除了demo还是demo!现场还有抽奖环节噢!
点击文末【阅读原文】或访问以下链接即可报名:
http://z-mz.cn/o3ud
不可否认的是,OpenStack仍然是可行的云操作系统,并且被全世界许多互联服务提供商使用。而Rancher是业界最为广泛使用的Kubernetes管理平台,通过简洁直观的GUI集中管理企业IT中的多个Kubernetes集群。Rancher还提供用于应用程序开发的集成工具以及用于安全性和治理的强大的企业级功能。目前Rancher已有三亿核心镜像下载量。本文将使用Rancher在Openstack上创建一个Kubernetes集群。
本文中的设置是在teuto.net运营的Bielefeld的teutoStack公有云环境中执行的,因此安装过程可能会有略微不同。
Kubernetes本身与OpenStack集成已经一段时间了,并且已经建立了良好的基础。它由两个组件组成:OpenStack云提供程序以及OpenStack节点驱动程序。在Rancher中,默认可以获取云提供程序,同时Rancher中也有节点驱动程序,但是这不是默认提供的。
在OpenStack上构建一个Rancher Kubernetes集群有两种方式:使用OpenStack节点驱动程序或通过自定义节点设置(https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/custom-nodes/)。
为了便于访问,本文中的所有配置示例你都可以在Github上获取:
https://github.com/chfrank-cgn/Rancher/tree/master/openstack
![ff785dc65425d16dfdb68536fb20ba4f.png](https://i-blog.csdnimg.cn/blog_migrate/b06f248be6707f55bb5d43428e75fb7f.jpeg)
启动OpenStack云提供程序
要允许Kubernetes访问OpenStack API,以创建load balancer或volume,需要启用OpenStack云提供程序。为此,请在Rancher GUI中为云提供程序创建集群时选择“自定义”选项,然后将以下信息插入集群配置(通过“编辑YAML”)——你可以根据需要替换实际值:
rancher_kubernetes_engine_config:... cloud_provider: name: "openstack" openstackCloudProvider: block_storage: ignore-volume-az: true trust-device-path: false bs-version: "v2" global: auth-url: "https://api.openstack.net:5000/v3" # Keystone Auth URL domain-name: "Default" # Identity v3 Domain Name tenant-id: "616a8b01b5f94f99acd00a844f8f46c3" # Project ID username: "user" # OpenStack Username password: "pass" # OpenStack Password load_balancer: lb-version: "v2" subnet-id: "f339e543-a67f-45fa-8157-4a58b0940e0b" floating-network-id: "ca27ca05-2870-47b3-ad2f-535d04c9e736" create-monitor: false manage-security-groups: true monitor-max-retries: 0 use-octavia: true metadata: request-timeout: 0 ignore_docker_version: false ...
有了这些信息,Kubernetes将可以访问OpenStack API,创建和删除资源以及访问Cinder volume和Octavia负载均衡器。没有这一配置,Kubernetes集群也能够良好运行,只是无法访问Cinder或者Octavia,或者其他OpenStack资源。
![ff785dc65425d16dfdb68536fb20ba4f.png](https://i-blog.csdnimg.cn/blog_migrate/b06f248be6707f55bb5d43428e75fb7f.jpeg)
方式1:使用OpenStack节点驱动程序创建集群
需要在Rancher配置中启用节点驱动程序,才能使用内置节点驱动程序在OpenStack上创建Kubernetes集群。然后需要使用以下信息创建一个节点模板(可以根据需要更换实际值):
"authUrl": "https://api.openstack.net:5000/v3","availabilityZone": "Zone1","domainName": "Default","flavorName": "standard.2.1905","floatingipPool": "extern","imageName": "ubuntu-18.04-bionic-amd64","keypairName": "rancher","netName": "intern","sshPort": "22","sshUser": "ubuntu","tenantId": "616a8b01b5f94f99acd00a844f8f46c3","username": "user"
之后,与所有其他云提供商一样,集群创建非常简单。
![ff785dc65425d16dfdb68536fb20ba4f.png](https://i-blog.csdnimg.cn/blog_migrate/b06f248be6707f55bb5d43428e75fb7f.jpeg)
安全选项
以下防火墙规则需要在Rancher和OpenStack租户之间定义,以启用自动集群设置:
双向ssh、http和https
从Rancher到租户节点的2376(docker)
租户节点之间的2376、2379、2380、6443和10250
![ff785dc65425d16dfdb68536fb20ba4f.png](https://i-blog.csdnimg.cn/blog_migrate/b06f248be6707f55bb5d43428e75fb7f.jpeg)
方式2:使用自定义节点创建集群
可以在启动脚本的帮助下从单独创建的实例中构建集群,以安装和启用docker(在Ubuntu 18.04 TLS上):
#!/bin/shapt-get updateapt-get -y install apt-transport-https jq software-properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"apt-get updateapt-get -y install docker-ce=18.06.3~ce~3-0~ubuntuusermod -G docker -a ubuntuexit 0
![ff785dc65425d16dfdb68536fb20ba4f.png](https://i-blog.csdnimg.cn/blog_migrate/b06f248be6707f55bb5d43428e75fb7f.jpeg)
安全事项
需要为OpenStack租户定义以下防火墙规则,以允许从现有节点创建集群:
来自Workstation的SSH
到Rancher的http和https
![ff785dc65425d16dfdb68536fb20ba4f.png](https://i-blog.csdnimg.cn/blog_migrate/b06f248be6707f55bb5d43428e75fb7f.jpeg)
访问Cinder块存储
为了访问Cinder块存储,需要应用以下存储类的定义:
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: cinderprovisioner: kubernetes.io/cinderreclaimPolicy: Deleteparameters: availability: nova
无需进一步操作即可启用OpenStack负载均衡器。
![ff785dc65425d16dfdb68536fb20ba4f.png](https://i-blog.csdnimg.cn/blog_migrate/b06f248be6707f55bb5d43428e75fb7f.jpeg)
故障排查
初始设置过程中会出现一些报错,需要不断试错。而Rancher本身就是一个很好的debug信息来源,它的日志以标准文件形式输出,抓住这一线索将对调试有很大帮助,尤其是在创建节点的过程中。
作者:Christian Frank
原文链接:
https://chfrank-cgn.github.io/#!openstack.md
![8b0d4d22e07eb40a91364797014d744c.png](https://i-blog.csdnimg.cn/blog_migrate/42f8766ade3d29f219b69deb0ed4f703.png)
推荐阅读
Rancher 2.4实现零宕机升级集群,无需担心组件出现短暂故障!
实例演示:如何简化生产中的Pod安全策略?
12张图,带你轻松理解Kubernetes Service
![8b0d4d22e07eb40a91364797014d744c.png](https://i-blog.csdnimg.cn/blog_migrate/42f8766ade3d29f219b69deb0ed4f703.png)
![73446d6c740acc7e99d466eb40405b79.png](https://i-blog.csdnimg.cn/blog_migrate/5646736e9adaa79bda5b79af24c5e1ef.png)
![8b0d4d22e07eb40a91364797014d744c.png](https://i-blog.csdnimg.cn/blog_migrate/42f8766ade3d29f219b69deb0ed4f703.png)
About Rancher Labs
Rancher Labs由CloudStack之父梁胜创建。旗舰产品Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐,被Forrester评为2018年全球容器管理平台领导厂商,被Gartner评为2017年全球最酷的云基础设施供应商。
目前Rancher在全球拥有超过三亿的核心镜像下载量,并拥有包括CCTV、中国联通、华为、中国平安、中国人寿、厦门航空、上汽集团、丰田、中联重科、迪斯尼、IBM、Cisco、Nvidia、辉瑞制药等全球著名企业在内的共40000家企业客户。
Rancher已于2020年2月完成了中国本土化和国产化,从2020年3月1日开始,Rancher在中国大陆及港澳台地区的业务,均由全中资公司云澈信息技术(深圳)有限公司承载,并面向中国企业客户提供中国企业版Rancher产品和中国版k3s边缘计算平台。
![a925aaff6a60bb75139c892c2c950722.png](https://i-blog.csdnimg.cn/blog_migrate/ae48faec00f6fcf4efa7364737375056.jpeg)
点击【阅读原文】,1小时上手Rancher 2.4
↓↓↓