K8S 安装一

2020-10-11  本文已影响0人  SingleException

安装kubectl

  1. 地址 https://kubernetes.io/docs/tasks/tools/install-kubectl/ 太慢

  2. 步骤

    [root@localhost k8s]# cd kubernetes/client/bin/
    [root@localhost bin]# chmod +x ./kubectl
    [root@localhost bin]# sudo mv ./kubectl /usr/local/bin/kubectl
    
2.png

安装kind

  1. wget -O /usr/local/bin/kind https://github.com/kubernetes-sigs/kind/releases/download/v0.9.0/kind-linux-amd64 && chmod +x /usr/local/bin/kind 也可以自己去github上面下载

创建集群

image.png

查看集群信息

image.png

安装Minikube

  1. curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64
  2. chmod +x minikube
  3. sudo mv minikube /usr/local/bin/minikube
  4. minikube version


    image.png
  5. 执行 minikube start (需要先安装virtualbox,运行时需要切换一下用户)


    image.png

安装virtualbox

  1. https://www.linuxidc.com/Linux/2018-11/155220.htm

安装 kubeadm 和 kubelet

  1. 首先禁用 swap 原因不知道,具体询问 张晋涛。。。。
如何禁用:

使用 sudo cat /proc/swaps 验证 swap 配置的设备和文件。
通过 swapoff -a 关闭 swap 。
使用 sudo blkid 或者 sudo lsblk 可查看到我们的设备属性,请注意输出结果中带有 swap 字样的信息。
将 /etc/fstab 中和上一条命令中输出的,和 swap 相关的挂载点都删掉,以免在机器重启或重挂载时,再挂载 swap 分区。
执行完上述操作,swap 便会被禁用,当然你也可以再次通过上述命令,或者 free 命令来确认是否还有 swap 存在。

[root@master ~]# free 
              total        used        free      shared  buff/cache   available
Mem:        1882748       85608     1614836       16808      182304     1630476
Swap:             0           0           0

  1. 下载kubernetes-server-linux-amd64.tar.gz 推荐在github上面下载https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.19.md#server-binaries
  2. 执行
[root@master tmp]# tar -zxf kubernetes-server-linux-amd64.tar.gz
[root@master tmp]# ls kubernetes
addons  kubernetes-src.tar.gz  LICENSES  server
[root@master tmp]# ls kubernetes/server/bin/ | grep -E 'kubeadm|kubelet|kubectl'
kubeadm
kubectl
kubelet


可以看到在 server/bin/ 目录下有我们所需要的全部内容,将我们所需要的 kubeadm kubectl kubelet 等都移动至 /usr/bin 目录下。

[root@master tmp]# mv kubernetes/server/bin/kube{adm,ctl,let} /usr/bin/
[root@master tmp]# ls /usr/bin/kube*
/usr/bin/kubeadm  /usr/bin/kubectl  /usr/bin/kubelet

4.配置kubelet

[root@master tmp]# cat <<'EOF' > /etc/systemd/system/kubelet.service
[Unit]
Description=kubelet: The Kubernetes Agent
Documentation=http://kubernetes.io/docs/

[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
[root@master tmp]# mkdir -p /etc/systemd/system/kubelet.service.d
[root@master tmp]# cat <<'EOF' > /etc/systemd/system/kubelet.service.d/kubeadm.conf
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
EOF
[root@master tmp]# systemctl enable kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /etc/systemd/system/kubelet.service.

安装crictl 和 socat

  1. crictl https://github.com/kubernetes-sigs/cri-tools/releases

    image.png
  2. yum install -y socat

  3. yum -y install socat conntrack-tools

添加阿里kubernetes源

[root@master01 ~]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

kubeadm初始化集群

image.png
  1. kubeadm init --image-repository registry.aliyuncs.com/google_containers
    这一步很关键,由于kubeadm 默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要通过–image-repository指定阿里云镜像仓库地址。
    2.配置 kubectl
记录生成的最后部分内容,此内容需要在其它节点加入Kubernetes集群时执行。
根据提示创建kubectl

[root@master01 ~]#  mkdir -p $HOME/.kube
[root@master01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master01 ~]#   sudo chown $(id -u):$(id -g) $HOME/.kube/config
执行下面命令,使kubectl可以自动补充

[root@master01 ~]# source <(kubectl completion bash)

3.配置集群网络
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

  1. 查看pod和node


    image.png

    kubectl get node
    kubectl get pod --all-namespaces

参考

使用kubeadm在Centos8上部署kubernetes1.18
Kubernetes 从上手到实践

上一篇下一篇

猜你喜欢

热点阅读