《kubernetes-1.8.0》15-addon-vSphere Cloud Provider
来源:互联网 发布:网络人身攻击怎么办 编辑:程序博客网 时间:2024/06/11 13:19
《kubernetes-1.8.0》15-addon-vSphere Cloud Provider
《kubernetes 1.8.0 测试环境安装部署》
时间:2017-12-04
一、关于vSphere Cloud Provider:
vSphere Cloud Provider
配置了这玩意能够让k8s集群通过(volume
、pv
、pvc
、 Storage Class
)使用 vsphere 企业级的存储(通过vsphere的vmdk实现),如果k8s宿主机使用的是vmware平台的虚拟机,这一特性真的还挺诱人的。。
二、配置步骤:
step 1:
Create a VM folder and move Kubernetes Node VMs to this folder.
进到vcenter控制台创建目录,并将之前部署好的运行k8s的虚拟机迁移到改目录:
- 目录名叫kuebrnetes-cluster:这个没所谓
- vm的name:必须和kubernetes各个节点的hostname一致,可以省去很多麻烦,切记!!
step 2:
Enable disk UUID on Node virtual machines.
启用vm的disk UUID,通过
govc
工具
在能够访问vcenter的linux主机上,安装dovc 工具,方法 –> GOVC tools
- 设置govc环境变量:
export GOVC_URL='vCenter IP OR FQDN'export GOVC_USERNAME='vCenter User'export GOVC_PASSWORD='vCenter Password'export GOVC_INSECURE=1
- GOVC_URL : vcenter的地址
- GOVC_USERNAME : vcenter的管理员用户名
GOVC_PASSWORD : vcenter的管理员密码
通过govc找一下几个vm节点的位置:
[root@node-131 vsphere-volume]# govc ls /DateCenter-PTYW/vm/kubernetes-cluster/DateCenter-PTYW/vm/kubernetes-cluster/node.134/DateCenter-PTYW/vm/kubernetes-cluster/node.132/DateCenter-PTYW/vm/kubernetes-cluster/node.133/DateCenter-PTYW/vm/kubernetes-cluster/node.131
- 设置这几台的
disk.enableUUID
值为1:
govc vm.change -e="disk.enableUUID=1" -vm='/DateCenter-PTYW/vm/kubernetes-cluster/node.134'govc vm.change -e="disk.enableUUID=1" -vm='/DateCenter-PTYW/vm/kubernetes-cluster/node.133'govc vm.change -e="disk.enableUUID=1" -vm='/DateCenter-PTYW/vm/kubernetes-cluster/node.132'govc vm.change -e="disk.enableUUID=1" -vm='/DateCenter-PTYW/vm/kubernetes-cluster/node.131'
step 3:
创建 vSphere Cloud Provider
所使用的用户,并给予角色及相应权限(我这里是测试环境,所以就用管理员账户了,有需要建立独立用户的参考一下角色及权限表)
这里关于system.*的权限,通过看vmware的文档不用特别赋值,缺省就带,在角色清单里也没有办法找到这个组的权限
step 4:
创建vsphere cloud配置文件:
/etc/kubernetes/vsphere.conf
[Global] user = "vCenter username for cloud provider" password = "password" server = "IP/FQDN for vCenter" port = "443" #Optional insecure-flag = "1" #set to 1 if the vCenter uses a self-signed cert datacenter = "Datacenter name" datastore = "Datastore name" #Datastore to use for provisioning volumes using storage classes/dynamic provisioning working-dir = "vCenter VM folder path in which node VMs are located" vm-name = "VM name of the Master Node" #Optional vm-uuid = "UUID of the Node VM" # Optional [Disk] scsicontrollertype = pvscsi
user
:可是是step 3中创建的vSphere Cloud Provider
所使用的用户,我这里填的是管理员用户,生产环境还是建议用专用的用户。datastore
:填写数据存储的名字,本例中为local_datastore_47;datacenter
: 填写数据中心的名字,本例中为DateCenter-PTYW;vm-name
: 很关键,填本机的node name,并与vcenter中的vm name保持一致;否则将出现node无法注册的问题;vm-uuid
:通过以下方式获取本节点的uuid,完了填进去
cat /sys/class/dmi/id/product_serial | sed -e 's/^VMware-//' -e 's/-/ /' | awk '{ print toupper($1$2$3$4 "-" $5$6 "-" $7$8 "-" $9$10 "-" $11$12$13$14$15$16) }'
同时在所有node上创建上述文件;
step 5:
在 controller-manager, API server 和 Kubelet 配置文件中添加参数,开启 vSphere Cloud Provider的支持(node节点只要修改kubelet的);
加上这个两个参数:
--cloud-provider=vsphere--cloud-config=/etc/kubernetes/vsphere.conf
重启先关服务:
systemctl daemon-reloadsystemctl restart kube-apiserversystemctl restart kube-controller-managersystemctl restart kubelet
检查相关服务是否成功启动一级节点有没有重新ready:
[root@node-131 vsphere-volume]# kubectl get csNAME STATUS MESSAGE ERRORscheduler Healthy ok controller-manager Healthy ok etcd-1 Healthy {"health": "true"} etcd-0 Healthy {"health": "true"} etcd-2 Healthy {"health": "true"} [root@node-131 vsphere-volume]# kubectl get nodesNAME STATUS ROLES AGE VERSIONnode.131 Ready <none> 1d v1.8.0node.132 Ready <none> 1d v1.8.0node.133 Ready <none> 1d v1.8.0node.134 Ready <none> 1d v1.8.0
至此 vSphere Cloud Provider特性添加完成:
本系列其他内容:
01-环境准备
02-etcd群集搭建
03-kubectl管理工具
04-master搭建
05-node节点搭建
06-addon-calico
07-addon-kubedns
08-addon-dashboard
09-addon-kube-prometheus
10-addon-EFK
11-addon-Harbor
12-addon-ingress-nginx
13-addon-traefik
参考资料:
https://kubernetes.io/docs/getting-started-guides/vsphere/
- 《kubernetes-1.8.0》15-addon-vSphere Cloud Provider
- 《kubernetes-1.8.0》06-addon-calico
- 《kubernetes-1.8.0》07-addon-kubedns
- 《kubernetes-1.8.0》08-addon-dashboard
- 《kubernetes-1.8.0》09-addon-kube-prometheus
- 《kubernetes-1.8.0》10-addon-EFK
- 《kubernetes-1.8.0》11-addon-Harbor
- 《kubernetes-1.8.0》12-addon-ingress-nginx
- 《kubernetes-1.8.0》13-addon-traefik
- 《kubernetes-1.8.0》16-examples-vSphere Volume
- spring cloud 之 server-provider
- Deploy Cloud Foundry on vSphere using BOSH
- Netflix OSS、Spring Cloud还是Kubernetes? 都要吧!
- 部署微服务:Spring Cloud vs. Kubernetes
- 部署微服务:Spring Cloud vs. Kubernetes
- Netflix OSS、Spring Cloud还是Kubernetes? 都要吧!
- 部署微服务:Spring Cloud vs. Kubernetes
- Kubernetes与Spring Cloud,服务器性能
- TCP/IP协议层级个人笔记
- 【2017.12.02】C组比赛总结
- LeetCode-27. Remove Element
- 使用线程来实现一个时间倒计时
- 读书笔记_MySQL必知必会
- 《kubernetes-1.8.0》15-addon-vSphere Cloud Provider
- LintCode-第一题:A+B problem (不用“+”等运算符)(位运算实现加法)
- Windows程序设计:直线绘制
- linux下yum使用本地光盘做为安装源
- 【Hive】hive-2.1.1内嵌模式安装配置全过程
- 集合类
- python数据类型
- python 3 爬虫获取可用ip地址(小白)
- Centos装MySQL5.6