文章目录

  • master部署
    • 将下载好的master软件包拉取到目录k8s下
    • api-server生成证书
    • 将pem证书拷贝到kubernetes/ssl目录
    • 解压kubernetes压缩包
    • 随机生成序列号
    • 启动apiserver、scheduler、controller-manager服务
  • node节点部署
    • 把 kubelet、kube-proxy拷贝到node节点上去
    • 设置环境变量(可以写入到/etc/profile中)
    • 生成配置文件
    • master拷贝配置文件到node节点
    • 创建bootstrap角色赋予权限用于连接apiserver请求签名(关键)
    • node01执行kubelet.sh脚本
    • 检查到node01节点的请求
    • 查看群集节点,成功加入node01节点
    • 启动proxy服务
    • 检查服务状态
  • node02节点部署
    • 把node01现成的/opt/kubernetes目录复制到其他节点进行修改即可
    • 修改配置文件
    • 在master上操作查看请求

前言:
本篇博客基于二进制集群部署的环境,继续部署单master集群,前文链接为: ETCD集群+flannel网络部署

master部署

将下载好的master软件包拉取到目录k8s下

[root@master ~]# cd k8s/
[root@master k8s]# ls
etcd-cert  etcd.sh  etcd-v3.3.10-linux-amd64  etcd-v3.3.10-linux-amd64.tar.gz  master.zip[root@master k8s]# unzip master.zip             # 解压缩
Archive:  master.zipinflating: apiserver.sh            inflating: controller-manager.sh   inflating: scheduler.sh            [root@master k8s]# ls
apiserver.sh           etcd-cert  etcd-v3.3.10-linux-amd64         master.zip
controller-manager.sh  etcd.sh    etcd-v3.3.10-linux-amd64.tar.gz  scheduler.sh[root@master k8s]# chmod +x controller-manager.sh       '脚本增加执行权限'

api-server生成证书

[root@master ~]# cd k8s/
[root@master k8s]# mkdir k8s-cert             # 创建存放证书的目录
[root@master k8s]# cd k8s-cert/

将生成证书的脚本放进目录,修改脚本

