The previous article has installed ETCD, Docker and flannel (k8s1.4.3 installation Practice record (1)), and now you can start installing k8s
1, k8s
Current kubernetes还是1.2.0,因此我们只能是使用下载的安装包,进行
installation of kubernetes on CentOS Yum
[Email protected] system]#YumList |grepKubernetescockpit-kubernetes.x86_640.114-2. El7.centos Extras kubernetes.x86_641.2.0-0.13. GITEC7364B.EL7 Extras kubernetes-client.x86_641.2.0-0.13. GITEC7364B.EL7 Extras kubernetes-cni.x86_640.3.0.1-0. 07A8A2 Kubelet kubernetes-master.x86_641.2.0-0.13. GITEC7364B.EL7 Extras kubernetes-node.x86_641.2.0-0.13. GITEC7364B.EL7 Extras kubernetes-unit-test.x86_641.2.0-0.13. GITEC7364B.EL7 Extras
1.1 k8s Download
Download the k8s installation package using wget or download software: https://github.com/kubernetes/kubernetes/releases/download/v1.4.3/ kubernetes.tar.gz, Download complete, we will get the current 1.4.3 version of the installation file.
1.2 Unzip and install
Unzip the installation package and store the execution file in the appropriate place
tar -zxvf kubernetes. Tar . GZCD kubernetes//usr/local/kubeCP -R */usr/local/kube
Set the environment variable file/etc/profile, add the Kube execution file to the environment variable
Export kube_path=/usr/local/kubeexport PATH= $PATH: $KUBE _path
Execute the environment variable so that it takes effect:
Source/etc/profile
1.3 Starting the Master node
The current primary node is 192.168.37.130, you need to execute kube-apiserver on the master node, Kube-controller-manager,kube-scheduler three processes.
1.3.1 Open Port
If the firewall is not turned off and you are using FIREWALLD, you need to open the relevant port
Firewall-cmd--zone=public--add-port=8080/tcp--permanentfirewall-cmd--zone=public--add-port= 10250/tcp--permanentfirewall-cmd--zone=public--add-port=6443/tcp-- Permanentfirewall-cmd--zone=public--add-port=15441/tcp--permanentfirewall-cmd-- Reloadfirewall-cmd--list-all
1.3.2 Start Kube-apiserver
Kube-apiserver --insecure-bind-address=192.168. 37.130 --insecure-port=8080 --service-cluster-ip-range='192.168.37.130/24 ' --log_dir=/usr/local/kubernete_test/logs/kube --v=0 --logtostderr= false --etcd_servers=http://192.168.37.130:2379,http://192.168.37.131: 2379
1.3.3 Start Kube-controller-manager
Kube-controller-manager --v=0 --logtostderr=true --log_dir=/data/kubernets/logs/ kube-controller-manager/ --master=http://
1.3.4 Start Kube-scheduler
Kube-scheduler --master='192.168.37.130:8080' --v=0 -- Log_dir=/data/kubernets/logs/kube-scheduler
1.3.5 to see if startup is complete
[Email protected] ~]# kubectl get Componentstatusesname STATUS MESSAGE errorscheduler Healthy OK Controller-manager Healthy OK Etcd-0 Healthy {"Health""true" "} etcd-1 Healthy {"Health" "true"
Can see two ETCD start-up complete
1.3.6 Setting up service
Create service files for each process in the/usr/lib/systemd/system folder
1, Kube-apiserver.service
[unit]description=kube-apiserverdocumentation=http://kubernetes.io/docs/ [service]environmentfile=-/etc/sysconfig/kubernets/kube-apiserverexecstart=/usr/local/kube/ kube-apiserver ${insecure_bind_address} ${insecure_port} ${service_cluster_ip_range} ${LOG_DIR} ${version} ${logtostderr} ${etcd_servers} ${allow_privileged} killmode= Processrestart=on-failurerestartsec=42s[install]wantedby=multi-user.target
The corresponding configuration file/etc/sysconfig/kubernets/kube-apiserver is as follows:
insecure_bind_address="--insecure-bind-address=192.168.37.130"Insecure_port="--insecure-port=8080"Service_cluster_ip_range="--service-cluster-ip-range=192.168.37.130/24"Log_dir="--log_dir=/usr/local/kubernete_test/logs/kube"VERSION="--v=0"Logtostderr="--logtostderr=false"etcd_servers="--etcd_servers=http://192.168.37.130:2379,http://192.168.37.131:2379"allow_privileged="--allow_privileged=false"
Note: The parameter names in the configuration file cannot use the "-"
2. Kube-controller-manager
Configure Kube-controller-manager.service
[Unit] description=kube-controller-managerdocumentation=http://kubernetes.io/docs/[service]environmentfile=-/etc/ Sysconfig/kubernets/kube-controller-managerexecstart=/usr/local/kube/kube-controller-manager ${VERSION} ${ Logtostderr} ${log_dir} ${master} killmode=processrestart=on-failurerestartsec=42s[install]wantedby= Multi-user.target
Set/etc/sysconfig/kubernets/kube-controller-manager
version="--v=0"logtostderr="--logtostderr=true" Log_dir="--log_dir=/data/kubernets/logs/kube-controller-manager/" MASTER="--master=http://192.168.37.130:8080"
3. Set up Kube-scheduler service
Kube-scheduler.service
[unit]description=kube-schedulerdocumentation=http://kubernetes.io/docs/ [service]environmentfile=-/etc/sysconfig/kubernets/kube-schedulerexecstart=/usr/local/kube/ kube-Scheduler ${version} ${logtostderr} ${log_dir} ${master} killmode=Processrestart=on- failurerestartsec=42s[install]wantedby=multi-user.target
The configuration file is as follows
version="--v=0"logtostderr="--logtostderr=true" Log_dir="--log_dir=/data/kubernets/logs/kube-scheduler"MASTER ="--master=http://192.168.37.130:8080
4. Restart each service
Systemctl daemon-reloadsystemctl start kube-apiserversystemctl start Kube- controller-managersystemctl start kube-scheduler
1.4 Start Minion
Minion need to start kube-proxy,kubelet two processes
1.4.1 Kube-proxy Start
#在两台机器都执行kube-proxy --logtostderr=true --v=0 --master=http:// 192.168.37.130:8080
1.4.1 Kubelet Start
Kubelet --logtostderr=true --v=0 --allow-privileged=false --log_dir=/data/ Kubernets/logs/kubelet --address=0.0. 0.0 --port=10250 --hostname_override=192.168. 37.130 --api_servers=http://192.168.37.130:8080
1.4.5 Configuring the Service
1, Kube-proxy.service
[unit]description=kube-proxydocumentation=http://kubernetes.io/docs/[ Service]environmentfile=-/etc/sysconfig/kubernets/kube-proxyexecstart=/usr/local/kube/kube- Proxy ${version} ${logtostderr} ${log_dir} ${master} killmode=processrestart=on- Failurerestartsec=42s[install]wantedby=multi-user.target
/etc/sysconfig/kubernets/kube-Proxy
version="--v=0"logtostderr="--logtostderr=true" Log_dir="--log_dir=/data/kubernets/logs/kube-controller-manager/" MASTER="--master=http://192.168.37.130:8080"
2, Kubelet.service
[Unit]description=kubeletdocumentation=http://kubernetes.io/docs/[ Service]environmentfile=-/etc/sysconfig/kubernets/kubeletexecstart=/usr/local/kube/kubelet ${ Logtostderr} ${version} ${allow_privileged} ${log_dir} ${address} ${port} ${ Hostname_override} ${api_servers} killmode=processrestart=on-failurerestartsec =42s[install]wantedby=multi-user.target
/etc/sysconfig/kubernets/kubelet configuration file
Logtostderr="--logtostderr=true"VERSION="--v=0"allow_privileged="--allow-privileged=false"Log_dir="--log_dir=/data/kubernets/logs/kubelet"ADDRESS="--address=0.0.0.0"PORT="--port=10250"Hostname_override="--hostname_override=192.168.37.131"api_servers="--api_servers=http://192.168.37.130:8080"
After the above steps, k8s is basically installed, followed by the dashboard to install.
Problem: 1, using the network configuration, execution will produce some warning message:
[Email protected] server]# Kube-apiserver--address=192.168.37.130--insecure-port=8080--service-cluster-ip-range='192.168.37.130/24'--log_dir=/usr/local/kubernete_test/logs/kube--kubelet_port=10250--v=0--logtostderr=false--etcd_servers=http://192.168.37.130:2379,http://192.168.37.131: 2379--allow_privileged=falseFlag--address have been deprecated, see--insecure-bind-address instead. Flag--kubelet-port has been deprecated, kubelet-Port is deprecated and would be removed. [RESTful] ./ One/ on the: to: theLog.go: -: [Restful/swagger] listing is available at https://192.168.37.130:6443/swaggerapi/[RESTful] ./ One/ on the: to: theLog.go: -: [Restful/swagger] https://192.168.37.130:6443/swaggerui/is mapped to folder/swagger-ui/
2, execute kubectl get componentstatuses error
[Email protected] ~]# kubectl Get componentstatusesthe connection to the server localhost: 8080 is refused-did you specify the right host or port?
If the problem is on the master machine, it is because the/etc/hosts file is not configured and the IP localhost entry is added to the file.
If it is on the slave node, when executing the KUBECTL get componentstatuses statement, add kubectl-s $masterIP: $port get componentstatuses, where $masterip is the primary node ip,$ Port is the service IP of the primary node, that is, 8080 ports in the installation documentation, such as: Kubectl-s http://192.168.37.130:8080 get componentstatuses
k8s1.4.3 Installation Practice Record (2)-k8s installation