天天看點

Centos7 安裝 Kubernetes 叢集詳細步驟(安裝篇)

主機名

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,如需轉載請自行聯系原作者

繼續閱讀