这一系列文章是学习K8S过程的笔记,使用的是kubeadm
来部署。 参考https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/。
docker
yum
源linux
配置kubeadm,kubelet,kubectl
kubelet
docker -v
Docker version 19.03.1, build 74b1e89
kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:07:13Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:00:47Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
这个不单独说明,网上的资料应该非常多。
copy官方说明。
cat <<EOF > /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
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
最后一句systemctl enable --now kubelet
如果执行失败。。就多执行几次。实际发现执行几次之后就没报错了。
最后还需要修改docker
的cgroup
方式为systemd
.
操作方式为:修改或创建/etc/docker/daemon.json
. 加入:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
kubelet
执行kubeadm init
就可以了。
执行完毕之后,注意记录一下日志信息中的token
,因为后续的操作有可能会用到这个
再找一台机器,安装kubelet
和kubeadm
。然后启动kubelet
。
编写join-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: JoinConfiguration
discovery:
bootstrapToken:
apiServerEndpoint: {ip}:{port}
token: {上面初始化的token}
unsafeSkipCAVerification: true
tlsBootstrapToken: {上面初始化的token}
执行kubeadm join
就可以本Node加入集群.
添加成功后,在master
机器上执行kubectl get nodes
。就可以看到输出。
默认情况下,k8s
的master
节点默认是不允许部署服务的,但是有时候我们机器不够,想要在单节点下运行,也是可以的。
执行kubectl taint node <nodename> node-role.kubernetes.io/master-
其中nodename
可以使用kubectl get nodes
来获取名字。
执行完之后执行 kubectl get nodes -o wide
有这个输出就表示设置成功了
[root@centos ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
-centos Ready control-plane,master 3h35m v1.20.1 {ip} <none> linux linux docker://19.3.1
以上,就是一个搭建的流程了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。