k8s安装教程
# 安装前的基础配置
安装机器后的基本设置,本教程使用centos7 ,总3台机器,k8s-master,k8s-node1,k9s-node2。
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久关闭
setenforce 0 # 临时关闭
# 最好重启一下机器
# 关闭 swap
swapoff -a # 临时关闭
# 永久关闭swap
vim /etc/fstab
#注释掉swap这行
# UUID=23af23ca-29c7-4013-b89b-a06f93cbcc85 swap swap defaults 0 0
free -m # 查看是否修改swap分区成功
# Swap: 0 0 0 3个0表示修改成功了
# 修改机器名,分别在3台机器上执行
hostnamectl set-hostname k8s-master # 修改第一台机器,这台是主节点
hostnamectl set-hostname k8s-node1 # 修改第二台机器,从节点1
hostnamectl set-hostname k8s-node2 # 修改第三台机器,从节点2
## 退出系统,重新登录就看到新的机器名
# 机器hosts配置,在k8s-master上执行
cat >> /etc/hosts << EOF
192.168.29.128 k8s-master
192.168.29.129 k8s-node1
192.168.29.130 k8s-node2
EOF
## docker安装19版本的
### 设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce-3:19.03.9-3.el7.x86_64 # 这是指定版本安装
docker version # 查看
#显示版本 Version: 19.03.9
systemctl enable docker # 开机启动docker
systemctl start docker # 启动docker
# 流量转发到iptables
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
# 添加k8s yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# 安装
# 查看可以安装的版本
yum list kubelet --showduplicates | sort -r
# 安装kubelet,kubeadm,kubectl 指定版本安装 使用kubeadm的方式安装(三台机器都安装)
# yum remove -y kubelet-* kubeadm-* kubectl-* 卸载命令
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
# 开启 kubelet
systemctl enable kubelet # 开启自启动
systemctl start kubelet # 启动kubelet
# 在k8s-master这台机器上执行命令 192.168.29.128为k8s-master的IP
kubeadm init --apiserver-advertise-address=192.168.29.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
如果出现下图,说明初始化OK了
# 执行这3个命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 查看nodes状态
kubectl get nodes
##NAME STATUS ROLES AGE VERSION
##k8s-master NotReady master 12m v1.18.0
##有一个master节点,但是状态是 NotReady ,需要安装一个网络插件才能正常
#安装网络插件
kubectl apply -f http://media.ruanyou.top/blog/config/kube-flannel.yml
# 在k8s-node1,k8s-node2执行以下命令,加入集群
kubeadm join 192.168.29.128:6443 --token 0wl4qj.r0qoe4oxl1h7zgnq \
--discovery-token-ca-cert-hash sha256:fae7e766a22ec19ac2a61bc4efa942523fccee08050faa3d4cd041b3204a168a
# 加入集群后,查询集群状态
[root@k8s-master .kube]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 18m v1.18.0
k8s-node1 Ready <none> 50s v1.18.0
k8s-node2 NotReady <none> 35s v1.18.0 # NotReady 需要稍等一下才能正常
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
到这里,恭喜! 你安装成功了。
# 安装遇到问题
ERROR Port-10250: Port 10250 is in use
端口被占用了, 使用 netstat -ntpl
查询到是kubelet
占用了 ,使用 pkill kubelet
结束进程后再执行kubeadm init
就可以了.
上次更新: 2024/04/18, 16:13:54