主機名
ip
備注
k8s_master
192.168.234.130
Master&etcd
k8s_node1
192.168.234.131
Node1
k8s_node2
192.168.234.132
Node2
(叢集環境需要ntp時鐘一緻,因為是雲的機器,系統預設有時鐘核對)
第一步元件安裝
Master節點:
systemctl stop firewalld && sudo systemctl disable firewalld
Node節點:
yum install -y kubernetes docker flannel
第二步配置
節點
運作服務
Master
etcd
kube-apiserver
kube-controller-manager
kube-scheduler
kube-proxy
kubelet
docker
flanneld
node
Master:
hostnamectl set-hostname k8s_master
vi /etc/hosts
192.168.234.130 k8s_master
192.168.234.131 k8s_node1
192.168.234.132 k8s_node2
etcd配置
vi /etc/etcd/etcd.conf
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
apiserver 配置
vi /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" (apiserver綁定主機的非安全IP位址)
KUBE_API_PORT="--port=8080" (apiserver綁定主機的非安全端口号)
KUBELET_PORT="--kubelet-port=10250"
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.234.130:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=192.168.234.0/24" (虛機同一網段)
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_API_ARGS=""
Kubelet配置
vi /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=192.168.234.130"
KUBELET_API_SERVER="--api-servers=http://192.168.234.130:8080"
KUBELET_ARGS=""
config配置
vi /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.234.130:8080"
scheduler和 proxy 暫時沒有用到,就不需要配置
flannel 配置
vi /etc/sysconfig/flanneld
FLANNEL_ETCD="http://192.168.234.130:2379"
FLANNEL_ETCD_KEY="/atomic.io/network"
etcdctl set修改get查詢。不管是修改還是建立的時候,配置檔案必須完整/coreos.com/network/config,要不然啟動會報錯。
添加網絡:
systemctl enable etcd.service
systemctl start etcd.service
etcdctl mk //atomic.io/network/config '{"Network":"172.17.0.0/16"}' 建立
etcdctl rm //atomic.io/network/config '{"Network":"172.17.0.0/16"}' 删除
Master啟動:
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler kube-proxy kubelet docker flanneld ; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done;
node配置:
hostnamectl set-hostname k8s_node1/2
vi /etc/kubernetes/kubelet
KUBELET_HOSTNAME="--hostname-override=192.168.234.131" (相應節點IP)
KUBELET_API_SERVER="--api-servers=http://192.168.234.130:8080" (master節點IP)
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=" "
vi /etc/kubernetes/config
vi /etc/sysconfig/flanneld
node啟動
for SERVICES in kube-proxy kubelet docker flanneld; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done;
檢視所有NODE是否正常
kubectl -s 192.168.234.130:8080 get no
kubectl get nodes
通路http://kube-apiserver:port
kubectl create -f kubernetes-dashboard.yaml
kubectl delete -f kubernetes-dashboard.yaml
kubectl get namespace
本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1945382,如需轉載請自行聯系原作者