kubernetes1.5.2集群部署过程--非安全模式
发布日期:2025-04-03 04:09:27 浏览次数:8 分类:精选文章

本文共 3222 字,大约阅读时间需要 10 分钟。

在CentOS7上部署Kubernetes群集

环境配置

宿主机采用CentOS7 7.3.1611搭建,配置如下:

  • 操作系统:CentOS7 7.3.1611
  • ** selinux**:关闭
  • etcd:版本3.1.9
  • flannel:版本0.7.1
  • docker:版本1.12.6
  • kubernetes:版本1.5.2

软件安装

通过YUM安装必要软件包:

yum install etcd kubernetes kubernetes-client kubernetes-master kubernetes-node flannel docker docker-devel docker-client docker-common -y

部署etcd

配置etcd集群,确保所有节点能够通信。以下为示例配置:

IP=$(ifconfig ens33 | grep inet | grep -v inet6 | awk '{print $2}')
cat << EOF > /etc/etcd/etcd.conf
[member]
ETCD_NAME=${HOSTNAME}
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_WAL_DIR=""
ETCD_SNAPSHOT_COUNT="10000"
ETCD_HEARTBEAT_INTERVAL="100"
ETCD_ELECTION_TIMEOUT="1000"
ETCD_LISTEN_PEER_URLS="http://${IP}:2380,http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://${IP}:2379,http://localhost:2379"
ETCD_MAX_SNAPSHOTS="5"
ETCD_MAX_WALS="5"
ETCD_CORS=""
[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://${IP}:2380"
ETCD_INITIAL_CLUSTER="kube-master=http://192.168.20.128:2380,kube-node1=http://192.168.20.131:2380,kube-node2=http://192.168.20.132:2380,kube-node3=http://192.168.20.134:2380,kube-node4=http://192.168.20.135:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://${IP}:2379"
EOF

启动并启用等cd服务:

systemctl start etcd
systemctl enable etcd

Kubernetes 集群部署

Master节点配置

配置kube-apiserver,指定相关参数:

cat << EOF > /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://192.168.20.128:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/24"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_API_ARGS=""
EOF

Node节点配置

配置kubelet,确保节点可连接到master:

cat << EOF > /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=${HOSTNAME}"
KUBELET_API_SERVER="--api-servers=http://192.168.20.128:8080"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
EOF

启动服务

在Master节点运行:

for SERVICES in kube-apiserver kube-controller-manager kube-scheduler flanneld
do
systemctl restart $SERVICES
systemctl enable $SERVICES
done

在Node节点运行:

for SERVICES in kube-proxy docker flanneld kubelet
do
systemctl restart $SERVICES
systemctl enable $SERVICES
done

Flannel网络配置

Flannel用于实现Docker容器之间跨主机通信,配置步骤如下:

示例网络配置

在Etcd集群中创建网络:

etcdctl get /coreos.com/network/config
# 并根据需要添加或修改网络配置

Flannel客户端配置

配置flanneld客户端:

cat << EOF > /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://192.168.20.128:2379"
FLANNEL_ETCD_PREFIX="/coreos.com/network"
FLANNEL_OPTIONS=""
EOF

启动相关服务:

在Master节点运行:

for SERVICES in kube-apiserver kube-controller-manager kube-scheduler flanneld
do
systemctl restart $SERVICES
systemctl enable $SERVICES
done

在Node节点运行:

for SERVICES in kube-proxy docker flanneld kubelet
do
systemctl restart $SERVICES
systemctl enable $SERVICES
done

测试与验证

在Master节点执行:

kubectl get nodes

观察是否有节点返回,若所有节点显示"Ready",则部署完成。

通过以上步骤,可以完成Kubernetes集群的部署,并通过Flannel实现节点间的网络通信。部署完成后,可根据实际需求调整配置参数,如调整log级别或修改容器权限等。

上一篇:Kubernetes下容器化应用部署实战
下一篇:kubernetes1.5.2集群部署过程--安全模式

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月04日 17时00分46秒