k8s1.4.3安装实践记录-k8s安装

author author     2022-08-11     439

关键词:

前面一篇已经安装好了ETCD、docker与flannel(k8s1.4.3安装实践记录(1)),现在可以开始安装k8s了

1、K8S

目前centos yum上的kubernetes还是1.2.0,因此我们只能是使用下载的安装包,进行kubernetes的安装

[[email protected] system]# yum list |grep kubernetes
cockpit-kubernetes.x86_64                  0.114-2.el7.centos          extras   
kubernetes.x86_64                          1.2.0-0.13.gitec7364b.el7   extras   
kubernetes-client.x86_64                   1.2.0-0.13.gitec7364b.el7   extras   
kubernetes-cni.x86_64                      0.3.0.1-0.07a8a2            kubelet  
kubernetes-master.x86_64                   1.2.0-0.13.gitec7364b.el7   extras   
kubernetes-node.x86_64                     1.2.0-0.13.gitec7364b.el7   extras   
kubernetes-unit-test.x86_64                1.2.0-0.13.gitec7364b.el7   extras 

1.1 K8S下载

  使用wget 或者下载软件下载k8s安装包:https://github.com/kubernetes/kubernetes/releases/download/v1.4.3/kubernetes.tar.gz,下载完成,我们会拿到当前1.4.3版本的安装文件。

  

1.2 解压并安装

  解压安装包,并将执行文件存放到合适的地方

tar -zxvf kubernetes.tar.gz
cd kubernetes/server/bin
mkidr /usr/local/kube
cp -R * /usr/local/kube

  设置环境变量文件/etc/profile,将kube执行文件加入的环境变量中

export KUBE_PATH=/usr/local/kube
export PATH=$PATH:$KUBE_PATH

  执行环境变量,使其生效:

source /etc/profile

 

1.3 启动主节点

  当前主节点为192.168.37.130,需要在主节点上执行kube-apiserver ,kube-controller-manager,kube-scheduler三个进程。

1.3.1 开放端口

  如果没有关闭防火墙且使用的是firewalld,则需要开放相关的端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=15441/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

 

1.3.2 启动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   --allow_privileged=false 

 

1.3.3 启动 kube-controller-manager

kube-controller-manager   --v=0  --logtostderr=true  --log_dir=/data/kubernets/logs/kube-controller-manager/  --master=http://192.168.37.130:8080 

1.3.4 启动kube-scheduler

kube-scheduler   --master=192.168.37.130:8080  --v=0   --log_dir=/data/kubernets/logs/kube-scheduler  

1.3.5 查看是否启动完成

[[email protected] ~]# kubectl get componentstatuses
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok                   
controller-manager   Healthy   ok                   
etcd-0               Healthy   {"health": "true"}   
etcd-1               Healthy   {"health": "true"} 

可以看到两个etcd启动完成

1.3.6 设置service

  在/usr/lib/systemd/system文件夹中创建各个进程的service文件

  1、kube-apiserver.service

[Unit]
Description=kube-apiserver
Documentation=http://kubernetes.io/docs/

[Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-apiserver
ExecStart=/usr/local/kube/kube-apiserver ${INSECURE_BIND_ADDRESS}  ${INSECURE_PORT}  ${SERVICE_CLUSTER_IP_RANGE}  ${LOG_DIR}  ${VERSION}  ${LOGTOSTDERR}  ${ETCD_SERVERS}  ${ALLOW_PRIVILEGED}   
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

其对应的配置文件/etc/sysconfig/kubernets/kube-apiserver如下:

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"

注意:配置文件中的参数名不能使用“-”

  2、kube-controller-manager

  配置kube-controller-manager.service

 

[Unit]
Description=kube-controller-manager
Documentation=http://kubernetes.io/docs/

[Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-controller-manager
ExecStart=/usr/local/kube/kube-controller-manager ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}     
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

  设置/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、设置kube-scheduler服务

  kube-scheduler.service

[Unit]
Description=kube-scheduler
Documentation=http://kubernetes.io/docs/

[Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-scheduler
ExecStart=/usr/local/kube/kube-scheduler ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}     
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

  配置文件如下

VERSION="--v=0"
LOGTOSTDERR="--logtostderr=true" 
LOG_DIR="--log_dir=/data/kubernets/logs/kube-scheduler"
MASTER="--master=http://192.168.37.130:8080

  4、重启各个服务  

systemctl daemon-reload
systemctl  start kube-apiserver
systemctl  start kube-controller-manager
systemctl  start kube-scheduler

 

1.4 启动minion

  Minion需要启动kube-proxy,kubelet两个进程

1.4.1 kube-proxy启动  

#在两台机器都执行
kube-proxy  --logtostderr=true --v=0 --master=http://192.168.37.130:8080  

 

 

1.4.1 kubelet启动

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配置service

1、kube-proxy.service

[Unit]
Description=kube-proxy
Documentation=http://kubernetes.io/docs/

[Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-proxy
ExecStart=/usr/local/kube/kube-proxy ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}     
KillMode=process
Restart=on-failure
RestartSec=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=kubelet
Documentation=http://kubernetes.io/docs/

[Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kubelet
ExecStart=/usr/local/kube/kubelet ${LOGTOSTDERR}  ${VERSION}  ${ALLOW_PRIVILEGED}  ${LOG_DIR}  ${ADDRESS}  ${PORT}  ${HOSTNAME_OVERRIDE}  ${API_SERVERS}     
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
/etc/sysconfig/kubernets/kubelet配置文件
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"

 

 

 经过如上的步骤,k8s基本上已经安装好了,后续在把dashboard给安装上。

问题:

1、采用网上的配置,执行会产生一些警告信息:

[[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=false 
Flag --address has been deprecated, see --insecure-bind-address instead.
Flag --kubelet-port has been deprecated, kubelet-port is deprecated and will be removed.
[restful] 2016/11/01 15:31:15 log.go:30: [restful/swagger] listing is available at https://192.168.37.130:6443/swaggerapi/
[restful] 2016/11/01 15:31:15 log.go:30: [restful/swagger] https://192.168.37.130:6443/swaggerui/ is mapped to folder /swagger-ui/

 

2、执行kubectl get componentstatuses报错

[[email protected] ~]# kubectl get componentstatuses
The connection to the server localhost:8080 was refused - did you specify the right host or port?

  如上问题,如果在master机器上执行,则是因为/etc/hosts文件没有配置导致,在文件中加入ip localhost条目即可。

  如果是在从节点上,在执行kubectl get componentstatuses语句时候,加上kubectl -s $masterIP:$port get componentstatuses,其中$masterIP为主节点IP,$port为主节点的服务IP,即安装文档中的8080端口,如:kubectl -s http://192.168.37.130:8080 get componentstatuses

 

记录k8s安装es(代码片段)

apiVersion:policy/v1beta1kind:PodDisruptionBudgetmetadata:name:elasticsearch-pdbnamespace:testspec:selector:matchLabels:app:elasticsearchmaxUnavailable:1---apiVersion:apps/v1kind:StatefulSetmetadata:n 查看详情

最全实践-linux安装k8s(localk3s、minikube、k8scluster等)

参考技术Ainstalldockercentosubuntu本地安装k8s推荐使用K3s,dashboard推荐Kuboard如果需要更改端口,可以使用--apiserver-bind-port8443or如果是本地部署建议memory16g+单机部署解除master污点设置后面的步骤和ubuntu安装相同docker-compose安装可以先执... 查看详情

[k8s]kubernetesdashboard的安装

...如果连控制台都还没有动手实践过会不会有点low 1、安装dashboard  参阅官网的安装方法,https://github.com/kubernetes/dashboard,安装很简单,如果慢可以使用其它的镜像网站,我这里使用的是mirrorgooglecontainers/kubernetes-dashboard-amd64... 查看详情

k8s集群问题记录

...t;k8s常见命令总结:怎么解决简单就怎么解决例如rancher的安装使用helm安装有问题,官网有bug就使用docker的方式安装一样简便,只是个客户端没必要死扣对于由于环境问题引起的问题的排查./rkeup启动过程中提示有备份,这时候思... 查看详情

基于k8s的devops平台实践(代码片段)

文章目录前言1.Jenkins与k8s集成🍑插件安装及配置🍑演示动态slavepod🍑Pod-Template中容器镜像的制作🍑实践通过Jenkinsfile实现demo项目自动发布到kubenetes环境2.Jenkins集成Sonarqube🍑sonarqube架构简介🍑sonarqubeonkuber... 查看详情

k8s调试环境安装(代码片段)

目录 macminikube安装centosRancher安装记录自己常用两种方式minikube或Rancher macminikube安装参考文档 minikubestart|minikubemac上安装最简单,默认使用docker运行,需要先开启Dockerbrewinstallminikube启动/停止minikubestartminikubestop常用的da 查看详情

k8s调试环境安装(代码片段)

目录 macminikube安装centosRancher安装记录自己常用两种方式minikube或Rancher macminikube安装参考文档 minikubestart|minikubemac上安装最简单,默认使用docker运行,需要先开启Dockerbrewinstallminikube启动/停止minikubestartminikubestop常用的da 查看详情

k8s调试环境安装(代码片段)

目录 macminikube安装centosRancher安装记录自己常用两种方式minikube或Rancher macminikube安装参考文档 minikubestart|minikubemac上安装最简单,默认使用docker运行,需要先开启Dockerbrewinstallminikube启动/停止minikubestartminikubestop常用的da 查看详情

kunernetes-k8s架构的安装与使用(详细)(代码片段)

...式的问题9.为什么要用k8s10.k8s提供了什么功能二、k8s架构安装1.k8s流程2.k8s工作原理3.k8s组件交互原理(k8s使用流程?)4.干活来了,安装k8s(基础配置)4.1机器环境准备4.2组件版本4.3安装docker(allnodes)4.4安装k8s-master01(master01机器执行)4.5初始... 查看详情

基于k8s的ci/cd系统

...程比较简洁,主要帮助不了解Docker的同学快速掌握并应用安装命令如下k8s是一个容器编排工具,可以轻松实现应用的扩/缩容、集群等,具体安装方式参考文档我的k8s集群安装这是k8s的一个web管理界面,用于简化k8s的操作。在k8s... 查看详情

k8s安装promethus(代码片段)

记录安装prometheus+grafana1.从github下载prometheusgitclonehttps://github.com/coreos/kube-prometheus.gitcdkube-prometheus/manifests2.修改grafana-service.yaml文件,使用nodepode方式访问grafanavigrafana-service.yamlapiVers 查看详情

k8s安装prometheus过程记录(代码片段)

开始以为只要安装prometheus-operator就行了。gitclonehttps://github.com/coreos/prometheus-operator.gitcdprometheus-operatorsed's/namespace:default/namespace:monitoring/g'bundle.yaml|kubectlapply-f-安装后发现只有一个prometheus-operatorpod。$kubectlgetpods-nmonitoringNAMERE... 查看详情

rancher-代理k8s部署记录

1、在任意节点中,安装Rancherdockerrun-d--restart=unless-stopped-p8080:80-p8443:443--privilegedrancher/rancher:v2.5.9其中"v2.5.9”可以替换为“latest”,使用最新的包安装8080和8443也可按照自己实际的情况进行替换2、访问https://<部署主机的ip或全限... 查看详情

(史上最强)k8s集群外独立harbor服务器的安装(代码片段)

1、安装方式     harbor有两种安装方式,一种是用docker-compose启动官方打包好的离线安装包;二是用helmchart的形式在k8s上来运行harbor。经过我们自己的实践,helmchart安装失败了所以我们选择了第一种方法离线安装。... 查看详情

本机虚拟机centos7环境搭建k8s集群-实践篇

参考技术A成功后末尾输出信息如下:查看安装的镜像测试一下kubectl命令报错:Theconnectiontotheserverraw.githubusercontent.comwasrefused-didyouspecifytherighthostorport?原因:外网不可访问解决办法:重新执行上面命令,便可成功安装!在master查... 查看详情

prometheus监控k8s安装测试记录

部署环境$kubectlgetnodeNAMESTATUSROLESAGEVERSIONmaster01Readymaster13dv1.14.0master02Readymaster13dv1.14.0master03Readymaster13dv1.14.0node01Ready<none>13dv1.14.0node02Ready<none>13dv1.14.0node03Ready<none>13dv1.14.0 目录结构├──control│├──alertmanager组... 查看详情

k8s安装使用kubeasz安装多主多从k8s集群(简单快捷)(代码片段)

使用kubeasz安装多主多从k8s集群一、项目介绍kubeasz为github上开源的一个用于安装k8s集群的项目,目前很多方法安装k8s,但是多是单master多node的安装方式,但是kubeasz可以很方便的实现多主多从,用于实验真的很方便。项目的核心... 查看详情

k8s(3)kubeadm安装k8s(代码片段)

kubeadm安装k8s一、部署准备二、所有节点安装Docker/kubeadm/kubelet1、所有机器安装docker2、所有节点安装kubeadm,kubelet和kubectl三、初始化和安装网络插件1、master上执行初始化2、master上安装pod网络插件(flannel)四、将node节... 查看详情