k8s非认证授权-kubernetes服务端

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 Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=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=2
Restart=on-failure
RestartSec=5
Type=notify
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF

# 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 Manager
Documentation=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=2
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF

启动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 Scheduler
Documentation=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=2
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF

启动kube-schedule:

# for SERVICES in kube-scheduler;do
systemctl enable $SERVICES
systemctl start $SERVICES
systemctl status $SERVICES
done

没有报错就算启动成功了。

猜你喜欢

转载自www.cnblogs.com/xuyingzhong/p/9648906.html