企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 配置kubectl命令行工具 kubectl默认从~/.kube/config配置文件中获取访问kube-apiserver 地址、证书、用户名等信息,需要正确配置该文件才能正常使用kubectl命令。 需要将下载的kubectl 二进制文件和生产的~/.kube/config配置文件拷贝到需要使用kubectl 命令的机器上。 > 很多童鞋说这个地方不知道在哪个节点上执行,kubectl只是一个和kube-apiserver进行交互的一个命令行工具,所以你想安装到那个节点都想,master或者node任意节点都可以,比如你先在master节点上安装,这样你就可以在master节点使用kubectl命令行工具了,如果你想在node节点上使用(当然安装的过程肯定会用到的),你就把master上面的kubectl二进制文件和~/.kube/config文件拷贝到对应的node节点上就行了。 #### 环境变量 ```shell $ source /usr/k8s/bin/env.sh $ export KUBE_APISERVE="https://${MASTER_URL}" ``` #### 下载kubectl ```shell $ wget https://dl.k8s.io/v1.8.2/kubernetes-client-linux-amd64.tar.gz # 如果服务器上下载不下来,可以想办法下载到本地,然后scp上去即可 $ tar -xzvf kubernetes-client-linux-amd64.tar.gz $ sudo cp kubernetes/client/bin/kube* /usr/k8s/bin/ $ sudo chmod a+x /usr/k8s/bin/kube* $ export PATH=/usr/k8s/bin:$PATH ``` #### 创建admin证书 kubectl 与kube-apiserver 的安全端口通信,需要为安全通信提供TLS 证书和密钥。创建admin 证书签名请求: ```json cat > admin-csr.json <<EOF { "CN": "admin", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing", "O": "system:masters", "OU": "System" } ] } EOF ``` **生成admin证书和私钥** ```shell $ cfssl gencert -ca=/etc/kubernetes/ssl/ca.pem \ -ca-key=/etc/kubernetes/ssl/ca-key.pem \ -config=/etc/kubernetes/ssl/ca-config.json \ -profile=kubernetes admin-csr.json | cfssljson -bare admin $ ls admin admin.csr admin-csr.json admin-key.pem admin.pem $ sudo mv admin*.pem /etc/kubernetes/ssl/ ``` #### 创建kubectl kubeconfig文件 ```shell # 设置集群参数 $ kubectl config set-cluster kubernetes \ --certificate-authority=/etc/kubernetes/ssl/ca.pem \ --embed-certs=true \ --server=${KUBE_APISERVER} # 设置客户端认证参数 $ kubectl config set-credentials admin \ --client-certificate=/etc/kubernetes/ssl/admin.pem \ --embed-certs=true \ --client-key=/etc/kubernetes/ssl/admin-key.pem \ --token=${BOOTSTRAP_TOKEN} # 设置上下文参数 $ kubectl config set-context kubernetes \ --cluster=kubernetes \ --user=admin # 设置默认上下文 $ kubectl config use-context kubernetes ``` #### 分发kubeconfig文件 > 将~/.kube/config文件拷贝到需要运行` kubectl` 命令的机器的` ~/.kube/` 目录下。 ~/.kube/config文件如下 ```shell apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR2akNDQXFhZ0F3SUJBZ0lVZFlnZVNnd1pXdXBUd0hwS3ltUERUSDhiT0Iwd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pURUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbAphVXBwYm1jeEREQUtCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByCmRXSmxjbTVsZEdWek1CNFhEVEU0TURFeU9UQTJNVEV3TUZvWERUSXpNREV5T0RBMk1URXdNRm93WlRFTE1Ba0cKQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbGFVcHBibWN4RERBSwpCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByZFdKbGNtNWxkR1Z6Ck1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBM1lOVDNYZGF4M3J1VGlsUUgremoKR3BneHRORjdwTjRsKzFXY2RoR1F2ZFliMllrb2ZLTzlibUcwY2RMdTJSOGpLRVJoY1cveE1NbVpaOHhqN1ZtbAowMk52aG1sVUFUVTEzRDNNUHZCRW52RW9DdDZSNm40ZVpiU2tEaHlibzVsYVpKK2wxMXhqN2NjNWw2Y3JxUmF0Cjd2bXFxcFVJT2R2R0ZYRVh0a0wyYUlsZitzS3RJT3FPaU4xR21uVVJua2FUKzNVNkdNWnVtK3Y4ZmFOYWdEK1UKa1ZNSm5xbmVrUEpjZERhb293M1IvVmI0V0hVS215Zy9DNWlNT2t0NFlpZkFzcjY3MkxQKy80THRDL1llNk1GagpLTEg1b3J4THRQb0Q3SExUZTRuYUZhY1EwSEZUT0ZJUitmdGtiVlJrZ0lsWksrSU5tcjIwVUFSRDlBRmR5aGUxCmVRSURBUUFCbzJZd1pEQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFqQWQKQmdOVkhRNEVGZ1FVbStweFBjQlV6YlF2dnFkdUx6eUJSSEJERnowd0h3WURWUjBqQkJnd0ZvQVVtK3B4UGNCVQp6YlF2dnFkdUx6eUJSSEJERnowd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFJSmYvNGxheExRSExkenpjd0U1CmI5dVJXcDVhZk5Ed1l6M0l5TzNqVGtkQ3ZJVEU1L1pqNkRpZ1d0dmF1eEI3OXZPbzIxV05PR0s4Mjd1MndFdmkKcUdmMGVTbHpsUVN0L1IwMVZiazJjMWczaDU1YzgyVGh4WGxCR0JJV2puNjdJUkV0ZFFGQkE1RHpIaDE3bW1QWQpkV1JzWnFNMFFDRk5laU1QeEN0RGVSOGhOZnBpTDBUK2pOS2lEcWRyQ0xSWVFQdzFrejVJVzY2Y25hclRKbVRVClRyOU44SG92LzN3TnZzWlVEeHJ5SHFKRnlVUG5pRDF6akF6L290QXFyc09LdlhHSlR6cUEwRHpwQXRUaFo4R24KZ00rUVNjOXpnV3BkRFFuR01FaFB3SXBKYVZQVHlleGVoaFJtUktlZlBNRW4ydDU1WElEWlpuYnZoN2p4dUZJRAo3M3c9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K server: https://kube-node-68:6443 name: kubernetes contexts: - context: cluster: kubernetes user: admin name: kubernetes current-context: kubernetes kind: Config preferences: {} users: - name: admin user: as-user-extra: {} client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQzVENDQXNXZ0F3SUJBZ0lVQkNaZzJTWnE4TGg0bUUxc3JJZFlDdWo2QzVjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pURUxNQWtHQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbAphVXBwYm1jeEREQUtCZ05WQkFvVEEyczRjekVQTUEwR0ExVUVDeE1HVTNsemRHVnRNUk13RVFZRFZRUURFd3ByCmRXSmxjbTVsZEdWek1CNFhEVEU0TURFeU9UQTVNVEF3TUZvWERUSTRNREV5TnpBNU1UQXdNRm93YXpFTE1Ba0cKQTFVRUJoTUNRMDR4RURBT0JnTlZCQWdUQjBKbGFVcHBibWN4RURBT0JnTlZCQWNUQjBKbGFVcHBibWN4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVE4d0RRWURWUVFMRXdaVGVYTjBaVzB4RGpBTUJnTlZCQU1UCkJXRmtiV2x1TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEwUjBGYSt3RnJlK0kKZmRmSC9Zam5BR25na3NuUlpoN3NOOUY1YVltdElxb2Q1U3k5NytXd2pwODlmK0M0QUJyQkNuT2I0TWNoR2c1bwpXODdVK1NFMWJYa0xQUEQrQXdEd3NQK3JBQ21wOW5zUkltOTh6Q284c1BITlRybXRqT0laRXpsSlRJMVJZdmRkCjhSYlZjbkVsdEQvT0pVaFY2SnRzcXltWHhNTE9oMzQvZytMWFY4bG1ROFNFUG9DcGpianZTTnUzVWN5a2QrWVMKd1JDNFlSWmQvcUVROHNQZm5tMC9xOEZ4bFliNk9ybzI3dHczQ2YwSlJJTEV6eXNhRWRQeWI2TU9JWlE2aGJjWQpoQk1nR0hJUkxZZzRKRWhPV01NbXpNU29GMkhTL0Q3UGFIZVQyZEczRjZWLzVwTHYxdmRWNUpkbWJMK050WnpPCm9FOVRMODF5cHdJREFRQUJvMzh3ZlRBT0JnTlZIUThCQWY4RUJBTUNCYUF3SFFZRFZSMGxCQll3RkFZSUt3WUIKQlFVSEF3RUdDQ3NHQVFVRkJ3TUNNQXdHQTFVZEV3RUIvd1FDTUFBd0hRWURWUjBPQkJZRUZGbmlHM2ZHUVFSSApqcDBYOS9qdlZOd0V6R2p4TUI4R0ExVWRJd1FZTUJhQUZKdnFjVDNBVk0yMEw3Nm5iaTg4Z1VSd1F4YzlNQTBHCkNTcUdTSWIzRFFFQkN3VUFBNElCQVFDS2VHOVVFeXZXT2Y4R1plVGh5akdIVXJVWVc1NFlEKy8rcjRSQXhWUCsKUEUyQU1wdklNeWxFNUhRSVNUbzZrNzU4RUhZRjNGNm10TksxNHd1elJxZG5oSzRiUklWYVc1c0JhQ2hQNHlaYgp4ekYrQ2NnalV0d3RjOW9ac1BaZXJ2a1grTWZSV3BqTkFtekJnd2JnVzI1ak81YVNDR3QyMWZUUTQrZzd0cTIzCnRsZXZFT3hZbC9razN5cFJSSzZyaDJlWkRyRkRpNEdFVHovTTdudlBpV3Z4WjcwK2R1b0FpbEkzM0VmS3FLZTQKNU5SZVE2YzJHTHN5RTk4YWtjSVVtRG1HZmJqQU5tQ3U5WTk1S2RxTllERE1Oa29ZdTMrSFkrK0h1NXlMRTVkWApJNjRlaUplQVBnNExKVDJOVmM5ais1cFNrVHNEMTYyeUFmME90SlFGQi85YgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMFIwRmErd0ZyZStJZmRmSC9Zam5BR25na3NuUlpoN3NOOUY1YVltdElxb2Q1U3k5CjcrV3dqcDg5ZitDNEFCckJDbk9iNE1jaEdnNW9XODdVK1NFMWJYa0xQUEQrQXdEd3NQK3JBQ21wOW5zUkltOTgKekNvOHNQSE5Ucm10ak9JWkV6bEpUSTFSWXZkZDhSYlZjbkVsdEQvT0pVaFY2SnRzcXltWHhNTE9oMzQvZytMWApWOGxtUThTRVBvQ3BqYmp2U051M1VjeWtkK1lTd1JDNFlSWmQvcUVROHNQZm5tMC9xOEZ4bFliNk9ybzI3dHczCkNmMEpSSUxFenlzYUVkUHliNk1PSVpRNmhiY1loQk1nR0hJUkxZZzRKRWhPV01NbXpNU29GMkhTL0Q3UGFIZVQKMmRHM0Y2Vi81cEx2MXZkVjVKZG1iTCtOdFp6T29FOVRMODF5cHdJREFRQUJBb0lCQUJNUHlDeThTUkEvNDN0RgpMaS9JU1BaYXNHUHhEYXQzYWlUMGJWTFhmL2JHOXc2cTgyMW96SjFUbXJHTGRIcGQ5ZmJUN3dPZ1l6NFN6aVNBClNCMmxqMDg1VjNMb3JON3RPUU9KYXJjTEZUa29vcmsyM0hObjdqeGE3bEljenRzbXlRNWRqSGJ6OHRWSW8wR1UKeVVReldES0VGbkNEbFlFc21jMUliMU02UnNWRzdJRk5qV29WMVIyR3Y1MkdBeWFRMk9pOXlBSzdKbkd0SXFiZgpCUHNvQmUxSkJMc0VFY1l2MGFLajAyeDR0eE1IaHpNRnoyZDRtYk5DVkRkdjhTUUx4OWhOaVVUdEF4dEYwRVJuCkt6RHVReXd4RXNRRWFSNzBRYmpxdDFna2xaZ2xQdFRJWjUraWtoOGs4QmhySFhEMkF5aGI2Y1pidHZjUlpmalMKMm9TaWNORUNnWUVBMUc5cE85MmEzRVpqOTMzbU4reFZRSUh3N3h1WjNyL3JhSEVERjVnRE5tNFJiNmJPL3RCdwpNdTB3N2pqY3N1WUtmYW5kUnA4ZDdvLzRub0VmQmdlYVlPdVIzZ0ZKUVlCT0tjTnZMaTJpUDNmeEx1d0dXdTc4CnYvaXQ1K0F1N25WMkExOXRvaHdUeGxQUFhmMDhnM2ZOVHZMbXlwc1lVUDZpZExHc1k1YThudk1DZ1lFQSsvODMKd1YvUko3YkRKYU5PNkx3M0RaV0ZpRmI1TnRCQWFqU09YT1pYd2ZMUzZGZ3RsTEFZVDc3dUw0ZXUxeWQraFBkTgoydG5GOFZEZElsOWFUVXFNdE9pS0lyeUZRQ1RTK0JYRTlXMUhIWi9QZVhJNnMrN21ydkVKekZsUDlUVW9VT0JjCm9jYm5icGQ3VVd0aXIyTzYzTzdRMC9Ha20vd2dSaC8zamdDT1VuMENnWUJadTdIazhzZXVVaUY1OG5samwvV3UKNlBSLzI5WFVMSmRncDVRWnpFRlhKWWxCODJFdWE1ZHBPNTNXa3JoTzdUTHpQK1JUSjNVNlJ5Qkt1OW9CN3dZNworR1hHTkI3Z2h6VDlHU3VHZ3dvczZ4bzZxc0pJZVBqVWtsUExSWHd0aC9wUWxHZTMrVW8xRlVQYnZOTnA2Um9WClJpOU0xOVNlcWVDdmtEbDBXOERURndLQmdRQzhlY25BMXlKL1dxR2dzQUZmN3c0YUdlQXk5aUlWampMdmZIbVMKSURJNC9KNGthM2RFQTJWYmw4bGNRVlpTMDlZOEt4L085UnlvZmJ1M2Jxd0NyU1NLVm5haXZtL0had05uekJoeApIQmVabjZLMUNldkFFb24xQkpFNGh3Qlh2VGQzTGlmNlUrTmJBdStZR1FKSmZnVVFJNHFMU3V1OFF4bjhlUUpWCjhqS0FuUUtCZ1FDeitjTjg3RFhSSFJFVTZTMEZZcnpKdlMrVkFCQXJwNm5LVHdCcDcvdmkyZnpxZlhrVTJVdlgKbkhicDRVZXl6Q2ViYWNLbkFrK09DV3dlL0Vobm5uQzZZY2hyNXNqbTBIRzhlWU5odnY5dTc2NUdHQUhvemFLbgo3SGhHVWxMNy8xNnZpYXNYWWhVbUtKT1VLWTRET0NVbHAvTXBrVkRPc205V3VlTFduUkVJNGc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= token: f6b74847f83791f17203c09840d1664b ```