k8s-7 k8s 構建3主經典小集群


kubernetes集群搭建(3):master節點安裝

1.master節點上執行:

yum -y install kubernetes flannel etcd

2.修改etcd配置為:

[root@k8s-master ~]# 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"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"

3.修改apiserver配置為:

[root@k8s-master ~]# vi /etc/kubernetes/apiserver 

KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet_port=10250"
KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

注意:紅色部分為后續創建service時,虛擬ip的地址范圍

4.修改kubelet配置

[root@k8s-master ~]# vi /etc/kubernetes/kubelet 

###
# kubernetes kubelet (minion) config

# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0"

# The port for the info server to serve on
# KUBELET_PORT="--port=10250"

# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=k8s-master"

# location of the api-server
KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"

# pod infrastructure container
#KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=192.168.100.6:5000/rhel7/pod-infrastructure:1.0"

# Add your own!
KUBELET_ARGS="--cluster-dns=10.254.0.2 --cluster-domain=cluster.local"

注意:

\1. 192.168.100.6:5000/rhel7/pod-infrastructure:1.0 為私庫中的地址,默認配置文件中地址被和諧了,所以可以獲取其他鏡像源到本地私庫

[root@localhost ~]# docker images |grep pod-infrastructure
127.0.0.1:5000/rhel7/pod-infrastructure                                  1.0                 adf142596532        8 months ago        206 MB
docker.io/jqka/pod-infrastructure                                        latest              adf142596532        8 months ago        206 MB

\2. --cluster-dns=10.254.0.2 --cluster-domain=cluster.local

  # 10.254.0.2 為dns解析地址 和 第3步中的ip要在同一范圍

  # cluster.local 集群的域名字,用在服務發現dns解析中

\5. 修改kuberlet 配置信息

[root@k8s-master ~]# vi /etc/kubernetes/config 

KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://k8s-master:8080"

6.啟動服務並設置為開機啟動

for SERVICES  in flanneld etcd docker kube-apiserver kube-controller-manager kube-scheduler;  do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
    systemctl status $SERVICES -l
done

7.設置etcd網絡信息,用於后續節點啟動的容器ip分配

etcdctl mk /atomic.io/network/config '{"Network":"172.16.0.0/16"}'

8.測試是否成功(由於還沒配置node節點,只要命令不報錯就行,下面為我配置好節點后的輸出)

[root@k8s-master ~]# kubectl get nodes
NAME        STATUS    AGE
k8s-node1   Ready     11d
k8s-node2   Ready     11d


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM