博客
关于我
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/

你可能感兴趣的文章
leetcode231 判断一个给定的整数是否是2的n次幂
查看>>
leetcode238-除自身以外数组的乘积
查看>>
LeetCode240:Search a 2D Matrix II
查看>>
LeetCode268.缺失数字
查看>>
LeetCode331.验证二叉树的前序序列化
查看>>
leetcode380. Insert Delete GetRandom O(1)
查看>>
LeetCode502
查看>>
leetcode507
查看>>
LeetCode7.整数反转 JavaScript
查看>>
Leetcode: Group Anagrams
查看>>
Leetcode: Remove Duplicates from Sorted Array II
查看>>
Leetcode: Spiral Matrix II
查看>>
LeetCode: String to Integer (atoi)
查看>>
Leetcode:454. 4Sum II
查看>>
leetcode:Minimum Depth of Binary Tree【Python版】
查看>>
LeetCode:Restore IP Addresses
查看>>
LeetCode:Subsets I II
查看>>
LeetCode_Lowest Common Ancestor of a Binary Search Tree (Binary Tree)
查看>>
leetcode—sqrt
查看>>
LeetCode——Unique Paths
查看>>