#Ubuntu 安装 k8s 遇坑记录
##将主机名 ip 添加到所有主机的 hosts 文件中
vim /etc/hosts
##关闭交换区
swapoff -a
##安装docker
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release >-cs) stable”
sudo apt-get install -y docker-ce
##docker
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
sudo apt-get update
sudo apt-get install docker-ce
打印docker版本
apt-cache madison docker-ce
sudo apt-get install docker-ce=
sudo systemctl enable docker
sudo systemctl start docker
安装 kubelet kubeadm kubectl
由于google镜像源 被墙 所以 需要 用阿里源 安装
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat </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
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.15.0 --pod-network-cidr=192.168.0.0/16
kubeadm init --apiserver-advertise-address=180.175.37.226 --image-repository registry.aliyuncs.com/google_containers --apiserver-bind-port=6443 --kubernetes-version=“v1.15.0” --pod-network-cidr=10.244.0.0/16 --apiserver-cert-extra-sans=192.168.10.107
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown
(
i
d
−
u
)
:
(id -u):
(id−u):(id -g) $HOME/.kube/config
###ddocker版本过高 或者安装出错 也可能导致 问题 启动时间超过40s
安装dashboard
curl -O https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
创建dashboard管理用户
kubectl create serviceaccount dashboard-admin -n kube-system
绑定用户为集群管理用户
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
生成tocken
kubectl describe secret -n kube-system dashboard-admin-token
安装镜像地址
docker pull registry.cn-hangzhou.aliyuncs.com/acs/tiller:v2.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/acs/tiller:v2.14.1 k8s.gcr.io/kubernates/tiller:v2.14.1
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml
初始化命令
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.10.90 --pod-network-cidr=10.244.0.0/16
‘初始化以后子节点执行
kubeadm join 192.168.10.90:6443 --token 7dz02s.6eh273bxv0nif2e1
–discovery-token-ca-cert-hash sha256:7ce4c70b958b7eff9340c0591343cde591be38572b8c856bc57eb2ee5193881a
kubeadm join 192.168.10.90:6443 --token 1ooc7b.1320m0mea0zyd1cj \
--discovery-token-ca-cert-hash sha256:d1834828f51f66e87fe1ff2d8ef41344718125665a08a49b80032333e90c97f7
k8s调试中遇到的问题
[root@k8snode1 kubernetes]# kubectl get pod The connection to the
server localhost:8080 was refused - did you specify the right host or port?
执行如下命令:
echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile
source ~/.bash_profile
#kubernets挖坑记录
- kubectl get node 查看 node的状态
- journalctl -f -u kubelet.service 查看日志
##解决的方法:
- kubectl create -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml 创建 flannel的pod