安装
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 << 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 kubectl
swapoff -a
- 关掉swap的原因
- swap就是当内存不足时将部分内存数据存放到磁盘中,防止OOM
- 对于集群化的服务(比如etcd)来说,挂掉一个实例比整个集群都出毛病(etcd没挂,但是服务质量很差)要好
kind单机版部署
GO111MODULE="on" go get sigs.k8s.io/kind && kind create cluster
kind delete cluseter
kubeadm部署
- 官方对kubeadmin的解释是不适用于大规模集群,仅用于快速搭建测试集群
- 如果在初始化过程中出现了任何Error导致初始化终止了,使用
kubeadm reset
重置之后再重新进行初始化
- master节点部署
apt-get install -y kubeadm
kubeadm init \
--apiserver-advertise-address=<your host address> \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
export KUBECONFIG=/etc/kubernetes/admin.conf
cp -i /etc/kubernetes/admin.conf ~/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl get pod --all-namespaces
kubectl get nodes
kubeadm token create --print-join-command
kubeadm join xxxx --token xxxx --discovery-token-ca-cert-hash sha256:xxxx
scp /etc/kubernetes/admin.conf <node>:/etc/kubernetes
export KUBECONFIG=/etc/kubernetes/admin.conf
kubectl describe node <node name>
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
debug工具部署
- 原理类似
docker exec
和sidecar,优点在于提供了大量debug工具(如curl, netstat, tcpdump等)
- 业务容器可以保持最小化, 不需要预装任何额外的排障工具
- README
export PLUGIN_VERSION=0.1.1
curl -Lo kubectl-debug.tar.gz https://github.com/aylei/kubectl-debug/releases/download/v${PLUGIN_VERSION}/kubectl-debug_${PLUGIN_VERSION}_linux_amd64.tar.gz
tar -zxvf kubectl-debug.tar.gz kubectl-debug
sudo mv kubectl-debug /usr/local/bin/
kubectl debug <target pod> --agentless --port-forward
命令行补全
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc
echo "source <(kubectl completion zsh)" >> ~/.zshrc
source ~/.zshrc