Live2d Test Env

Kubernetes Install Tutorials

事先准备

  • 多台Ubuntu 16.04+、CentOS 7或HypriotOS v1.0.1 + 系统
  • 每台机器最少1GB+内存
  • 集群中所有机器之间网络连接正常
  • 每个节点有唯一MAC地址和product_uuid
  • 打开某些端口。请参阅以下部分

检查所需端口

Master节点

端口范围用途
6443 * Kubernetes API server
2379-2380 etcd server client API
10250 Kubelet API
10251 kube-scheduler
10252 kube-controller-manager
10255 Read-only Kubelet API (Heapster)

工作节点

端口范围用途
10250 Kubelet API
10255 Read-only Kubelet API (Heapster)
30000-32767 NodePort Services默认端口范围。

Docker 安装

在机器安装Docker,推荐使用1.12 版本(v1.10和v1.11也可以正常使用),1.13和17.03+版本未经过Kubernetes团队的测试和验证。有关安装说明,请参阅Docker官方文档 Docker安装

kubectl 安装

在所有机器上安装kubectl,可参考: kubectl安装

使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理应用程序。使用kubectl,可以检查集群资源; 创建,删除和更新组件。

以下是安装kubectl的几种方法。

通过curl安装kubectl二进制文件

MacOS

下载最新版本的命令:

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl

要下载特定版本,请使用特定版本替换$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)命令的一部分。

例如,要在MacOS上下载v1.7.0版本,请键入:

 curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/darwin/amd64/kubectl

使kubectl二进制可执行。

 chmod +x ./kubectl

将二进制文件移动到PATH中。

 sudo mv ./kubectl /usr/local/bin/kubectl 

Linux

下载最新版本的命令:

 curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

要下载特定版本,请使用特定版本替换$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)命令的一部分。

例如,要在Linux上下载v1.7.0版本,请键入:

 curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/linux/amd64/kubectl 

使kubectl二进制可执行。

 chmod +x ./kubectl 

将二进制文件移动到PATH中。

 sudo mv ./kubectl /usr/local/bin/kubectl

Windows

从此链接下载最新版本v1.7.0 。

如果curl已安装,请使用以下命令:

 curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/windows/amd64/kubectl.exe

要了解最新的稳定版本,请查看 https://storage.googleapis.com/kubernetes-release/release/stable.txt

将二进制文件添加到PATH中。

作为Google Cloud SDK的一部分下载

kubectl可以作为Google Cloud SDK的一部分安装。

  1. 安装Google Cloud SDK
  2. 运行以下命令进行安装kubectl:
     gcloud components install kubectl
  3. 运行kubectl version以验证您安装的验证码是否已经是最新的。

在Ubuntu上安装

kubectl可作为快速应用程序使用。

  1. 如果您在Ubuntu或其他支持快照包管理器的Linux发行版之一,您可以使用以下安装:
     sudo snap install kubectl --classic

     

  2. 运行kubectl version以验证您安装的验证码是否已经是最新的。

在MacOS上安装Homebrew

  1. 如果您使用的是MacOS并使用Homebrew软件包管理器,则可以使用以下命令进行安装:
     brew install kubectl
  2. 运行kubectl version以验证您安装的验证码是否已经是最新的。

在Windows上安装Chocolatey

  1. 如果您使用的是Windows,并使用Chocolatey软件包管理器,则可以安装:
     choco install kubernetes-cli
  2. 运行kubectl version以验证您安装的验证码是否已经是最新的。
  3. 配置kubectl以使用远程kubernetes集群:
     cd C:\users\yourusername (Or wherever your %HOME% directory is)
     mkdir .kube
     cd .kube
     touch config 

使用文本编辑器编辑配置文件。

配置kubectl

为了使kubectl找到并访问Kubernetes集群,需要一个kubeconfig文件,当你使用kube-up.sh创建集群或成功部署Minikube集群时,该文件将自动创建。有关创建集群的更多信息,请参阅入门指南。如果你需要访问未创建的群集,请参阅共享群集访问文档。默认情况下,kubectl配置位于~/.kube/config。

