K8s安装

环境: 

软件  版本
ubuntu  
k8s 1.22.4
   

 

 

Docker安装省略

第一步安装:关闭swap

使用free -m确认是否关闭:

 永久关闭:swap:

vi /etc/fstab

重启后,使用free -m校验

 第二步:配置端口

用firewalld替换ufw

root@ubuntu:/home/ace# systemctl disabled ufw && systemctl stop ufw && sudo apt remove ufw -y

root@ubuntu:/home/ace# apt-get install -y firewalld

配置端口,根据Ports and Protocols | Kubernetes

# 6443 端口
sudo firewall-cmd --zone=public --add-port=6443/tcp --permanent && \
sudo firewall-cmd --zone=public --add-port=6443/udp --permanent
 
# 2379-2380 端口
sudo firewall-cmd --permanent --zone=public --add-port=2379-2380/tcp && \
sudo firewall-cmd --permanent --zone=public --add-port=2379-2380/udp
 
# 10250 端口
sudo firewall-cmd --zone=public --add-port=10250/tcp --permanent && \
sudo firewall-cmd --zone=public --add-port=10250/udp --permanent
 
# 10259 端口
sudo firewall-cmd --zone=public --add-port=10259/tcp --permanent && \
sudo firewall-cmd --zone=public --add-port=10259/udp --permanent
 
# 10257 端口
sudo firewall-cmd --zone=public --add-port=10257/tcp --permanent && \
sudo firewall-cmd --zone=public --add-port=10257/udp --permanent
 
# 之后使用ingress的话, 下面的端口也需要开放
sudo firewall-cmd --zone=public --add-port=10251-10255/tcp --permanent && \
sudo firewall-cmd --zone=public --add-port=10251-10255/udp --permanent && \
sudo firewall-cmd --zone=public --add-port=8472/tcp --permanent && \
sudo firewall-cmd --zone=public --add-port=8472/udp --permanent && \
sudo firewall-cmd --add-masquerade --permanent
 
# 如果之后想在控制节点访问NodePort端口的话, 需要放行 30000-32767
sudo firewall-cmd --permanent --add-port=30000-32767/tcp
 
 
# 使配置生效
sudo firewall-cmd --reload

第三步: 开启内核参数net.bridge.bridge-nf-call-iptables

使用sysctl -i | grep net.bridge查看

第四步配置:下载kubeadm, kubelet, kubectl

echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y apt-transport-https ca-certificates curl apt-get install -y kubeadm kubelet kubectl

遇到的问题及解决:  

systemctl status kubelet显示如下问题,这个是因为还没有kubeadm init,一些相关的配置未生成

第五步:配置cgroup, 参照 Container runtimes | Kubernetes

sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

systemctl daemon-reload
systemctl restart docker

 第六步:kube初始化

我修改了主机名,为了让节点方便读

配置hosts

 初始化kube

kubeadm init --image-repository registry.aliyuncs.com/google_containers  --control-plane-endpoint=192.168.188.133 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.188.133

 

第七步:配置网络

mkdir -p /etc/cni/net.d
cat <<EOF< 10-flannel.config
{
        "name": "cbr0",
        "type": "flannel",
        "delegate": {
                "isDefaultGateway": true
        }
}
EOF

  

 

 

 

 

 

The connection to the server localhost:8080 was refused - did you specify the right host or port?

对于非root用户

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

对于root用户

export KUBECONFIG=/etc/kubernetes/admin.conf

也可以直接放到~/.bash_profile

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

 

posted @ 2021-12-05 17:16  kldx5092  阅读(67)  评论(0编辑  收藏  举报