目的
我们在使用k8s(kubernetes的缩写)的时候,如果都在master节点服务器上操作命令,那将是一件比较有风险的事情,因为很容易误操作改变了一些组件情况、服务器配置,这些都可能影响k8s集群的正常运行。
为了解决不在master节点服务器操作k8s集群,但又能完全控制整个集群的操作,这个时候可以使用可视化组件,例如rancher、kubesphere这些,但如果你只想敲命令行,只想感受最原生的操作,那么就需要部署一台k8s的操作机,俗称“k8s发版机”,发版机顾名思义是k8s里能随便操作,更新迭代的服务器。
k8s发版机搭建
发版机无配置要求,1C2G即可,下面是如何让一台普通的服务器,变成一台k8s集群的发版机的步骤。
1、发版机安装软件kubelet kubeadm kubectl
Debian / Ubuntu
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
安装指定版本的kubernetes
apt-get install -y kubelet-<version> kubectl-<version> kubeadm-<version>
CentOS / RHEL / Fedora
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum makecache fast
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
安装指定版本的kubernetes
yum install -y kubelet-<version> kubectl-<version> kubeadm-<version>
案例:
#在centos7上安装 1.20.4版本的ku
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum makecache fast
setenforce 0
yum install -y kubelet-1.20.4 kubectl-1.20.4 kubeadm-1.20.4
2、把k8s集群的master里的配置,放到发版机特定目录即可
2.1、先把master里/etc/kubernetes/admin.conf的文件拷贝到发版机里
2.2、执行下面命令
mkdir ~/.kube
cp -i /etc/kubernetes/admin.conf ~/.kube/config
3、注意
如果/etc/kubernetes/admin.conf文件里server是域名,需要在发版机的/etc/hosts添加对应master的消息,如下
#/etc/hosts里添加
172.18.30.30 apiserver.cluster.local
k8s发版机参考自官方命令
mv $HOME/.kube $HOME/.kube.bak
mkdir $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
配置发版机官方文档(但官方文档表述不够清晰): https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/