centos系统如何安装kubectl和部署kube-apiserver

embedded/2024/12/27 7:31:20/

1.使用 yum 安装(推荐)
添加 Kubernetes 软件源:
首先,你需要添加 Kubernetes 的官方 YUM 软件源。这可以通过下载并安装 kubernetes.repo 文件来实现。

shell

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

安装 kubectl:
使用 yum 安装 kubectl。

sudo yum install -y kubectl
验证安装:
验证 kubectl 是否正确安装,并检查版本。

kubectl version --client
2.使用 curl 和 tar 安装
下载 kubectl:
使用 curl 下载最新版本的 kubectl。

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

添加执行权限:
为下载的 kubectl 文件添加执行权限。

chmod +x ./kubectl

移动到 /usr/local/bin:
将 kubectl 移动到 /usr/local/bin 目录,使其全局可用。

sudo mv ./kubectl /usr/local/bin/kubectl
验证安装:
验证 kubectl 是否正确安装,并检查版本。

shell
kubectl version --client

部署kube-apiserver

安装 kube-apiserver
首先,你需要获取 Kubernetes 的二进制文件。你可以从 Kubernetes 的 GitHub 仓库下载所需的版本。以下命令展示了如何下载 Kubernetes 1.29.4 版本的二进制文件并解压:

wget https://github.com/kubernetes/kubernetes/archive/v1.29.4.tar.gz
tar -zxvf v1.29.4.tar.gz
cd kubernetes-1.29.4

然后,将 kube-apiserver 拷贝到 /usr/local/bin 目录下:

sudo cp _output/bin/kube-apiserver /usr/local/bin/
  1. 准备 kube-apiserver 的配置文件
    创建 kube-apiserver 的配置文件 /etc/kubernetes/manifests/kube-apiserver.yaml:
cat <<EOF | sudo tee /etc/kubernetes/manifests/kube-apiserver.yaml
apiVersion: v1
kind: Pod
metadata:name: kube-apiservernamespace: kube-system
spec:hostNetwork: truecontainers:- name: kube-apiserverimage: k8s.gcr.io/kube-apiserver:v1.29.4command:- kube-apiserver- --advertise-address=<MASTER_IP> # 替换为 Master 节点的 IP 地址- --allow-privileged=true- --apiserver-count=3- --authorization-mode=Node,RBAC- --client-ca-file=/etc/kubernetes/ssl/ca.pem- --etcd-cafile=/etc/kubernetes/ssl/ca.pem- --etcd-certfile=/etc/kubernetes/ssl/etcd-client.pem- --etcd-keyfile=/etc/kubernetes/ssl/etcd-client-key.pem- --etcd-servers=https://<ETCD_IP>:2379 # 替换为 etcd 服务器的地址- --insecure-bind-address=0.0.0.0- --kubelet-client-certificate=/etc/kubernetes/ssl/apiserver-kubelet-client.crt- --kubelet-client-key=/etc/kubernetes/ssl/apiserver-kubelet-client.key- --kubelet-https=true- --service-account-key-file=/etc/kubernetes/ssl/ca-key.pem- --service-cluster-ip-range=10.254.0.0/16- --tls-cert-file=/etc/kubernetes/ssl/apiserver.crt- --tls-private-key-file=/etc/kubernetes/ssl/apiserver.key- --service-node-port-range=30000-50000- --audit-log-path=/var/log/kube-audit/audit.log- --audit-log-maxage=30- --audit-log-maxbackup=3- --audit-log-maxsize=100- --v=2
EOF

确保替换 <MASTER_IP> 和 <ETCD_IP> 为你的实际 IP 地址。

  1. 创建 kube-apiserver 服务
    创建 kube-apiserver 的 systemd 服务文件:

shell
sudo vim /usr/lib/systemd/system/kube-apiserver.service
添加以下内容:

[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=/etc/kubernetes/config/kube-apiserver.conf
ExecStart=/usr/local/bin/kube-apiserver $KUBE_APISERVER_OPTS
Restart=on-failure
[Install]
WantedBy=multi-user.target
  1. 启动 kube-apiserver 服务
sudo systemctl daemon-reload
sudo systemctl enable kube-apiserver
sudo systemctl start kube-apiserver
  1. 验证 kube-apiserver 是否运行

sudo systemctl status kube-apiserver


http://www.ppmy.cn/embedded/149121.html

相关文章

【Python高级365】python静态Web服务器

[[340-python网络编程]][[330-HTML基础&#xff08;前端&#xff09;]][[331-CSS基础&#xff08;前端&#xff09;]] Web开发 我们在使用网页的时候&#xff0c;不是服务端和客户端之间互相发信息&#xff0c;而是通过浏览器向服务器通信&#xff0c;交互的数据不仅仅有文字…

太阳能LED路灯智能控制系统(论文+源码)

1系统的功能及方案设计 本次课题为太阳能LED路灯智能控制系统&#xff0c;其系统整体架构如图2.1所示&#xff0c;太阳能板通过TP4056充电模块给锂电池进行充电&#xff0c;电池通过HX3001升压模块进行升压到5V给整个控制系统进行供电&#xff0c;控制系统由AT89C52单片机作为…

闯关leetcode——3168. Minimum Number of Chairs in a Waiting Room

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/minimum-number-of-chairs-in-a-waiting-room/description/ 内容 You are given a string s. Simulate events at each second i: If s[i] ‘E’, a person enters the waiting room and takes …

学习笔记(prism--视频【WPF-prism核心教程】)--待更新

《一》框架介绍 prism是一个用于WPF…和winUI中构建的松散耦合&#xff0c;可维护和可测试的应用程序框架。帮助WPF开发人员以简化编写&#xff0c;维护和扩展来设计应用程序。 优点&#xff1a;遵循特定的约定&#xff0c;可自动将view/ViewModel建立DataContext的关系&#…

SpringCloudAlibaba技术栈-Dubbo

1、什么是Dubbo? 简单来说&#xff0c;dubbo就像是个看不见的手&#xff0c;负责专门从注册中心nacos调用注册到nacos上面的服务的&#xff0c;因为在微服务环境下不同的功能模块可能在不同的服务器上。dubbo调用服务就像是在调用本地的服务一样。 分布式调用与高并发处理 Du…

在算力魔方上运行Genesis:一款颠覆性开源生成式物理引擎!

作者&#xff1a;算力魔方创始人 刘力 一&#xff0c;Genesis简介 Genesis是一款由19个顶尖科研机构联手打造的&#xff0c;用于通用机器人、具身智能和物理 AI 应用的开源生成式物理引擎。它可以生成整个世界&#xff0c;包括相机运动、机器人任务和交互式 3D 场景等。其特点有…

电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决

电脑蓝屏是让许多用户头疼的问题&#xff0c;其中出现 “0x0000007f” 错误代码更是较为常见且棘手。了解其背后成因并掌握修复方法&#xff0c;能帮我们快速恢复电脑正常运行。 一、可能的硬件原因 内存问题 内存条长时间使用可能出现物理损坏&#xff0c;如金手指氧化、芯片…

【ue5学习笔记2】在场景放入一个物体的蓝图输入事件无效?

在场景放入一个物体的蓝图输入事件无效&#xff0c;那是因为你不知道gameMode这个东西这是一个用于设定游戏股则的东西&#xff0c; 就好比你的控制对象&#xff0c;你输入无效是没有指定你当前关卡中指定的控制对象是它。操作方法如下&#xff1a; 1.创建一个gameMode蓝图类并…