K8s安装国内源
安装kubelet kubeadm kubectl
-
官方安装
apt-get update && apt-get install -y apt-transport-https curl 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 https://apt.kubernetes.io/ kubernetes-xenial main EOF apt-get update apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl目前只有Ubuntu16.04的源
-
国内安装
apt-get update && apt-get install -y apt-transport-https curl curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF apt-get update apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl目前只有Ubuntu16.04的源
设置Container runtimes
# Setup docker daemon. cat > /etc/docker/daemon.json «EOF { “exec-opts”: [“native.cgroupdriver=systemd”], “log-driver”: “json-file”, “log-opts”: { “max-size”: “100m” }, “storage-driver”: “overlay2” } EOF
mkdir -p /etc/systemd/system/docker.service.d
# Restart docker. systemctl daemon-reload systemctl enable docker.service systemctl restart docker
关闭Swap的设备
swapoff -a *永久关闭,只需要注释/etc/fstab中的swap分区即可* # 下载docker镜像 * gcr官方镜像(被墙)
docker pull k8s.gcr.io/kube-apiserver:v1.15.0
docker pull k8s.gcr.io/kube-controller-manager:v1.15.0
docker pull k8s.gcr.io/kube-scheduler:v1.15.0
docker pull k8s.gcr.io/kube-proxy:v1.15.0
docker pull k8s.gcr.io/pause:3.1
docker pull k8s.gcr.io/etcd:3.3.10
docker pull k8s.gcr.io/coredns:1.3.1
-
采用docker官方镜像,之后tag改名
docker pull mirrorgooglecontainers/kube-apiserver:v1.15.0 docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.0 docker pull mirrorgooglecontainers/kube-scheduler:v1.15.0 docker pull mirrorgooglecontainers/kube-proxy:v1.15.0 docker pull mirrorgooglecontainers/pause:3.1 docker pull mirrorgooglecontainers/etcd:3.3.10 docker pull coredns/coredns:1.3.1
使用 kubeadm 创建一个单主集群
kubeadm init --pod-network-cidr=10.244.0.0/16 //ip必须与kube-flannel.yml 中的IP一直 # 执行以下命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config # 添加节点加入集群
kubeadm join <master ipaddress>:6443 --token <token key> \
--discovery-token-ca-cert-hash sha256:<ca-hash key>
-
token key:
kubeadm token create -
ca-hash key:
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' # 添加网络组件 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml # 常用命令 kubectl get pods -o wide -n kube-system kubectl get node kubectl label nodes <node1> node-role.kubernetes.io/node= kubectl label nodes <node1> node-role.kubernetes.io/node-