5. 安装k8s的master节点和worker节点

5. 安装k8s的master节点和worker节点

B站视频地址: 5.1k8s-搭建master节点_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

  1. 复制init镜像->master
  2. master改hostname主机名
  3. master改ip

k8s-搭建篇

  • k8s v1.15.0,后续可以升级v1.15.5 , v1.15.5是安全版
  • master
    • 2G内存
    • 2核CPU
    • Linux 内核 版本 >= 3.10.0-957.el7.x86_64; 现在版本3.10.0-1062.9.1.el7
  • worker
    • 默认内核 3.10.0-957.el7.x86_64
    • 2核
    • 2G

搭建方式

  • kubeadm v1.15.0

安装组件

适合初次安装

# 安装kubelet kubeadm kubectl
cat <<EOF > /etc/yum.repos.d/kubernetes.repo 
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install kubeadm-1.15.0 kubectl-1.15.0 kubelet-1.15.0 # 安装组件


# 拉取国内镜像
MY_REGISTRY=suveng
echo '============docker pull=========='

docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-apiserver:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-scheduler:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-controller-manager:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-proxy:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-etcd:3.3.10
docker pull ${MY_REGISTRY}/k8s.gcr.io-pause:3.1
docker pull ${MY_REGISTRY}/k8s.gcr.io-coredns:1.3.1
echo '============docker pull over=========='


echo '============docker tag=========='
docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-apiserver:v1.15.0 k8s.gcr.io/kube-apiserver:v1.15.0

docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-scheduler:v1.15.0 k8s.gcr.io/kube-scheduler:v1.15.0

docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-controller-manager:v1.15.0 k8s.gcr.io/kube-controller-manager:v1.15.0


docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-proxy:v1.15.0 k8s.gcr.io/kube-proxy:v1.15.0

docker tag ${MY_REGISTRY}/k8s.gcr.io-etcd:3.3.10 k8s.gcr.io/etcd:3.3.10

docker tag ${MY_REGISTRY}/k8s.gcr.io-pause:3.1 k8s.gcr.io/pause:3.1

docker tag ${MY_REGISTRY}/k8s.gcr.io-coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

echo '============docker tag over=========='

# 启动kublet,并开机自启动
systemctl start kubelet 

systemctl enable kubelet

# centos7用户还需要设置路由
yum install -y bridge-utils.x86_64

# 加载br_netfilter模块,使用lsmod查看开启的模块
modprobe  br_netfilter  

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# 重新加载所有配置文件
sysctl --system  

# k8s要求关闭swap  (qxl)
swapoff -a && sysctl -w vm.swappiness=0  # 关闭swap
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab  # 取消开机挂载swap

# master节点初始化
kubeadm init --apiserver-advertise-address 192.168.0.201 --pod-network-cidr 10.11.0.0/16 --kubernetes-version 1.15.0

# 初始化完配置kubectl环境
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 保存打印出来的下面的提示,用于初始化worker节点, 复制自己的, 不是复制这篇文章的
kubeadm join 192.168.0.201:6443 --token fcfxdo.u86c10mkxuq9gpgz \
    --discovery-token-ca-cert-hash sha256:8f74baa14261465c7361e6fe4de1ebf7941208749360edeea1557ccc71ec2186


# 配置网络,应用flannel网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 检测master节点
kubectl get node

# 查看kubelet的日志

journalctl -fu kubelet

初始化worker节点

# 安装kubelet kubeadm kubectl
cat <<EOF > /etc/yum.repos.d/kubernetes.repo 
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install kubeadm-1.15.0 kubectl-1.15.0 kubelet-1.15.0 # 安装组件

# 自启
systemctl enable kubelet
systemctl start kubelet
# centos7用户还需要设置路由
yum install -y bridge-utils.x86_64

# 加载br_netfilter模块,使用lsmod查看开启的模块
modprobe  br_netfilter  

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# 重新加载所有配置文件
sysctl --system  

# k8s要求关闭swap  (qxl)
swapoff -a && sysctl -w vm.swappiness=0  # 关闭swap
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab  # 取消开机挂载swap
#拉取镜像
MY_REGISTRY=suveng
echo '============docker pull=========='

docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-apiserver:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-scheduler:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-controller-manager:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-kube-proxy:v1.15.0
docker pull ${MY_REGISTRY}/k8s.gcr.io-etcd:3.3.10
docker pull ${MY_REGISTRY}/k8s.gcr.io-pause:3.1
docker pull ${MY_REGISTRY}/k8s.gcr.io-coredns:1.3.1
echo '============docker pull over=========='

echo '============docker tag=========='
docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-apiserver:v1.15.0 k8s.gcr.io/kube-apiserver:v1.15.0 

docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-scheduler:v1.15.0 k8s.gcr.io/kube-scheduler:v1.15.0 

docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-controller-manager:v1.15.0 k8s.gcr.io/kube-controller-manager:v1.15.0 


docker tag ${MY_REGISTRY}/k8s.gcr.io-kube-proxy:v1.15.0 k8s.gcr.io/kube-proxy:v1.15.0 

docker tag ${MY_REGISTRY}/k8s.gcr.io-etcd:3.3.10 k8s.gcr.io/etcd:3.3.10 

docker tag ${MY_REGISTRY}/k8s.gcr.io-pause:3.1 k8s.gcr.io/pause:3.1

docker tag ${MY_REGISTRY}/k8s.gcr.io-coredns:1.3.1 k8s.gcr.io/coredns:1.3.1 

echo '============docker tag over=========='
# 加入master
# 这里使用master初始化完之后提示的命令
kubeadm join 192.168.0.201:6443 --token 0gfmh8.wcwa31l1v9shmcjq \
    --discovery-token-ca-cert-hash sha256:8082ae1a748672c6767132397b4d13e5ee5d94d5096fcfe46f00775670b513a1

重复安装需要,清除k8s环境

kubeadm reset --ignore-preflight-errors=Swap 
rm -rf /var/lib/kubelet/
rm -rf /var/lib/cni/
rm -rf /var/lib/etcd/
rm -rf /etc/kubernetes/
rm -rf /root/.kube/config 

worker加入master的命令

kubeadm join 192.168.0.201:6443 --token 0gfmh8.wcwa31l1v9shmcjq
–discovery-token-ca-cert-hash sha256:8082ae1a748672c6767132397b4d13e5ee5d94d5096fcfe46f00775670b513a1

资料,很好的教程

Kuboard官网_Kubernetes教程_K8S安装_管理界面

发布了161 篇原创文章 · 获赞 140 · 访问量 47万+

猜你喜欢

转载自blog.csdn.net/qq_37933685/article/details/104061780