博客
关于我
kubernetes1.5.2集群部署过程--非安全模式
阅读量:791 次
发布时间:2023-01-29

本文共 3166 字,大约阅读时间需要 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 etcdsystemctl enable etcd

Kubernetes 集群部署

Master节点配置

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

cat << EOF > /etc/kubernetes/apiserverKUBE_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/kubeletKUBELET_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/flanneldFLANNEL_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级别或修改容器权限等。

转载地址:http://loryk.baihongyu.com/

你可能感兴趣的文章
kubernetes1.5.2集群部署过程--非安全模式
查看>>
Kubernetes下容器化应用部署实战
查看>>
Kubernetes中间件容器化工具Operator详解
查看>>
Kubernetes健康检查与探测机制详解
查看>>
Kubernetes入门实验:namespace
查看>>
Kubernetes入门:构建和管理容器化应用的强大工具
查看>>
Kubernetes包管理工具Helm详解
查看>>
Kubernetes单master节点高可用集群安装
查看>>
Kubernetes原理详解
查看>>
Kubernetes原生的CICD工具Tekton详解
查看>>
Kubernetes多master节点高可用集群安装
查看>>
Kubernetes存储之Persistent Volumes简介
查看>>
Kubernetes学习总结(10)—— 何为云原生,与 kubernetes 是什么关系
查看>>
Kubernetes学习总结(11)—— Kubernetes Pod 到底是什么?
查看>>
Kubernetes学习总结(12)—— 学习 kubernetes 的10个技巧或建议
查看>>
Kubernetes学习总结(13)—— Kubernetes 各个组件的概念
查看>>
Kubernetes学习总结(14)—— Kubernetes 实用命令总结
查看>>
Kubernetes学习总结(15)—— Kubernetes 实战之部署 Mysql 集群
查看>>
Kubernetes学习总结(16)—— Kubernetes 实战之部署 Redis 集群
查看>>
Kubernetes学习总结(17)—— Kubernetes 快速入门需要掌握的知识点总结
查看>>