美文网首页
UBUNTU20安装K8S集群

UBUNTU20安装K8S集群

作者: 致维东明 | 来源:发表于2022-11-02 15:53 被阅读0次

环境初始化

# 关闭SWAP
swapoff -a
rm -f /swap.img
vim /etc/fstab
# /swap.img                         注释掉

# 开启IP转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1

# 查看状态
sysctl -p

安装DOCKER

step1:安装依赖

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

step2:安装GPG证书

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

step3:写入软件源信息

sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

step4:更新并安装DOCKER-CE->注意:此处可能会报错(参考后面的"遇到的问题")

sudo apt-get -y update
apt install -y docker-ce

安装DOCKER-COMPOSE.YML

apt install -y docker-compose

将DOCKER设置为开机自启

systemctl enable docker

配置镜像--否则后续DOCKER拉取镜像会很慢!!!

$ cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

DOCKER版本

root@master:/# docker --version
Docker version 20.10.20, build 9fdeb9c

安装K8S

添加证书

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 

添加APT源

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

apt-get update

查看可安装版本

apt-cache madison kubelet

安装指定版本

apt-get install -y kubelet=1.18.4-00 kubeadm=1.18.4-00 kubectl=1.18.4-00

设置开机启动

sudo systemctl enable kubelet && sudo systemctl start kubelet

查看所需镜像

kubeadm config images list --kubernetes-version=v1.18.4

k8s.gcr.io/kube-apiserver:v1.18.4
k8s.gcr.io/kube-controller-manager:v1.18.4
k8s.gcr.io/kube-scheduler:v1.18.4
k8s.gcr.io/kube-proxy:v1.18.4
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.7

从新地址下载镜像(将上面的地址换成下面的)

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7

为镜像重新打TAG(重新命名上面拉取的镜像)

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.4 k8s.gcr.io/kube-apiserver:v1.18.4
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.4 k8s.gcr.io/kube-controller-manager:v1.18.4
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.4 k8s.gcr.io/kube-scheduler:v1.18.4
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.4 k8s.gcr.io/kube-proxy:v1.18.4
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7

初始化MASTER节点

kubeadm init --kubernetes-version=v1.18.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

初始化完成之后会出现提示,之后将后面的内容保存到一个文件中,先不添加节点检查集群状态是否正常。

Your Kubernetes control-plane has initialized successfully!             # 安装成功的提示

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.93.136:6443 --token vvd4zg.4ay8rxanmh7fopec \
    --discovery-token-ca-cert-hash sha256:df77248c6939eb6c6062d50e6e99c4f881f48e619ef4d2e61304a529a4c2eb1f 

此时执行命令会报如下错误,需要设置环境变量:

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

具体根据情况,此处记录LINUX设置该环境变量
方式一:编辑文件设置

vim /etc/profile

在底部增加新的环境变量:export KUBECONFIG=/etc/kubernetes/admin.conf
方式二:直接追加文件内容

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

使生效

source /etc/profile
root@master:/# kubectl get componentstatus
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok                  
scheduler            Healthy   ok                  
etcd-0               Healthy   {"health":"true"} 

root@master:/home/xieming# kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
master   Ready    master   26m     v1.18.4
node1    Ready    <none>   2m27s   v1.18.4
node2    Ready    <none>   2m25s   v1.18.4
node3    Ready    <none>   2m27s   v1.18.4

添加CNI网络组件--可能无法下载(国外地址需要翻墙)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

检查状态

kubectl get pods -n kube-system -l app=flannel              ???过时了--命名空间变了

root@master:~/kubernetes# kubectl get pods -n kube-flannel
NAME                    READY   STATUS    RESTARTS   AGE
kube-flannel-ds-6sr4s   1/1     Running   1          2d
kube-flannel-ds-gcsxl   1/1     Running   1          2d
kube-flannel-ds-qg9mc   1/1     Running   1          2d
kube-flannel-ds-tdpp5   1/1     Running   1          2d
root@master:~/kubernetes# kubectl get pods -n kube-system
NAME                             READY   STATUS    RESTARTS   AGE
coredns-66bff467f8-dlj8c         1/1     Running   1          2d
coredns-66bff467f8-g4z94         1/1     Running   1          2d
etcd-master                      1/1     Running   1          2d
kube-apiserver-master            1/1     Running   1          2d
kube-controller-manager-master   1/1     Running   1          2d
kube-proxy-25n7c                 1/1     Running   1          2d
kube-proxy-6l5bn                 1/1     Running   1          2d
kube-proxy-l7hm8                 1/1     Running   1          2d
kube-proxy-xgcjt                 1/1     Running   1          2d
kube-scheduler-master            1/1     Running   1          2d

检查节点是否准备完成

kubectl get nodes

为NODE的角色打标签

kubectl label node node01 node-role.kubernetes.io/node=node

测试KUBERNETES集群

在KUBERNETES集群中创建一个POD,验证是否正常运行:

root@master:~/kubernetes# kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
root@master:~/kubernetes# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed

root@master:~/kubernetes# kubectl get pod,svc
NAME                        READY   STATUS    RESTARTS   AGE
pod/nginx-f89759699-5kscr   1/1     Running   0          13m

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        2d
service/nginx        NodePort    10.107.128.217   <none>        80:31788/TCP   2m36s

访问地址:http://nodeip:port

遇到的问题

  1. 解决UBUNTU20.04安装DOCKER时设置仓库失败问题
E: Failed to fetch https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/focal/stable/binary-amd64/Packages.bz2  File has unexpected size (19784 != 18519). Mirror sync in progress? [IP: 119.188.122.238 443]
   Hashes of expected file:
    - Filesize:18519 [weak]
    - SHA512:25ae8d060506d811c6e53f43b08e3bc9a95de020606dae54e5f8770384b50cbbde50307085d66d2020e10431025331e788ba0e4208f734fc8cfafe18b1f0bcff
    - SHA256:bff1fb7605fad668dc36da2a8ab9e8c864d48266d2859c35bd51ad38247181ff
    - SHA1:836ec0a727741aebd12b599656dc715b830a6dfe [weak]
    - MD5Sum:9d0854226ca04178e142c0bb32139451 [weak]
   Release file created at: Wed, 05 Oct 2022 15:08:31 +0000
E: Some index files failed to download. They have been ignored, or old ones used instead.

或

Err:5 https://download.docker.com/linux/ubuntu focal Release                          
  404  Not Found [IP: 13.249.173.43 443]

解决办法:

vim /etc/apt/sources.list
# deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal stable
deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
或
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

相关文章

网友评论

      本文标题:UBUNTU20安装K8S集群

      本文链接:https://www.haomeiwen.com/subject/smpjtdtx.html