[root@master k8s-cert]# ls
k8s-cert.sh[root@master k8s-cert]# vi k8s-cert.sh
"CN": "kubernetes","hosts": ["10.0.0.1","127.0.0.1","20.0.0.11",           # master01"20.0.0.14",           # master02"20.0.0.100",          # VIP,唯一公共访问入口"20.0.0.15",           # 负载均衡器01"20.0.0.16",          # 负载均衡器02"kubernetes","kubernetes.default","kubernetes.default.svc","kubernetes.default.svc.cluster","kubernetes.default.svc.cluster.local"

生成k8s证书

[root@master k8s-cert]# bash k8s-cert.sh            # 生成证书[root@master k8s-cert]# ls
admin.csr       admin.pem       ca-csr.json  k8s-cert.sh          kube-proxy-key.pem  server-csr.json
admin-csr.json  ca-config.json  ca-key.pem   kube-proxy.csr       kube-proxy.pem      server-key.pem
admin-key.pem   ca.csr          ca.pem       kube-proxy-csr.json  server.csr          server.pem[root@master k8s-cert]# ls *pem
admin-key.pem  admin.pem  ca-key.pem  ca.pem  kube-proxy-key.pem  kube-proxy.pem  server-key.pem  server.pem         '所需8张证书'

将pem证书拷贝到kubernetes/ssl目录

创建kubernetes工作目录

[root@master ~]# mkdir /opt/kubernetes/{cfg,bin,ssl} -p
[root@master ~]# cd /opt/kubernetes/
[root@master kubernetes]# ls
bin  cfg  ssl

拷贝pem证书

[root@master ~]# cd k8s/k8s-cert/
[root@master k8s-cert]# cp ca*pem server*pem /opt/kubernetes/ssl/[root@master k8s-cert]# ls /opt/kubernetes/ssl/
ca-key.pem  ca.pem  server-key.pem  server.pem

解压kubernetes压缩包

[root@master ~]# cd k8s/
[root@master k8s]# ls
apiserver.sh           etcd.sh                          k8s-cert                              scheduler.sh
controller-manager.sh  etcd-v3.3.10-linux-amd64         kubernetes-server-linux-amd64.tar.gz
etcd-cert              etcd-v3.3.10-linux-amd64.tar.gz  master.zip[root@master k8s]# tar zxvf kubernetes-server-linux-amd64.tar.gz

拷贝关键目录到/opt/kubernetes/bin目录下

[root@master ~]# cd k8s/kubernetes/server/bin/
[root@master bin]# ll
总用量 1821612
-rwxr-xr-x. 1 root root  60859975 11月 26 2018 apiextensions-apiserver
-rwxr-xr-x. 1 root root 142931406 11月 26 2018 cloud-controller-manager
-rw-r--r--. 1 root root         8 11月 26 2018 cloud-controller-manager.docker_tag
-rw-r--r--. 1 root root 144317440 11月 26 2018 cloud-controller-manager.tar
-rwxr-xr-x. 1 root root 248033928 11月 26 2018 hyperkube
-rwxr-xr-x. 1 root root  54038482 11月 26 2018 kubeadm
-rwxr-xr-x. 1 root root 192793815 11月 26 2018 kube-apiserver
-rw-r--r--. 1 root root         8 11月 26 2018 kube-apiserver.docker_tag
-rw-r--r--. 1 root root 194180096 11月 26 2018 kube-apiserver.tar
-rwxr-xr-x. 1 root root 162973612 11月 26 2018 kube-controller-manager
-rw-r--r--. 1 root root         8 11月 26 2018 kube-controller-manager.docker_tag
-rw-r--r--. 1 root root 164359680 11月 26 2018 kube-controller-manager.tar
-rwxr-xr-x. 1 root root  57356334 11月 26 2018 kubectl
-rwxr-xr-x. 1 root root 176661512 11月 26 2018 kubelet
-rwxr-xr-x. 1 root root  50330867 11月 26 2018 kube-proxy
-rw-r--r--. 1 root root         8 11月 26 2018 kube-proxy.docker_tag
-rw-r--r--. 1 root root  98355200 11月 26 2018 kube-proxy.tar
-rwxr-xr-x. 1 root root  57184656 11月 26 2018 kube-scheduler
-rw-r--r--. 1 root root         8 11月 26 2018 kube-scheduler.docker_tag
-rw-r--r--. 1 root root  58570752 11月 26 2018 kube-scheduler.tar
-rwxr-xr-x. 1 root root   2330265 11月 26 2018 mounter[root@master bin]# cp kube-apiserver kubectl kube-controller-manager kube-scheduler /opt/kubernetes/bin/[root@master bin]# ls /opt/kubernetes/bin/
kube-apiserver  kube-controller-manager  kubectl  kube-scheduler

随机生成序列号

[root@master ~]# head -c 16 /dev/urandom | od -An -t x | tr -d ' '
72b3e1ef2457c3d31cf65b7327be5828

创建token.csv

[root@master ~]# vi /opt/kubernetes/cfg/token.csv
72b3e1ef2457c3d31cf65b7327be5828,kubelet-bootstrap,10001,"system:kubelet-bootstrap"            '序列号,用户名,id,角色'

启动apiserver、scheduler、controller-manager服务

开启apiserver

[root@master ~]# cd k8s/
[root@master k8s]# bash apiserver.sh 20.0.0.11 https://20.0.0.11:2379,https://20.0.0.12:2379,https://20.0.0.13:2379[root@master k8s]# ps aux | grep kube
root      62331 27.4  7.9 392812 306556 ?       Ssl  04:09   0:09 /opt/kubernetes/bin/kube-apiserver --logtostderr=true --v=4 --etcd-servers=https://20.0.0.11:2379,https://20.0.0.12:2379,https://20.0.0.13:2379 --bind-address=20.0.0.11 --secure-port=6443 --advertise-address=20.0.0.11 --allow-privileged=true --service-cluster-ip-range=10.0.0.0/24 --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction --authorization-mode=RBAC,Node --kubelet-https=true --enable-bootstrap-token-auth --token-auth-file=/opt/kubernetes/cfg/token.csv --service-node-port-range=30000-50000 --tls-cert-file=/opt/kubernetes/ssl/server.pem --tls-private-key-file=/opt/kubernetes/ssl/server-key.pem --client-ca-file=/opt/kubernetes/ssl/ca.pem --service-account-key-file=/opt/kubernetes/ssl/ca-key.pem --etcd-cafile=/opt/etcd/ssl/ca.pem --etcd-certfile=/opt/etcd/ssl/server.pem --etcd-keyfile=/opt/etcd/ssl/server-key.pem
root      62354  0.0  0.0 112676   984 pts/2    S+   04:09   0:00 grep --color=auto kube

监听的https端口

[root@master k8s]# netstat -ntap | grep 6443
tcp        0      0 20.0.0.11:6443          0.0.0.0:*               LISTEN      62331/kube-apiserve
tcp        0      0 20.0.0.11:60932         20.0.0.11:6443          ESTABLISHED 62331/kube-apiserve
tcp        0      0 20.0.0.11:6443          20.0.0.11:60932         ESTABLISHED 62331/kube-apiserve [root@master k8s]# netstat -ntap | grep 8080
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      62331/kube-apiserve

启动scheduler服务

[root@master ~]# cd k8s/
[root@master ~]# ./scheduler.sh 127.0.0.1
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-scheduler.service to /usr/lib/systemd/system/kube-scheduler.service.[root@master k8s]# ps aux | grep kube
root      62331  4.2  7.9 393068 307268 ?       Ssl  04:09   0:14 /opt/kubernetes/bin/kube-apiserver --logtostderr=true --v=4 --etcd-servers=https://20.0.0.11:2379,https://20.0.0.12:2379,https://20.0.0.13:2379 --bind-address=20.0.0.11 --secure-port=6443 --advertise-address=20.0.0.11 --allow-privileged=true --service-cluster-ip-range=10.0.0.0/24 --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction --authorization-mode=RBAC,Node --kubelet-https=true --enable-bootstrap-token-auth --token-auth-file=/opt/kubernetes/cfg/token.csv --service-node-port-range=30000-50000 --tls-cert-file=/opt/kubernetes/ssl/server.pem --tls-private-key-file=/opt/kubernetes/ssl/server-key.pem --client-ca-file=/opt/kubernetes/ssl/ca.pem --service-account-key-file=/opt/kubernetes/ssl/ca-key.pem --etcd-cafile=/opt/etcd/ssl/ca.pem --etcd-certfile=/opt/etcd/ssl/server.pem --etcd-keyfile=/opt/etcd/ssl/server-key.pem
root      62458  1.3  0.4  46128 19292 ?        Ssl  04:14   0:00 /opt/kubernetes/bin/kube-scheduler --logtostderr=true --v=4 --master=127.0.0.1:8080 --leader-elect
root      62474  0.0  0.0 112676   984 pts/2    S+   04:15   0:00 grep --color=auto kube

启动controller-manager

[root@master ~]# cd k8s/
[root@master k8s]# ./controller-manager.sh 127.0.0.1
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-controller-manager.service to /usr/lib/systemd/system/kube-controller-manager.service.

查看master 节点状态

[root@master01 k8s]# /opt/kubernetes/bin/kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-2               Healthy   {"health":"true"}
etcd-1               Healthy   {"health":"true"}
etcd-0               Healthy   {"health":"true"}

node节点部署

把 kubelet、kube-proxy拷贝到node节点上去

[root@master01 ~]# cd k8s/kubernetes/server/bin/[root@master01 bin]# scp kubelet kube-proxy root@20.0.0.12:/opt/kubernetes/bin/
root@20.0.0.12's password:
kubelet                                                                    100%  168MB  83.8MB/s   00:02
kube-proxy                                                                 100%   48MB  70.7MB/s   00:00    [root@master01 bin]# scp kubelet kube-proxy root@20.0.0.13:/opt/kubernetes/bin/
root@20.0.0.13's password:
kubelet                                                                    100%  168MB 116.6MB/s   00:01
kube-proxy

node01 node02 验证

[root@node01 ~]# cd /opt/kubernetes/bin/
[root@node01 bin]# ls
flanneld  kubelet  kube-proxy  mk-docker-opts.sh

复制node.zip到/root目录下再解压

[root@node01 ~]# ls
anaconda-ks.cfg  flannel-v0.10.0-linux-amd64.tar.gz  node.zip
flannel.sh       initial-setup-ks.cfg

解压缩

[root@node01 ~]# unzip node.zip
Archive:  node.zipinflating: proxy.sh                inflating: kubelet.sh

master上操作创建kubeconfig

[root@master ~]# cd k8s/
[root@master k8s]# mkdir kubeconfig

复制脚本到kubeconfig目录下

[root@master ~]# cd k8s/kubeconfig/
[root@master01 kubeconfig]# ls
kubeconfig.sh

修改配置文件

[root@master ~]# cat /opt/kubernetes/cfg/token.csv
72b3e1ef2457c3d31cf65b7327be5828,kubelet-bootstrap,10001,"system:kubelet-bootstrap"               # 序列号需要用到[root@master ~]# cd k8s/kubeconfig/
[root@master kubeconfig]# vi kubeconfig.sh
##### 以下删除 ####
# 创建 TLS Bootstrapping Token
#BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
BOOTSTRAP_TOKEN=0fb61c46f8991b718eb38d27b605b008cat > token.csv <<EOF
${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
EOF#----------------------#### 修改添加 ####
# 设置客户端认证参数
kubectl config set-credentials kubelet-bootstrap \--token=72b3e1ef2457c3d31cf65b7327be5828 \                     # 删除之前变量,修改成序列号--kubeconfig=bootstrap.kubeconfig

设置环境变量(可以写入到/etc/profile中)

[root@master01 ~]# vi /etc/profile
export PATH=$PATH:/opt/kubernetes/bin/           # 最后添加[root@master01 ~]# source /etc/profile           # 环境变量生成[root@master01 ~]# kubectl get node
No resources found.[root@master01 ~]# kubectl get csr
No resources found.[root@master01 ~]# kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}
etcd-2               Healthy   {"health":"true"}
etcd-1               Healthy   {"health":"true"}

生成配置文件

修改文件名

[root@master01 ~]# cd k8s/kubeconfig/
[root@master01 kubeconfig]# mv kubeconfig.sh kubeconfig[root@master01 kubeconfig]# ls
kubeconfig

生成文件

[root@master01 kubeconfig]# bash kubeconfig 20.0.0.11 /root/k8s/k8s-cert/
Cluster "kubernetes" set.
User "kubelet-bootstrap" set.
Context "default" created.
Switched to context "default".
Cluster "kubernetes" set.
User "kube-proxy" set.
Context "default" created.
Switched to context "default".[root@master01 kubeconfig]# ls
bootstrap.kubeconfig  kubeconfig  kube-proxy.kubeconfig

master拷贝配置文件到node节点

[root@master ~]# cd k8s/kubeconfig/
[root@master01 kubeconfig]# ls
bootstrap.kubeconfig  kubeconfig  kube-proxy.kubeconfig[root@master kubeconfig]# scp bootstrap.kubeconfig kube-proxy.kubeconfig root@20.0.0.12:/opt/kubernetes/cfg/
root@20.0.0.12's password:
bootstrap.kubeconfig                                                     100% 2163     4.1MB/s   00:00
kube-proxy.kubeconfig                                                    100% 6265     7.9MB/s   00:00    [root@master kubeconfig]# scp bootstrap.kubeconfig kube-proxy.kubeconfig root@20.0.0.13:/opt/kubernetes/cfg/
root@20.0.0.13's password:
bootstrap.kubeconfig                                                     100% 2163     2.8MB/s   00:00
kube-proxy.kubeconfig

node01/02验证

[root@node01 ~]# ls /opt/kubernetes/cfg/
bootstrap.kubeconfig  flanneld  kube-proxy.kubeconfig

创建bootstrap角色赋予权限用于连接apiserver请求签名(关键)

[root@master ~]# cd k8s/kubeconfig/
[root@master01 kubeconfig]# kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
clusterrolebinding.rbac.authorization.k8s.io/kubelet-bootstrap created

node01执行kubelet.sh脚本

执行脚本

[root@node01 ~]# bash kubelet.sh 20.0.0.12             # 本机IP地址
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.

检查kubelet服务启动

[root@node01 ~]# ps aux | grep kube
[root@node01 ~]# ps aux | grep kube
root      36810  0.0  0.0 112676   980 pts/1    S+   22:10   0:00 grep --color=auto kube
root      71969  3.7  1.9 970288 75604 ?        Ssl  3月18  55:58 /opt/kubernetes/bin/kubelet --logtostderr=true --v=4 --hostname-override=20.0.0.12 --kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig --bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig --config=/opt/kubernetes/cfg/kubelet.config --cert-dir=/opt/kubernetes/ssl --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0
root      73727  0.4  0.6  45460 24188 ?        Ssl  3月18   7:13 /opt/kubernetes/bin/kube-proxy --logtostderr=true --v=4 --hostname-override=20.0.0.12 --cluster-cidr=10.0.0.0/24 --proxy-mode=ipvs --kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig[root@node01 ~]# systemctl status kubelet.service
● kubelet.service - Kubernetes KubeletLoaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)Active: active (running) since 四 2021-03-18 21:27:31 CST; 34s agoMain PID: 71969 (kubelet)Memory: 18.1MCGroup: /system.slice/kubelet.service└─71969 /opt/kubernetes/bin/kubelet --logtostderr=true --v=4 --hostname-override=20.0.0.12 --...# 若是没有启动为 deactivating  状态
[root@node01 ~]# systemctl start kubelet.service                    

检查到node01节点的请求

等待节点颁发证书

[root@master ~]# kubectl get csr
NAME                                                   AGE     REQUESTOR           CONDITION
node-csr-cT_5pR6PfBoBvr9fBgWDCtiSYlu_tv434z_hlPXdrDQ   7m27s   kubelet-bootstrap   Pending                   '等待集群给该节点颁发证书'

允许加入群集

[root@master ~]# kubectl certificate approve node-csr-cT_5pR6PfBoBvr9fBgWDCtiSYlu_tv434z_hlPXdrDQ
certificatesigningrequest.certificates.k8s.io/node-csr-cT_5pR6PfBoBvr9fBgWDCtiSYlu_tv434z_hlPXdrDQ approved

继续查看证书状态

[root@master ~]# kubectl get csr
NAME                                                   AGE   REQUESTOR           CONDITION
node-csr-cT_5pR6PfBoBvr9fBgWDCtiSYlu_tv434z_hlPXdrDQ   13m   kubelet-bootstrap   Approved,Issued            '已经被允许加入群'

查看群集节点,成功加入node01节点

[root@master ~]# kubectl get node
NAME        STATUS   ROLES    AGE    VERSION
20.0.0.12   Ready    <none>   3m5s   v1.12.3

启动proxy服务

node01执行脚本

[root@node01 ~]# bash proxy.sh 20.0.0.12    ' 本机IP'
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service.

检查服务状态

[root@node01 ~]# systemctl status kube-proxy.service
● kube-proxy.service - Kubernetes ProxyLoaded: loaded (/usr/lib/systemd/system/kube-proxy.service; enabled; vendor preset: disabled)Active: active (running) since 四 2021-03-18 21:42:48 CST; 13s agoMain PID: 73727 (kube-proxy)Memory: 8.5MCGroup: /system.slice/kube-proxy.service‣ 73727 /opt/kubernetes/bin/kube-proxy --logtostderr=true --v=4 --hostname-override=20.0.0.12...

node02节点部署

把node01现成的/opt/kubernetes目录复制到其他节点进行修改即可

[root@node01 ~]# scp -r /opt/kubernetes/ root@20.0.0.13:/opt/
flanneld                                                                 100%  223   646.6KB/s   00:00
bootstrap.kubeconfig                                                     100% 2163     3.3MB/s   00:00
kube-proxy.kubeconfig                                                    100% 6265    10.1MB/s   00:00
kubelet                                                                  100%  373   488.9KB/s   00:00
kubelet.config                                                           100%  263    16.0KB/s   00:00
kubelet.kubeconfig                                                       100% 2292     3.8MB/s   00:00
kube-proxy                                                               100%  185   428.2KB/s   00:00
mk-docker-opts.sh                                                        100% 2139     3.3MB/s   00:00
flanneld                                                                 100%   35MB 103.2MB/s   00:00
kubelet                                                                  100%  168MB 134.0MB/s   00:01
kube-proxy                                                               100%   48MB  89.4MB/s   00:00
kubelet.crt                                                              100% 2165     1.1MB/s   00:00
kubelet.key                                                              100% 1675   965.4KB/s   00:00
kubelet-client-2021-03-18-21-36-58.pem                                   100% 1269   421.2KB/s   00:00
kubelet-client-current.pem                                               100% 1269   413.9KB/s   00:00

把kubelet,kube-proxy的service文件拷贝到node2中

[root@node01 ~]# scp /usr/lib/systemd/system/{kubelet,kube-proxy}.service root@20.0.0.13:/usr/lib/systemd/system
root@20.0.0.13's password:
kubelet.service                                                          100%  264   494.6KB/s   00:00
kube-proxy.service

删除复制过来的证书,等会node02会自行申请证书

[root@node02 ~]# cd /opt/kubernetes/ssl/
[root@node02 ssl]# ls
kubelet-client-2021-03-18-21-36-58.pem  kubelet-client-current.pem  kubelet.crt  kubelet.key[root@node02 ssl]# rm -rf *
[root@node02 ssl]# ls

修改配置文件

kubelet

[root@node02 ~]# cd /opt/kubernetes/cfg/
[root@node02 cfg]# vi kubelet
KUBELET_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=20.0.0.13 \                 # 修改为 node02 IP地址
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \
--bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \
--config=/opt/kubernetes/cfg/kubelet.config \
--cert-dir=/opt/kubernetes/ssl \
--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"

kubelet.config

[root@node02 cfg]# vi kubelet.config
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
address: 20.0.0.13                   # 修改为 node02 IP地址
port: 10250
readOnlyPort: 10255
cgroupDriver: cgroupfs
clusterDNS:
- 10.0.0.2
clusterDomain: cluster.local.
failSwapOn: false
authentication:anonymous:enabled: true

kube-proxy

[root@node02 cfg]# vi kube-proxy
KUBE_PROXY_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=20.0.0.13 \                '修改为 node02 IP地址'
--cluster-cidr=10.0.0.0/24 \
--proxy-mode=ipvs \
--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig"

启动服务

[root@node02 cfg]# systemctl start kubelet.service               ' 开启之后申请加入集群'
[root@node02 cfg]# systemctl enable kubelet.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.[root@node02 ~]# ls /opt/kubernetes/ssl/                         '查看生成的证书'
kubelet-client-2021-03-19-21-45-43.pem  kubelet-client-current.pem  kubelet.crt  kubelet.key[root@node02 cfg]# systemctl start kube-proxy.service
[root@node02 cfg]# systemctl enable kube-proxy.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service

在master上操作查看请求

查看请求

[root@master ~]# kubectl get csr
NAME                                                   AGE   REQUESTOR           CONDITION
node-csr-Al3nupheJJGAQie31Wa34TT9MAAdJa7HELPSryHavL4   67s   kubelet-bootstrap   Pending
node-csr-cT_5pR6PfBoBvr9fBgWDCtiSYlu_tv434z_hlPXdrDQ   42m   kubelet-bootstrap   Approved,Issued

授权许可加入群集

[root@master ~]# kubectl certificate approve node-csr-Al3nupheJJGAQie31Wa34TT9MAAdJa7HELPSryHavL4
certificatesigningrequest.certificates.k8s.io/node-csr-Al3nupheJJGAQie31Wa34TT9MAAdJa7HELPSryHavL4 approved

查看证书状态

[root@master ~]# kubectl get csr
NAME                                                   AGE    REQUESTOR           CONDITION
node-csr-Al3nupheJJGAQie31Wa34TT9MAAdJa7HELPSryHavL4   7m6s   kubelet-bootstrap   Approved,Issued
node-csr-cT_5pR6PfBoBvr9fBgWDCtiSYlu_tv434z_hlPXdrDQ   48m    kubelet-bootstrap   Approved,Issued

查看群集中的节点

[root@master ~]# kubectl get node
NAME        STATUS   ROLES    AGE   VERSION
20.0.0.12   Ready    <none>   33m   v1.12.3
20.0.0.13   Ready    <none>   30s   v1.12.3

Kubernetes----单节点部署(完)(详细过程~)相关推荐

  1. Kubernetes单节点部署----二进制集群部署(ETCD集群+Flannel网络)

    文章目录 环境部署 开局优化 master节点操作etcd 集群部署 开始制作证书 node节点加入ETCD集群(实现内部通信) node1/2节点操作 docker安装 flannel网络配置 ma ...

  2. k8s二进制单节点部署

    k8s二进制单节点部署 常见的k8s部署方式 Kubernetes二进制部署(单节点) 环境准备 部署etcd集群(这里就不在单独的服务器上部署,直接部署在各节点上,节省资源) 下载证书制作工具 利用 ...

  3. 【Docker安装部署FastDFS详细过程】

    0.国人之光~FastDFS 分布式文件存储的由来: 在我们的项目中有很多需要存储的内容出现,比如图片,视频,文件等等,在早期的时候用户量不大,产生的文件也不是很多,这时我们可以把文件和服务程序放在一 ...

  4. Ubuntu下用devstack单节点部署Openstack

    一.实验环境 本实验是在Vmware Workstation下创建的单台Ubuntu服务器版系统中,利用devstack部署的Openstack Pike版. 宿主机:win10 1803  8G内存 ...

  5. 啃K8s之快速入门,以及哭吧S(k8s)单节点部署

    啃K8s之快速入门,以及哭吧S(k8s)单节点部署 一:Kubernets概述 1.1:Kubernets是什么? 1.2:Kubernets特性 1.3:Kubernets群集架构与组件 1.3.1 ...

  6. skywalking单节点部署

    skywalking单节点部署 skywalking服务部署 下载skywalking服务文件 下载地址:http://skywalking.apache.org/downloads/ 我使用的是Bi ...

  7. openstack 系列: 基于CentOS7系统使用packstack工具单节点部署openstacktrain---Part-I安装简易命令

    1说明 本人非linux专业人士,更不是云计算专家 部署过程是从各大博客自己百度知道 各种搜索排查,硬是搭起了train环境 过程纠结,先是在win 10 vmware 上安装centos7 再基于c ...

  8. Elasticsearch在Linux中的单节点部署和集群部署

    目录 一.Elasticsearch简介 二.Linux单节点部署 1.软件下载解压 2.创建用户 3.修改配置文件 4.切换到刚刚创建的用户启动软件 5.测试 三.Linux集群配置 1.拷贝文件 ...

  9. Graylog 日志服务器单节点部署

    资料 https://docs.graylog.org/docs/ 简介 Graylog项目由Lennart Koopmann在2009年左右启动.当时,最着名的日志管理软件vendor发布了他们产品 ...

  10. ElasticSearch学习(四)——Linux 单节点部署

    文章名称 地址 ElasticSearch学习(一)--概述 前往 ElasticSearch学习(二)--索引.文档简单操作 前往 ElasticSearch学习(三)--Windows 集群部署 ...

最新文章

  1. 如何打造高质量的机器学习数据集?这份超详指南不可错过
  2. Opencv+Windows+Codeblocks+C++安装笔记,花了三天终于在公司各种限制条件下成功打开图片
  3. 帮助创建未来的 .NET 客户端开发
  4. 网格合并之后物体的位置改变了_基于网格映射对自动驾驶环境信息表示方法
  5. 光栅尺与PLC的配合使用
  6. 【集合工具类:Collections】
  7. JAVA标识符中含小数点可以吗_数值类型小数点后是否可以接零问题
  8. gz 解压 linux_linux下cpio.gz文件的解压方法
  9. StringBuffer,StringBuilder区别是啥
  10. HTML5再曝漏洞 安全性遭质疑
  11. js获取月的第一天、最后一天
  12. Oracle 误删恢复
  13. android爱汽车破解密码,汽车报价大全app sign解密过程
  14. Pandas实用的25个技巧
  15. vue表单项目解决安卓键盘遮挡输入框问题
  16. MyBatis 关联映射
  17. [Pytorch系列-28]:神经网络基础 - torch.nn模块功能列表
  18. 元宇宙的雏形?揭秘Meta绝密的现实实验室
  19. 神经网络常见评价指标超详细介绍(ROC曲线、AUC指标、AUROC)
  20. 酷讯网创始人陈华离职 或因与资方关系不合

热门文章

  1. js阻止冒泡,兼容写法。
  2. android 屏幕长截图,对标iOS?Android 11或无缘屏幕长截图
  3. Java基础语法:重写equals方法和hasCode方法
  4. idea eclipse 快捷键全局搜索替换代码 修改包名
  5. linux压缩/解压文件和移动文件操作
  6. 谈中国软件研发的团队精神
  7. 2023考研时间定了!
  8. Unity3D之太空大战二
  9. java 集成小米,华为推送
  10. js 遍历formData对象数据