二进制文件安装高可用k8s集群(三)配置kubeconfig并安装kube-controller-manager
标签搜索

二进制文件安装高可用k8s集群(三)配置kubeconfig并安装kube-controller-manager

mrui
2025-03-31 / 0 评论 / 46 阅读 / 正在检测是否收录...
创建客户端CA证书

kube-controller-manager,kube-scheduler,kubelet和kube-proxy服务作为客户的连接kube-apiserver时,需要CA证书的认证才能正确连接。为了方便统一创建一个客户端CA证书,使得以上服务可以正确访问kube-apiserver。

cd /etc/kubernetes/pki
openssl genrsa -out client.key 2048
Generating RSA private key, 2048 bit long modulus
.................+++
............................................+++
e is 65537 (0x10001)
openssl req -new -key client.key -subj "/CN=admin" -out client.csr
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 36500
Signature ok
subject=/CN=admin
Getting CA Private Key

###
#-subj "/CN=admin"参数用于标识连接kube-apiserver的客户端用户的名称
创建客户端连接kube-apiserver服务所需要的kubeconfig配置文件

为kube-controller-manager、kube-scheduler、kubelet、kube-proxy和kubectl服务统一创建一个kubeconfig文件,作为连接kube-apiserver服务的配置文件。
在kubeconfig文件中,主要设置访问kube-apiserver的URL地址及所需要的CA证书等相关参数

vim  /etc/kubernetes/kubeconfig
apiVersion: v1
kind: Config
clusters:
- name: default
  cluster:
    server: https://192.168.88.100:9443
    certificate-authority: /etc/kubernetes/pki/ca.crt
users:
- name: admin
  user:
    client-certificate: /etc/kubernetes/pki/client.crt
    client-key: /etc/kubernetes/pki/client.key
contexts:
- context:
    cluster: default
    user: admin
  name: default
current-context: default


###
# server URL 地址:配置为负载均衡器(HAProxy)使用的虚拟IP地址和HAProxy监听的端口号
# certificate-authority:CA根证书的路径
# client-certificate:客户端证书文件(client.crt)的路径
# client-key:客户端私钥文件(client.key)的路径
# users中的user.name以及context中的context.user:连接API Server 的用户名,设置为与客户端证书中的“/CN”名称保持一致,如“admin”
部署kube-controller-manager服务
创建service文件
vim /usr/lib/systemd/system/kube-controller-manager.service
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/kubernetes/kubernetes

[Service]
EnvironmentFile=/etc/kubernetes/controller-manager
ExecStart=/usr/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_ARGS
Restart=always

[Install]
WantedBy=multi-user.target
创建kube-controller-manager运行时所需的环境文件
vim /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig \
--leader-elect=true \
--service-cluster-ip-range=10.245.0.0/16 \
--cluster-cidr=10.244.0.0/16 \
--allocate-node-cidrs=true \
--service-account-private-key-file=/etc/kubernetes/pki/apiserver.key \
--root-ca-file=/etc/kubernetes/pki/ca.crt"
###
# kubeconfig:与APIServer连接的相关配置
# leader-elect:启用选举机制,在有3个节点的情况下应该设置为true
# service-cluster-ip-range:Service的虚拟IP地址范围,以CIDR格式表示,与kube-apiserver服务中的配置保持一致
# service-account-private-key-file:为ServiceAccount自动颁发token使用的私钥文件路径
# root-ca-file:CA根证书的路径
开启服务
systemctl enable kube-controller-manager --now

scp master1:/etc/kubernetes/kubeconfig /etc/kubernetes/kubeconfig
scp master1:/usr/lib/systemd/system/kube-controller-manager.service /usr/lib/systemd/system/kube-controller-manager.service
scp master1:/etc/kubernetes/controller-manager /etc/kubernetes/controller-manager
scp master1:/etc/kubernetes/pki/client.* /etc/kubernetes/pki/
systemctl enable kube-controller-manager --now
#kube-controller-manager运行状态,会看到一些error,这是因为kube-apiserver配置的地址是192.168.88.100:6443,这是一个高可用集群的虚拟地址,但是现在还没有进行配置,因此kube-controller-manager会报一些访问失败的错误
systemctl status kube-controller-manager.service -l
● kube-controller-manager.service - Kubernetes Controller Manager
   Loaded: loaded (/usr/lib/systemd/system/kube-controller-manager.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2025-04-08 18:03:04 CST; 7h left
     Docs: https://github.com/kubernetes/kubernetes
 Main PID: 2465 (kube-controller)
    Tasks: 5 (limit: 11218)
   Memory: 18.0M
   CGroup: /system.slice/kube-controller-manager.service
           └─2465 /usr/bin/kube-controller-manager --kubeconfig=/etc/kubernetes/kubeconfig --leader-elect=true --service-cluster-ip-range=10.245.0.0/16 --c>

4月 08 10:19:38 master1 kube-controller-manager[2465]: E0408 10:19:38.595169    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:19:42 master1 kube-controller-manager[2465]: E0408 10:19:42.947582    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:19:46 master1 kube-controller-manager[2465]: E0408 10:19:46.019711    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:19:53 master1 kube-controller-manager[2465]: E0408 10:19:53.442951    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:19:56 master1 kube-controller-manager[2465]: E0408 10:19:56.519048    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:19:59 master1 kube-controller-manager[2465]: E0408 10:19:59.588051    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:20:05 master1 kube-controller-manager[2465]: E0408 10:20:05.733890    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:20:08 master1 kube-controller-manager[2465]: E0408 10:20:08.805862    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:20:15 master1 kube-controller-manager[2465]: E0408 10:20:15.973150    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>
4月 08 10:20:22 master1 kube-controller-manager[2465]: E0408 10:20:22.113854    2465 leaderelection.go:436] error retrieving resource lock kube-system/kube>

0

评论 (0)

取消