在CentOS 7.2上部署Kubernetes集群
来源:互联网 发布:更改淘宝密码 编辑:程序博客网 时间:2024/04/25 17:05
本文参考Kubernetes官方文章centos_manual_config,介绍如何搭建一个拥有一个控制节点和三个工作节点的Kubernetes集群。
集群节点
192.168.120.121 kube-master192.168.120.122 kube-node1192.168.120.123 kube-node2192.168.120.124 kube-node3
部署前的准备
- 关闭防火墙
# systemctl stop firewalld.service && systemctl disable firewalld.service
- 禁用SELinux
# setenforce 0# sed -i.bak 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
安装Kubernetes、etcd和flannel
说明:默认安装的CentOS 7.2最小系统即包含可用于安装docker等软件的yum源。
在所有节点上执行以下命令安装Kubernetes等软件:
# yum -y install kubernetes etcd flannel
使用默认的yum源安装的以上软件的版本如下:
# rpm -qa | grep -E 'kube|docker|etcd|flannel'docker-common-1.12.6-16.el7.centos.x86_64kubernetes-master-1.5.2-0.5.gita552679.el7.x86_64docker-1.12.6-16.el7.centos.x86_64kubernetes-1.5.2-0.5.gita552679.el7.x86_64flannel-0.7.0-1.el7.x86_64kubernetes-client-1.5.2-0.5.gita552679.el7.x86_64docker-client-1.12.6-16.el7.centos.x86_64kubernetes-node-1.5.2-0.5.gita552679.el7.x86_64etcd-3.1.3-1.el7.x86_64
Kubernetes软件包提供了一些服务:kube-apiserver,kube-scheduler, kube-controller-manager, kubelet, kube-proxy。这些服务由systemd管理,配置集中保存在/etc/kubernetes目录下。
在控制节点上配置Kubernetes服务
设置kubernetes系统配置
参照以下内容编辑/etc/kubernetes/config:
KUBE_ETCD_SERVERS="--etcd-servers=http://kube-master:2379"KUBE_LOGTOSTDERR="--logtostderr=true"KUBE_LOG_LEVEL="--v=0"KUBE_ALLOW_PRIV="--allow-privileged=false"KUBE_MASTER="--master=http://kube-master:8080"
配置etcd服务
参照以下内容编辑/etc/etcd/etcd.conf:
ETCD_NAME=defaultETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
配置kube-apiserver服务
参照以下内容编辑/etc/kubernetes/apiserver:
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"KUBE_API_PORT="--port=8080"KUBELET_PORT="--kubelet-port=10250"KUBE_ETCD_SERVERS="--etcd-servers=http:// 0.0.0.0:2379"KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"KUBE_API_ARGS=""
启动kube-apiserver服务
# systemctl start etcd# systemctl start kube-apiserver
kube-apiserver在启动时根据配置项“–admission-control=…ServiceAccount…”创建证书和私钥文件:
# ls /var/run/kubernetes/apiserver.crt apiserver.key
配置kube-controller-manager服务
参照以下内容编辑/etc/kubernetes/controller-manager:
KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/var/run/kubernetes/apiserver.key"
配置etcd保存网络覆盖配置
# etcdctl mkdir /kube-centos/network# etcdctl mk /kube-centos/network/config "{ \"Network\": \"172.30.0.0/16\", \"SubnetLen\": 24, \"Backend\": { \"Type\": \"vxlan\" } }"{ "Network": "172.30.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }
配置flannel服务
参照以下内容编辑/etc/sysconfig/flanneld:
FLANNEL_ETCD="http://kube-master:2379"FLANNEL_ETCD_KEY="/kube-centos/network
(重新)启动所有的服务
# for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler flanneld; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICESdone
在工作节点上配置Kubernetes服务
设置kubernetes系统配置
参照在Master节点上配置Kubernetes服务的设置kubernetes系统配置部分。
配置kubelet服务
参照以下内容编辑/etc/kubernetes/kubelet:
KUBELET_ADDRESS="--address=0.0.0.0"KUBELET_PORT="--port=10250"# hostname-override即工作节点主机名,如kube-node1。KUBELET_HOSTNAME="--hostname-override=kube-node1"KUBELET_API_SERVER="--api-servers=http://kube-master:8080"KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=docker.io/kubernetes/pause:latest"KUBELET_ARGS=""
配置flannel服务
参照在Master节点上配置Kubernetes服务的配置flannel服务部分。
启动服务
执行如下命令启动合适的服务:
# for SERVICES in etcd kube-proxy kubelet flanneld docker; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICESdone
配置kubectl
执行以下命令完成kubectl的配置:
# kubectl config set-cluster default-cluster --server=http://kube-master:8080# kubectl config set-context default-context --cluster=default-cluster --user=default-admin# kubectl config use-context default-context
在控制节点或工作节点查看集群信息:
# kubectl get nodesNAME STATUS AGEkube-node1 Ready 1mkube-node2 Ready 1mkube-node3 Ready 1m
至此,完成Kubernetes集群的搭建。
- 在CentOS 7.2上部署Kubernetes集群
- centos上部署kubernetes集群
- 在ubuntu上Kubernetes集群部署
- 如何在 Azure 上部署 Kubernetes 集群
- CentOS 7上安装Kubernetes集群部署Docker
- 在阿里云上部署生产级别Kubernetes集群
- 在阿里云上部署生产级别Kubernetes集群
- 使用Kubeadm在CentOS7.2上部署Kubernetes集群
- Centos7.2 Kubernetes 集群在centos 上安装步骤
- [Kubernetes] CentOS 7 Etcd 集群部署教程
- 在centos7上部署kubernetes
- 在centos7上部署kubernetes
- 在centos7上部署kubernetes
- CentOS7.0上部署kubernetes集群
- 在Kubernetes集群中部署Heapster
- 在阿里云上轻松部署Kubernetes GPU集群,遇见TensorFlow
- [笔记] CentOS 7 部署 Kubernetes 集群自动化脚本部分
- 在Kubernetes上进行微服务部署
- 滑动导航栏,标签页切换
- C++builder RTL与VCl
- spring @Entity @Table
- Linux下查看网卡驱动和版本信息
- Java入门学习-学习static的用法
- 在CentOS 7.2上部署Kubernetes集群
- 哈利·波特的考试
- C++算法学习——预备知识(2)——函数模板
- 图片三级缓存
- opencv图像读取和cv::Mat
- 【模板】线段树 区间加+乘,区间求和 (模板题:洛谷P3373)
- 案例:Python将函数作为参数以及作为返回值
- EditText隐藏软键盘的小问题
- 数据库事务