kubernetes服务端主要有以下几个组件:
1、kube-apiserver,用于暴露Kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。
2、kube-controller-manager,运行管理控制器,它们是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。
这些控制器包括:
节点(Node)控制器。
副本(Replication)控制器:负责维护系统中每个副本中的pod。
端点(Endpoints)控制器:填充Endpoints对象(即连接Services&Pods)。
Service Account和Token控制器:为新的Namespace 创建默认帐户访问API Token
3、kube-scheduler:监视新创建没有分配到Node的Pod,为Pod选择一个Node。
下面开始安装:
github项目地址:https://github.com/kubernetes/kubernetes,选择合适的版本下载二进制文件。可以只下载server版本,kubernetes组件里面全都有。
解压后,将kubectl、kube-apiserver、kube-controller-manager、kube-scheduler这四个文件放到/usr/local/bin/。
#chmod a+x /usr/local/bin/*,设置文件的可执行权限。
添加kube-apiserver的服务文件:
cat > /lib/systemd/system/kube-apiserver.service <<EOF[Unit]Description=Kubernetes API ServerDocumentation=https://github.com/GoogleCloudPlatform/kubernetesAfter=network.target[Service]ExecStart=/usr/local/bin/kube-apiserver ??--admission-control=NamespaceLifecycle,LimitRanger,DefaultStorageClass,ResourceQuota,NodeRestriction ??--insecure-bind-address=0.0.0.0 ??--kubelet-https=false ??--service-cluster-ip-range=10.68.0.0/16 ??--service-node-port-range=20000-40000 ??--etcd-servers=http://192.168.111.10:2379,http://192.168.111.11:2379,http://192.168.111.12:2379 \ ?--enable-swagger-ui=true ??--allow-privileged=true ??--audit-log-maxage=30 ??--audit-log-maxbackup=3 ??--audit-log-maxsize=100 ??--audit-log-path=/var/lib/Kubernetes/log ??--event-ttl=1h ??--v=2Restart=on-failureRestartSec=5Type=notifyLimitNOFILE=65536[Install]WantedBy=multi-user.targetEOF
# mkdir -p /var/lib/Kubernetes/log #创建日志文件目录
启动kube-apiserver:
# for SERVICES in kube-apiserver;do
???systemctl enable $SERVICES
???systemctl start ?$SERVICES
???systemctl status $SERVICES
done
如果没有报错,显示绿色,就启动了。可以尝试一下面的命令:
# kubectl get nodes
No resources found.
添加kube-controller-manager服务文件:
cat > /lib/systemd/system/kube-controller-manager.service <<EOF[Unit]Description=Kubernetes Controller ManagerDocumentation=https://github.com/GoogleCloudPlatform/kubernetes[Service]ExecStart=/usr/local/bin/kube-controller-manager ??--master=http://127.0.0.1:8080 \ ?--logtostderr=true ?--leader-elect=true ??--v=2Restart=on-failureRestartSec=5[Install]WantedBy=multi-user.targetEOF
启动kube-controller-manager:
# for SERVICES in kube-controller-manager;do
???systemctl enable $SERVICES
???systemctl start ?$SERVICES
???systemctl status $SERVICES
done
没有报错就算启动成功了。
添加kube-schedule服务文件:
cat > /lib/systemd/system/kube-scheduler.service <<EOF[Unit]Description=Kubernetes SchedulerDocumentation=https://github.com/GoogleCloudPlatform/kubernetes[Service]ExecStart=/usr/local/bin/kube-scheduler ??--address=127.0.0.1 ??--master=http://127.0.0.1:8080 \ ?--leader-elect=true ??--v=2Restart=on-failureRestartSec=5[Install]WantedBy=multi-user.targetEOF
启动kube-schedule:
# for SERVICES in kube-scheduler;do
???systemctl enable $SERVICES
???systemctl start ?$SERVICES
???systemctl status $SERVICES
done
没有报错就算启动成功了。
k8s非认证授权-kubernetes服务端
原文地址:https://www.cnblogs.com/xuyingzhong/p/9648906.html