kubernetes 部署
安装# 使得 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 <...
·
安装
# 使得 apt 支持 ssl 传输
apt update && apt 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
# 安装kubelet, kubectl
apt update && apt install -y kubelet kubectl
# 关掉swap
swapoff -a
- 安装指定版本:
apt install kubectl=1.17.0-00
- 关掉swap的原因
- swap就是当内存不足时将部分内存数据存放到磁盘中,防止OOM
- 这样会使性能下降,而且不易发觉原因
- 对于集群化的服务(比如etcd)来说,挂掉一个实例比整个集群都出毛病(etcd没挂,但是服务质量很差)要好
- swap就是当内存不足时将部分内存数据存放到磁盘中,防止OOM
kind单机版部署
# 部署
GO111MODULE="on" go get sigs.k8s.io/kind && kind create cluster
# 卸载
kind delete cluseter
kubeadm部署
- 官方对kubeadmin的解释是不适用于大规模集群,仅用于快速搭建测试集群
- 如果在初始化过程中出现了任何Error导致初始化终止了,使用
kubeadm reset
重置之后再重新进行初始化 - master节点部署
# 安装kubeadm
apt install -y kubeadm
# 初始化master节点
kubeadm init \
--apiserver-advertise-address=<your host address> \ #apiserver的部署地址;最好是内网IP
--image-repository registry.aliyuncs.com/google_containers \ #从国内的镜像源拉取
--pod-network-cidr=10.244.0.0/16 # 使用flannel网络方案必须这样设定
# --kubernetes-version=v1.17.0 # 安装指定版本
# --ignore-preflight-errors=<错误名> 忽律初始化错误,例如NumCPU
# 根据提示执行以下命令
# 将刚刚部署生成的集群安全配置文件,保存到当前用户的.kube 目录下,kubectl会使用这个目录下的授权信息访问集群
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
- nodes节点部署
# 在master初始化时会生成token,如果不记得了可以通过下面的命令获取
kubeadm token create --print-join-command
# nodes节点加入master集群
kubeadm join xxxx --token xxxx --discovery-token-ca-cert-hash sha256:xxxx
# kubeadm搭建完环境之后会删除nodes节点上的admin.conf的认证配置文件,如果需要在nodes节点上使用kubectl查询资源,需要将master节点的admin.conf 拷贝到nodes节点
scp /etc/kubernetes/admin.conf <node>:/etc/kubernetes
export KUBECONFIG=/etc/kubernetes/admin.conf
# 如果加入后状态保持not ready,用以下命令查错
kubectl describe node <node name>
# 一般错误是因为node节点没安装网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 参考: ubuntu 安装 k8s
debug工具部署
- 原理类似
docker exec
和sidecar,优点在于提供了大量debug工具(如curl, netstat, tcpdump等)- 业务容器可以保持最小化, 不需要预装任何额外的排障工具
- 参考: README
# 安装
export PLUGIN_VERSION=0.1.1
# linux x86_64
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
命令行补全
# bash
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc
# zsh
echo "source <(kubectl completion zsh)" >> ~/.zshrc
source ~/.zshrc
更多推荐
已为社区贡献1条内容
所有评论(0)