检查kubectl配置

通过获取集群状态来检查kubectl是否正确配置:

$ kubectl cluster-info

如果看到一个URL响应,kubectl被正确配置为访问您的集群。

如果看到类似于以下内容的消息,则kubectl未正确配置:

The connection to the server <server-name:port> was refused - did you specify the right host or port?

启用shell自动完成

kubectl包括支持自动完成,可以节省大量打字!

完成脚本本身是由kubectl生成的,所以你通常只需要从你的配置文件中调用它。

这里提供常见的例子。有关详细信息,请咨询kubectl completion -h。

在Linux上,使用bash

要将kubectl自动完成添加到当前shell,请运行source <(kubectl completion bash)。

要将kubectl自动完成添加到你的配置文件中,因此将在以后的shell中自动加载运行:

echo "source <(kubectl completion bash)" >> ~/.bashrc

在MacOS上,使用bash

在macOS上,你需要首先通过Homebrew安装bash-completion支持:

## If running Bash 3.2 included with macOS
brew install bash-completion
## or, if running Bash 4.1+
brew install bash-completion@2 

按照brew输出的“部分注意事项”,将正确的bash完成路径添加到本地的.bashrc中。

如果你使用Homebrew指令安装了kubectl,那么kubectl完成应该立即开始工作。

如果你手动安装了kubectl,则需要将kubectl自动完成添加到bash-completion中:

kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl

Homebrew项目独立于kubernetes,所以bash完成包不能保证工作。

kubelet和kubeadm 安装

在所有机器上安装以下软件包:

  • kubelet
  • kubeadm

注意:如果机器上已经安装了kubeadm,则应需要apt-get update && apt-get upgrade或者yum update获得最新版本的kubeadm。如果想了解不同版本的kubeadm,请参考

配置机器:

  • SSH登录主机。
  • 如果使用的是Ubuntu或HypriotOS,请运行:
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm

国内源

# 使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
# 下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
# 添加 k8s 镜像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
# 更新源列表
apt-get update
# 下载 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet kubeadm kubectl 
  • 如果使用的是CentOS,请运行:
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
            https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOF
    setenforce 0
    yum install -y kubelet kubeadm
    systemctl enable kubelet && systemctl start kubelet

     

    执行完后,kubelet会进入每隔几秒重新启动一次的循环模式,因为kubelet在等待kubeadm发出的命令。

    注意:必须使用运行setenforce 0命令来禁用SELinux,因为需要允许容器访问主机文件系统,这是配置pod网络所要求的。(直到kubelet中对SELinux支持得到改进)

kubeadm init 无法拉取镜像解决方法

先阿里云仓库下拉再打标签

registry.aliyuncs.com/google_containers/kube-proxy                v1.17.4             6dec7cfde1e5        9 days ago          116MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.17.4             7f997fcf3e94        9 days ago          161MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.17.4             2e1ba57fe95a        9 days ago          171MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.17.4             5db16c1c7aff        9 days ago          94.4MB
registry.aliyuncs.com/google_containers/coredns                   1.6.5               70f311871ae1        4 months ago        41.6MB
registry.aliyuncs.com/google_containers/etcd                      3.4.3-0             303ce5db0e90        4 months ago        288MB
registry.aliyuncs.com/google_containers/pause                     3.1                 da86e6ba6ca1        2 years ago         742kB



docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.17.4 k8s.gcr.io/kube-proxy:v1.17.4  
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.17.4 k8s.gcr.io/kube-controller-manager:v1.17.4 
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.17.4 k8s.gcr.io/kube-apiserver:v1.17.4
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.4 k8s.gcr.io/kube-scheduler:v1.17.4
docker tag registry.aliyuncs.com/google_containers/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5
docker tag registry.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:.4.3-0
docker tag registry.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1

 

posted @ 2020-03-06 18:50  麦奇  阅读(253)  评论(0编辑  收藏  举报